From f04255c6941bbeaac594562050f7ebc8148613ed Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Fri, 29 Mar 2024 18:49:36 +0100 Subject: [PATCH 01/74] feat: Add dbrx support (#1685) Close #1679 --- .../text_generation_server/models/__init__.py | 24 + .../custom_modeling/flash_dbrx_modeling.py | 1055 +++++++++++++++++ .../custom_modeling/flash_mixtral_modeling.py | 2 + .../models/flash_dbrx.py | 99 ++ 4 files changed, 1180 insertions(+) create mode 100644 server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py create mode 100644 server/text_generation_server/models/flash_dbrx.py diff --git a/server/text_generation_server/models/__init__.py b/server/text_generation_server/models/__init__.py index 6adbe580..06219e7c 100644 --- a/server/text_generation_server/models/__init__.py +++ b/server/text_generation_server/models/__init__.py @@ -71,6 +71,7 @@ try: from text_generation_server.models.flash_mixtral import FlashMixtral from text_generation_server.models.flash_phi import FlashPhi from text_generation_server.models.flash_starcoder2 import FlashStarcoder2 + from text_generation_server.models.flash_dbrx import FlashDbrx from text_generation_server.utils.flash_attn import HAS_FLASH_ATTN_V2_CUDA except ImportError as e: @@ -86,6 +87,7 @@ if FLASH_ATTENTION: __all__.append(IDEFICSSharded) __all__.append(FlashMistral) __all__.append(FlashMixtral) + __all__.append(FlashDbrx) __all__.append(FlashPhi) __all__.append(FlashQwen2) __all__.append(FlashStarcoder2) @@ -381,6 +383,28 @@ def get_model( trust_remote_code=trust_remote_code, ) + if model_type == "dbrx": + if FLASH_ATTENTION: + return FlashDbrx( + model_id, + revision, + quantize=quantize, + use_medusa=use_medusa, + dtype=dtype, + trust_remote_code=trust_remote_code, + ) + elif sharded: + raise NotImplementedError(FLASH_ATT_ERROR_MESSAGE.format("Sharded DBRX")) + else: + return CausalLM( + model_id, + revision, + quantize=quantize, + use_medusa=use_medusa, + dtype=dtype, + trust_remote_code=trust_remote_code, + ) + if model_type in ["RefinedWeb", "RefinedWebModel", "falcon"]: if sharded: if FLASH_ATTENTION: diff --git a/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py b/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py new file mode 100644 index 00000000..dd0bcca5 --- /dev/null +++ b/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py @@ -0,0 +1,1055 @@ +# coding=utf-8 +# Copyright 2022 HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch +import torch.distributed + +import numpy as np + +from torch import nn +from transformers.activations import ACT2FN +from transformers.configuration_utils import PretrainedConfig +from typing import Optional, List, Tuple, Any +from loguru import logger + +from text_generation_server.utils import paged_attention, flash_attn +from text_generation_server.utils.layers import ( + FastLinear, + FastLayerNorm, + TensorParallelRowLinear, + TensorParallelColumnLinear, + TensorParallelEmbedding, + PositionRotaryEmbedding, + SpeculativeHead, + get_linear, +) +from text_generation_server.utils.log import log_once + +HAS_MEGABLOCKS = True +try: + import stk + import megablocks.ops as ops +except ImportError: + logger.warning("Dbrx: megablocks is not installed") + HAS_MEGABLOCKS = False + + +class DbrxAttentionConfig(PretrainedConfig): + def __init__( + self, + attn_pdrop: float = 0, + clip_qkv: Optional[float] = None, + kv_n_heads: int = 1, + rope_theta: float = 10000.0, + **kwargs: Any, + ): + super().__init__(**kwargs) + self.attn_pdrop = attn_pdrop + self.clip_qkv = clip_qkv + self.kv_n_heads = kv_n_heads + self.rope_theta = rope_theta + + for k in ["model_type"]: + if k in kwargs: + kwargs.pop(k) + if len(kwargs) != 0: + raise ValueError(f"Found unknown {kwargs=}") + + +class DbrxFFNConfig(PretrainedConfig): + def __init__( + self, + ffn_act_fn: Optional[dict] = None, + ffn_hidden_size: int = 3584, + moe_num_experts: int = 4, + moe_top_k: int = 1, + moe_jitter_eps: Optional[float] = None, + moe_loss_weight: float = 0.01, + moe_normalize_expert_weights: Optional[float] = 1, + uniform_expert_assignment: bool = False, + **kwargs: Any, + ): + super().__init__() + if ffn_act_fn is None: + ffn_act_fn = {"name": "silu"} + self.ffn_act_fn = ffn_act_fn + self.ffn_hidden_size = ffn_hidden_size + self.moe_num_experts = moe_num_experts + self.moe_top_k = moe_top_k + self.moe_jitter_eps = moe_jitter_eps + self.moe_loss_weight = moe_loss_weight + self.moe_normalize_expert_weights = moe_normalize_expert_weights + self.uniform_expert_assignment = uniform_expert_assignment + + if uniform_expert_assignment: + raise ValueError("`uniform_expert_assignment = True` is not supported") + + for k in ["model_type"]: + if k in kwargs: + kwargs.pop(k) + if len(kwargs) != 0: + raise ValueError(f"Found unknown {kwargs=}") + + +class DbrxConfig(PretrainedConfig): + def __init__( + self, + d_model: int = 2048, + n_heads: int = 16, + n_layers: int = 24, + max_seq_len: int = 2048, + vocab_size: int = 32000, + resid_pdrop: float = 0.0, + emb_pdrop: float = 0.0, + attn_config: Optional[DbrxAttentionConfig] = None, + ffn_config: Optional[DbrxFFNConfig] = None, + use_cache: bool = True, + initializer_range: float = 0.02, + output_router_logits: bool = False, + router_aux_loss_coef: float = 0.05, + **kwargs: Any, + ): + if attn_config is None: + self.attn_config = DbrxAttentionConfig() + elif isinstance(attn_config, dict): + self.attn_config = DbrxAttentionConfig(**attn_config) + else: + self.attn_config = attn_config + + if ffn_config is None: + self.ffn_config = DbrxFFNConfig() + elif isinstance(ffn_config, dict): + self.ffn_config = DbrxFFNConfig(**ffn_config) + else: + self.ffn_config = ffn_config + + self.d_model = d_model + self.n_heads = n_heads + self.n_layers = n_layers + self.max_seq_len = max_seq_len + self.vocab_size = vocab_size + self.resid_pdrop = resid_pdrop + self.emb_pdrop = emb_pdrop + self.use_cache = use_cache + self.initializer_range = initializer_range + self.output_router_logits = output_router_logits + self.router_aux_loss_coef = router_aux_loss_coef + + tie_word_embeddings = kwargs.pop("tie_word_embeddings", False) + if tie_word_embeddings: + raise ValueError("tie_word_embeddings is not supported for Dbrx models.") + + super().__init__( + tie_word_embeddings=tie_word_embeddings, + **kwargs, + ) + + +def promote_scalar(x: torch.Tensor) -> torch.Tensor: + return x.view(1) if len(x.size()) == 0 else x + + +def load_attention(config, prefix, weights): + if config.n_heads != config.attn_config.kv_n_heads: + return _load_gqa(config, prefix, weights) + else: + return TensorParallelColumnLinear.load_qkv( + config, + prefix=f"{prefix}.Wqkv", + weights=weights, + bias=False, + ) + + +def _load_gqa(config, prefix: str, weights): + assert config.d_model % config.n_heads == 0 + assert config.n_heads % weights.process_group.size() == 0 + + head_dim = config.d_model // config.n_heads + world_size = weights.process_group.size() + rank = weights.process_group.rank() + + q_block_size = config.d_model // world_size + q_start = rank * q_block_size + q_stop = (rank + 1) * q_block_size + + kv_block_size = (config.attn_config.kv_n_heads * head_dim) // world_size + k_offset = config.d_model + k_start = k_offset + rank * kv_block_size + k_stop = k_offset + (rank + 1) * kv_block_size + + v_offset = config.d_model + config.attn_config.kv_n_heads * head_dim + v_start = v_offset + rank * kv_block_size + v_stop = v_offset + (rank + 1) * kv_block_size + + if config.quantize in ["gptq", "awq"]: + try: + qweight_slice = weights._get_slice(f"{prefix}.qweight") + q_qweight = qweight_slice[:, q_start:q_stop] + k_qweight = qweight_slice[:, k_start:k_stop] + v_qweight = qweight_slice[:, v_start:v_stop] + + qweight = torch.cat([q_qweight, k_qweight, v_qweight], dim=1) + except RuntimeError: + raise RuntimeError( + f"Cannot load `{config.quantize}` weight, make sure the model is already quantized" + ) + + qzeros_slice = weights._get_slice(f"{prefix}.qzeros") + q_qzeros = qzeros_slice[:, q_start:q_stop] + k_qzeros = qzeros_slice[:, k_start:k_stop] + v_qzeros = qzeros_slice[:, v_start:v_stop] + + qzeros = torch.cat([q_qzeros, k_qzeros, v_qzeros], dim=1) + + scales_slice = weights._get_slice(f"{prefix}.scales") + q_scales = scales_slice[:, q_start:q_stop] + k_scales = scales_slice[:, k_start:k_stop] + v_scales = scales_slice[:, v_start:v_stop] + + scales = torch.cat([q_scales, k_scales, v_scales], dim=1) + + bits, groupsize, desc_act, quant_method = weights._get_gptq_params() + + from text_generation_server.utils.layers import HAS_EXLLAMA + + use_exllama = ( + bits == 4 and HAS_EXLLAMA and config.quantize == "gptq" and not desc_act + ) + + if config.quantize == "gptq" and quant_method == "gptq": + g_idx_slice = weights._get_slice(f"{prefix}.g_idx") + q_g_idx = g_idx_slice[:, q_start:q_stop] + k_g_idx = g_idx_slice[:, k_start:k_stop] + v_g_idx = g_idx_slice[:, v_start:v_stop] + + w = [q_g_idx, k_g_idx, v_g_idx] + for w2 in w[1:]: + torch.testing.assert_close(w2, w[0]) + g_idx = w[0] + elif config.quantize == "gptq" and quant_method == "awq": + log_once( + logger.info, "Converting AWQ model to Exllama/GPTQ packing format." + ) + from text_generation_server.utils.awq.conversion_utils import ( + fast_awq_to_gptq, + ) + + qweight, qzeros = fast_awq_to_gptq(qweight, qzeros) + if use_exllama: + g_idx = None + else: + g_idx = ( + torch.arange(qweight.shape[0] * (32 // bits), device=qweight.device) + // groupsize + ).to(dtype=torch.int32) + else: + g_idx = None + + weight = (qweight, qzeros, scales, g_idx, bits, groupsize, use_exllama) + else: + qkv_slice = weights._get_slice(f"{prefix}.Wqkv.weight") + q = qkv_slice[q_start:q_stop] + k = qkv_slice[k_start:k_stop] + v = qkv_slice[v_start:v_stop] + + weight = torch.cat([q, k, v], dim=0) + weight = weight.to(dtype=weights.dtype).to(device=weights.device) + + return TensorParallelColumnLinear( + get_linear(weight, bias=None, quantize=config.quantize) + ) + + +def _load_experts(config, prefix, weights): + world_size = weights.process_group.size() + rank = weights.process_group.rank() + + assert ( + config.ffn_config.ffn_hidden_size % world_size == 0 + ), f"The chosen size {config.ffn_config.ffn_hidden_size} is not compatible with sharding on {world_size} shards" + + expert_size = config.ffn_config.ffn_hidden_size + block_size = expert_size // world_size + start = rank * block_size + stop = (rank + 1) * block_size + + tensor = torch.empty( + (config.ffn_config.moe_num_experts * block_size, config.d_model), + dtype=weights.dtype, + device=weights.device, + ) + + slice_ = weights._get_slice(f"{prefix}") + + for i in range(config.ffn_config.moe_num_experts): + offset = i * expert_size + expert_slice = slice_[start + offset : stop + offset] + + tensor[i * block_size : (i + 1) * block_size] = expert_slice.to( + dtype=weights.dtype + ).to(device=weights.device) + return tensor + + +def _load_experts_quantized(config, prefix, weights, cls): + world_size = weights.process_group.size() + rank = weights.process_group.rank() + + assert ( + config.ffn_config.ffn_hidden_size % world_size == 0 + ), f"The chosen size {config.ffn_config.ffn_hidden_size} is not compatible with sharding on {world_size} shards" + + expert_size = config.ffn_config.ffn_hidden_size + block_size = expert_size // world_size + start = rank * block_size + stop = (rank + 1) * block_size + + slice_ = weights._get_slice(f"{prefix}") + + experts = [] + for i in range(config.ffn_config.moe_num_experts): + if config.quantize in ["gptq", "awq"]: + raise NotImplementedError( + "Dbrx does not support gptq/awq quantization yet." + ) + else: + offset = i * expert_size + expert_slice = ( + slice_[start + offset : stop + offset] + .to(dtype=weights.dtype) + .to(device=weights.device) + ) + + if cls == TensorParallelRowLinear: + expert_slice = expert_slice.t().contiguous() + linear = get_linear(expert_slice, None, config.quantize) + experts.append(cls(linear, weights.process_group)) + else: + linear = get_linear(expert_slice, None, config.quantize) + experts.append(cls(linear)) + + return experts + + +class DbrxAttention(torch.nn.Module): + def __init__( + self, + prefix: str, + config, + weights, + ): + super().__init__() + self.clip_qkv = config.attn_config.clip_qkv + self.num_heads = config.n_heads + self.hidden_size = config.d_model + self.head_size = self.hidden_size // self.num_heads + + self.rotary_emb = PositionRotaryEmbedding.static( + config=config, + dim=self.head_size, + base=config.attn_config.rope_theta, + device=weights.device, + ) + + self.softmax_scale = self.head_size**-0.5 + + if self.num_heads % weights.process_group.size() != 0: + raise ValueError( + f"`num_heads` must be divisible by `num_shards` (got `num_heads`: {self.num_heads} " + f"and `num_shards`: {weights.process_group.size()}" + ) + self.num_heads = self.num_heads // weights.process_group.size() + self.num_key_value_heads = ( + config.attn_config.kv_n_heads // weights.process_group.size() + ) + + self.query_key_value = load_attention(config, prefix, weights) + + self.o_proj = TensorParallelRowLinear.load( + config, + prefix=f"{prefix}.out_proj", + weights=weights, + bias=False, + ) + self.num_groups = self.num_heads // self.num_key_value_heads + self.kv_head_mapping = torch.arange( + 0, self.num_key_value_heads, dtype=torch.int32, device=weights.device + ).repeat_interleave(self.num_groups) + + def forward( + self, + hidden_states, + cos, + sin, + cu_seqlen_prefill, + kv_cache, + block_tables, + slots, + input_lengths, + max_s, + ): + qkv = self.query_key_value(hidden_states) + if self.clip_qkv is not None: + qkv = qkv.clamp(min=-self.clip_qkv, max=self.clip_qkv) + + query, kv = qkv.split( + [ + self.head_size * self.num_heads, + 2 * self.head_size * self.num_key_value_heads, + ], + dim=1, + ) + query = query.view(-1, self.num_heads, self.head_size) + kv = kv.view(-1, 2, self.num_key_value_heads, self.head_size) + + self.rotary_emb(query, torch.select(kv, dim=1, index=0), cos, sin) + + paged_attention.reshape_and_cache( + kv[:, 0], kv[:, 1], kv_cache[0], kv_cache[1], slots + ) + + # output tensor + attn_output = torch.empty_like(query) + + # Prefill + if cu_seqlen_prefill is not None: + # flash attention + flash_attn.attention( + query, + torch.select(kv, dim=1, index=0), + torch.select(kv, dim=1, index=1), + attn_output, + cu_seqlen_prefill, + max_s, + self.softmax_scale, + ) + # Decode + else: + paged_attention.attention( + attn_output, + query, + kv_cache[0], + kv_cache[1], + self.kv_head_mapping, + self.softmax_scale, + block_tables, + input_lengths, + max_s, + ) + + return self.o_proj(attn_output.view(-1, self.num_heads * self.head_size)) + + +class DbrxNormAttentionNorm(nn.Module): + def __init__( + self, + prefix: str, + config, + weights, + ): + super().__init__() + self.norm_1 = FastLayerNorm.load_no_bias( + prefix=f"{prefix}.norm_1", weights=weights, eps=1e-5 + ) + self.self_attn = DbrxAttention( + prefix=f"{prefix}.attn", config=config, weights=weights + ) + self.norm_2 = FastLayerNorm.load_no_bias( + prefix=f"{prefix}.norm_2", + weights=weights, + eps=1e-5, + ) + + def forward( + self, + hidden_states, + residual, + cos, + sin, + cu_seqlen_prefill, + kv_cache, + block_tables, + slots, + input_lengths, + max_s, + ): + normed_hidden_states, res = self.norm_1(hidden_states, residual) + + # Self Attention + attn_output = self.self_attn( + normed_hidden_states, + cos, + sin, + cu_seqlen_prefill, + kv_cache, + block_tables, + slots, + input_lengths, + max_s, + ) + + # faster post attention rms norm + normed_attn_res_output, attn_res = self.norm_2(attn_output, res) + + return normed_attn_res_output, attn_res + + +@torch.jit.script +def select_experts( + gate_logits: torch.Tensor, top_k: int, moe_normalize_expert_weights: int +): + # all_probs: (sequence_length, n_experts) and upcast for softmax + all_probs = torch.nn.functional.softmax(gate_logits, dim=1, dtype=torch.float) + # weights, selected_experts: (sequence_length, top-k) + weights, selected_experts = torch.topk(all_probs, top_k, dim=-1) + if moe_normalize_expert_weights: + weights = weights / torch.norm( + weights, p=moe_normalize_expert_weights, dim=-1, keepdim=True + ) + weights = weights.view(-1) + selected_experts = selected_experts.view(-1) + + return selected_experts, weights + + +@torch.jit.script +def round_up(x: torch.Tensor, value: int): + return torch.div(x + (value - 1), value, rounding_mode="trunc") * value + + +class BlockSparseMoE(nn.Module): + """ + Built on the paper and library Megablocks as described in + https://arxiv.org/abs/2211.15841. This implementation is + strictly equivalent to standard MoE with full capacity (no + dropped tokens). It's faster since it formulates MoE operations + in terms of block-sparse operations to accomodate imbalanced + assignments of tokens to experts, whereas standard MoE either + (1) drop tokens at the cost of reduced performance or (2) set + capacity factor to number of experts and thus waste computation + and memory on padding. + """ + + def __init__(self, prefix, config: DbrxConfig, weights): + super().__init__() + self.moe_normalize_expert_weights = ( + config.ffn_config.moe_normalize_expert_weights + ) + self.hidden_dim = config.d_model + self.ffn_dim = config.ffn_config.ffn_hidden_size // weights.process_group.size() + self.num_experts = config.ffn_config.moe_num_experts + self.top_k = config.ffn_config.moe_top_k + + act = config.ffn_config.ffn_act_fn["name"] + if "gelu" in act: + self.act = lambda x: torch.nn.functional.gelu( + x, + approximate=( + "tanh" if act in ["gelu_fast", "gelu_pytorch_tanh"] else "none" + ), + ) + elif "silu" in act: + self.act = torch.nn.functional.silu + else: + self.act = ACT2FN[act] + + # gating + self.gate = FastLinear.load( + config, f"{prefix}.router.layer", weights, bias=False + ) + + # merged expert weights, all of size (n_experts * ffn_dim, hidden_dim) + self.w1 = _load_experts(config, f"{prefix}.experts.mlp.w1", weights) + self.w2 = _load_experts(config, f"{prefix}.experts.mlp.w2", weights) + self.v1 = _load_experts(config, f"{prefix}.experts.mlp.v1", weights) + + self.offsets = None + self.offsets_block_rows = 0 + + self.process_group = weights.process_group + + # Calculate the number of bits needed to represent the expert indices + # so that we can pass it to radix sort. + self.sort_end_bit = max(int(np.ceil(np.log2(self.num_experts))), 1) + self.blocking = 128 + self.quantize_scatter_num_bits = -1 + + def topology(self, x: torch.Tensor, padded_bins: torch.Tensor): + padded_tokens, _ = x.size() + assert padded_tokens % self.blocking == 0 + assert self.ffn_dim % self.blocking == 0 + + # Offsets for the sparse matrix. All rows have the + # same number of nonzero blocks dictated by the + # dimensionality of a single expert. + block_rows = padded_tokens // self.blocking + blocks_per_row = self.ffn_dim // self.blocking + if self.offsets is None or block_rows > self.offsets_block_rows: + self.offsets = torch.arange( + 0, + block_rows * blocks_per_row + 1, + blocks_per_row, + dtype=torch.int32, + device=x.device, + ) + self.offsets_block_rows = block_rows + offsets = self.offsets + else: + offsets = self.offsets[: block_rows + 1] + + # Indices for the sparse matrix. The indices for + # the intermediate matrix are dynamic depending + # on the mapping of tokens to experts. + column_indices = ops.topology( + padded_bins, self.blocking, block_rows, blocks_per_row + ) + + # For now, use meta init to save the device memory. + data = torch.empty( + column_indices.numel(), + self.blocking, + self.blocking, + dtype=x.dtype, + device="meta", + ) + shape = (padded_tokens, self.ffn_dim * self.num_experts) + row_indices = stk.ops.row_indices(shape, data, offsets, column_indices) + return stk.Matrix( + shape, + data, + row_indices, + column_indices, + offsets, + False, + False, + False, + ) + + def indices_and_padded_bins(self, selected_experts: torch.Tensor): + # Sort the expert ids to produce the scatter/gather + # indices for the permutation. + # selected_experts = selected_experts.int() + + # returns bin_ids == num of experts for this sequence ? == unique selected experts? + # and indices == how to sort tokens? + bin_ids, indices = ops.sort(selected_experts, self.sort_end_bit) + # bin_ids => [0, 0, 0, 2, 2, ...] => [num_tokens * top_k] + # indices => [14, 32, 33, ...] => [num_tokens * top_k] + + # Histogram the expert ids to identify the number of + # tokens routed to each expert. + tokens_per_expert = ops.histogram(selected_experts, self.num_experts) + # tokens_per_expert => [3, 0, 2, ...] => [num_experts] + + # Round the token counts up to the block size used in + # the matrix muliplications. Caculate the starting + # position of each bin. + + # List of size num_experts + padded_tokens_per_expert = round_up(tokens_per_expert, self.blocking) + # padded_tokens_per_expert => [128, O, 128, ...] + + # Cumulative selected experts per token + padded_bins = ops.inclusive_cumsum(padded_tokens_per_expert, 0) + padded_bins = promote_scalar(padded_bins) + # padded_bins => [128, 128, 256, ...] + + # Calculate the bin bounds for the sorted tokens. + bins = ops.inclusive_cumsum(tokens_per_expert, 0) + bins = promote_scalar(bins) + # bins => [3, 3, 5, ...] + + return indices, bin_ids, bins, padded_bins, tokens_per_expert + + def sparse_forward(self, x: torch.Tensor) -> torch.Tensor: + """ + x: (sequence_length, model_dim) + gate_logits: (sequence_length, n_experts) + """ + # optional reshape + input_shape = x.shape + x = x.view(-1, input_shape[-1]) + + # gate_logits: (sequence_length, n_experts) + gate_logits = self.gate(x) + selected_experts, weights = select_experts( + gate_logits, self.top_k, self.moe_normalize_expert_weights + ) + + ( + indices, + bin_ids, + bins, + padded_bins, + _, + ) = self.indices_and_padded_bins(selected_experts) + + # Permute tokens and pad to prepare expert computation + # (top_k * sequence_length + padding, model_dim) + x = ops.padded_gather(x, indices, bin_ids, bins, padded_bins, self.top_k) + + # Create the sparse matrix topology + with torch.no_grad(): + topo = self.topology(x, padded_bins) + + # Perform the expert computation + # First Dense x Dense -> Sparse for w1 and v1, + # (top_k * sequence_length + padding, ffn_dim * n_experts) + x = stk.Matrix( + topo.size(), + self.act(stk.ops.sdd(x, self.w1.t(), topo).data) + * stk.ops.sdd(x, self.v1.t(), topo).data, + topo.row_indices, + topo.column_indices, + topo.offsets, + topo.column_indices_t, + topo.offsets_t, + topo.block_offsets_t, + ) + + # Then Sparse x Dense -> Dense for w2 + # (top_k * sequence_length + padding, model_dim) + x = stk.ops.dsd(x, self.w2) + + # Permute back and remove padding + # (sequence_length, model_dim) + x = ops.padded_scatter( + x, + indices, + bin_ids, + weights, + bins, + padded_bins, + self.top_k, + self.quantize_scatter_num_bits, + ).view(*input_shape) + + if self.process_group.size() > 1: + torch.distributed.all_reduce(x, group=self.process_group) + + return x.view(*input_shape) + + def dense_forward(self, x: torch.Tensor) -> torch.Tensor: + """ + x: (sequence_length, model_dim) + gate_logits: (sequence_length, n_experts) + """ + # optional reshape + input_shape = x.shape + x = x.view(-1, input_shape[-1]) + + # gate_logits: (sequence_length, n_experts) + gate_logits = self.gate(x) + # all_probs: (sequence_length, n_experts) and upcast for softmax + weights = torch.nn.functional.softmax(gate_logits, dim=1, dtype=torch.float) + + if self.top_k < self.num_experts: + _, not_selected_experts = torch.topk( + weights, + self.num_experts - self.top_k, + largest=False, + sorted=False, + dim=1, + ) + # Mask not selected experts + weights.scatter_(1, not_selected_experts, 0) + + # Re-normalize + if self.moe_normalize_expert_weights: + weights = weights / torch.norm( + weights, p=self.moe_normalize_expert_weights, dim=-1, keepdim=True + ) + weights = weights.to(x.dtype) + + # Expand to [num_experts, sequence_length, model_dim] + x = x.view(1, -1, input_shape[-1]).expand(self.num_experts, -1, input_shape[-1]) + + # Permute to [num_experts, model_dim, ffn_dim] + w1 = self.w1.view(self.num_experts, self.ffn_dim, self.hidden_dim).permute( + 0, 2, 1 + ) + v1 = self.v1.view(self.num_experts, self.ffn_dim, self.hidden_dim).permute( + 0, 2, 1 + ) + + inter = self.act(torch.bmm(x, w1)) * torch.bmm(x, v1) + + out = torch.bmm( + inter, self.w2.view(self.num_experts, self.ffn_dim, self.hidden_dim) + ) + # Mask not selected experts + out *= weights.t().view(self.num_experts, -1, 1) + + # Sum experts + out = out.sum(0) + + # Reduce sum + if self.process_group.size() > 1: + torch.distributed.all_reduce(out, group=self.process_group) + + return out + + def forward(self, x: torch.Tensor) -> torch.Tensor: + if len(x) > 256 and HAS_MEGABLOCKS: + return self.sparse_forward(x) + # This is faster when there is not a lot of tokens + return self.dense_forward(x) + + +class DenseMoE(nn.Module): + def __init__(self, prefix, config: DbrxConfig, weights): + super().__init__() + + self.moe_normalize_expert_weights = ( + config.ffn_config.moe_normalize_expert_weights + ) + self.hidden_dim = config.d_model + self.ffn_dim = config.ffn_config.ffn_hidden_size // weights.process_group.size() + self.num_experts = config.ffn_config.moe_num_experts + self.top_k = config.ffn_config.moe_top_k + + act = config.ffn_config.ffn_act_fn["name"] + if "gelu" in act: + self.act = lambda x: torch.nn.functional.gelu( + x, + approximate=( + "tanh" if act in ["gelu_fast", "gelu_pytorch_tanh"] else "none" + ), + ) + elif "silu" in act: + self.act = torch.nn.functional.silu + else: + self.act = ACT2FN[act] + + # gating + self.gate = FastLinear.load( + config, f"{prefix}.router.layer", weights, bias=False + ) + + self.w1 = _load_experts_quantized( + config, + prefix=f"{prefix}.experts.mlp.w1", + weights=weights, + cls=TensorParallelColumnLinear, + ) + self.w2 = _load_experts_quantized( + config, + prefix=f"{prefix}.experts.mlp.w2", + weights=weights, + cls=TensorParallelRowLinear, + ) + self.v1 = _load_experts_quantized( + config, + prefix=f"{prefix}.experts.mlp.v1", + weights=weights, + cls=TensorParallelColumnLinear, + ) + + self.process_group = weights.process_group + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """ + x: (sequence_length, model_dim) + gate_logits: (sequence_length, n_experts) + """ + # optional reshape + input_shape = x.shape + x = x.view(-1, input_shape[-1]) + + # gate_logits: (sequence_length, n_experts) + gate_logits = self.gate(x) + # all_probs: (sequence_length, n_experts) and upcast for softmax + weights = torch.nn.functional.softmax(gate_logits, dim=1, dtype=torch.float) + + if self.top_k < self.num_experts: + _, not_selected_experts = torch.topk( + weights, + self.num_experts - self.top_k, + largest=False, + sorted=False, + dim=1, + ) + # Mask not selected experts + weights.scatter_(1, not_selected_experts, 0) + + # Re-normalize + if self.moe_normalize_expert_weights: + weights = weights / torch.norm( + weights, p=self.moe_normalize_expert_weights, dim=-1, keepdim=True + ) + weights = weights.to(x.dtype) + + # Final output tensor + out = x.new_zeros(x.shape[0], self.hidden_dim) + for i in range(self.num_experts): + h = self.act(self.w1[i](x)) * self.v1[i](x) + h = self.w2[i](h, reduce=False) + # Add expert output to out with masking + out += h * weights[:, i].view(-1, 1) + + # Reduce sum + if self.process_group.size() > 1: + torch.distributed.all_reduce(out, group=self.process_group) + + return out + + +class DbrxLayer(nn.Module): + def __init__(self, layer_id, config, weights): + super().__init__() + prefix = f"transformer.blocks.{layer_id}" + + self.attn = DbrxNormAttentionNorm( + prefix=f"{prefix}.norm_attn_norm", config=config, weights=weights + ) + + moe_cls = BlockSparseMoE if config.quantize is None else DenseMoE + self.moe = moe_cls(f"{prefix}.ffn", config, weights) + + def forward( + self, + hidden_states, + residual, + cos, + sin, + cu_seqlen_prefill, + kv_cache, + block_tables, + slots, + input_lengths, + max_s, + ): + # Self Attention + attn_output, attn_res = self.attn( + hidden_states, + residual, + cos, + sin, + cu_seqlen_prefill, + kv_cache, + block_tables, + slots, + input_lengths, + max_s, + ) + + moe_output = self.moe(attn_output) + + return moe_output, attn_res + + +class DbrxModel(torch.nn.Module): + def __init__(self, config, weights): + super().__init__() + + self.embed_tokens = TensorParallelEmbedding( + prefix="transformer.wte", weights=weights + ) + + self.layers = nn.ModuleList( + [ + DbrxLayer( + layer_id, + config, + weights, + ) + for layer_id in range(config.n_layers) + ] + ) + self.norm = FastLayerNorm.load_no_bias( + prefix="transformer.norm_f", weights=weights, eps=1e-5 + ) + + self.head_size = self.layers[0].attn.self_attn.head_size + self.num_heads = self.layers[0].attn.self_attn.num_heads + self.num_key_value_heads = self.layers[0].attn.self_attn.num_key_value_heads + + def forward( + self, + input_ids: torch.Tensor, + position_ids: torch.Tensor, + cu_seqlen_prefill: Optional[torch.Tensor], + kv_cache: List[Tuple[torch.Tensor, torch.Tensor]], + block_tables: torch.Tensor, + slots: torch.Tensor, + input_lengths: torch.Tensor, + max_s: int, + ) -> torch.Tensor: + hidden_states = self.embed_tokens(input_ids) + + # Get rotary cos and sin for this forward + # Avoid to index in each layer + cos, sin = self.layers[0].attn.self_attn.rotary_emb.get_cos_sin( + position_ids, max_s, hidden_states.dtype + ) + + residual = None + for i, layer in enumerate(self.layers): + hidden_states, residual = layer( + hidden_states, + residual, + cos, + sin, + cu_seqlen_prefill, + kv_cache[i], + block_tables, + slots, + input_lengths, + max_s, + ) + + hidden_states, _ = self.norm(hidden_states, residual) + + return hidden_states + + +class FlashDbrxForCausalLM(torch.nn.Module): + def __init__(self, config, weights): + super().__init__() + + self.model = DbrxModel(config, weights) + self.lm_head = SpeculativeHead.load( + config, + prefix="lm_head", + weights=weights, + ) + + def forward( + self, + input_ids: torch.Tensor, + position_ids: torch.Tensor, + cu_seqlen_prefill: Optional[torch.Tensor], + kv_cache: List[Tuple[torch.Tensor, torch.Tensor]], + block_tables: torch.Tensor, + slots: torch.Tensor, + input_lengths: torch.Tensor, + max_s: int, + lm_head_indices: Optional[torch.Tensor] = None, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: + hidden_states = self.model( + input_ids, + position_ids, + cu_seqlen_prefill, + kv_cache, + block_tables, + slots, + input_lengths, + max_s, + ) + if lm_head_indices is not None: + hidden_states = hidden_states[lm_head_indices] + logits, speculative_logits = self.lm_head(hidden_states) + return logits, speculative_logits diff --git a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py index 17d4f708..d71a3f0c 100644 --- a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py @@ -552,6 +552,7 @@ class BlockSparseMoE(nn.Module): # Re-normalize weights = all_probs / all_probs.sum(dim=1, keepdim=True) + weights = weights.to(x.dtype) # Expand to [num_experts, sequence_length, model_dim] x = x.view(1, -1, input_shape[-1]).expand(self.num_experts, -1, input_shape[-1]) @@ -660,6 +661,7 @@ class DenseMoE(nn.Module): # Re-normalize weights = all_probs / all_probs.sum(dim=1, keepdim=True) + weights = weights.to(x.dtype) # Final output tensor out = x.new_zeros(x.shape[0], self.hidden_dim) diff --git a/server/text_generation_server/models/flash_dbrx.py b/server/text_generation_server/models/flash_dbrx.py new file mode 100644 index 00000000..367d3db0 --- /dev/null +++ b/server/text_generation_server/models/flash_dbrx.py @@ -0,0 +1,99 @@ +import torch +import torch.distributed + +from opentelemetry import trace +from typing import Optional +from transformers import AutoTokenizer +from transformers.models.gpt2 import GPT2TokenizerFast + +from text_generation_server.models import FlashCausalLM +from text_generation_server.models.custom_modeling.flash_dbrx_modeling import ( + FlashDbrxForCausalLM, + DbrxConfig, +) +from text_generation_server.utils import ( + initialize_torch_distributed, + weight_files, + Weights, +) + +tracer = trace.get_tracer(__name__) + + +class FlashDbrx(FlashCausalLM): + def __init__( + self, + model_id: str, + revision: Optional[str] = None, + quantize: Optional[str] = None, + use_medusa: Optional[str] = None, + dtype: Optional[torch.dtype] = None, + trust_remote_code: bool = False, + ): + self.process_group, rank, world_size = initialize_torch_distributed() + if torch.cuda.is_available(): + device = torch.device(f"cuda:{rank}") + dtype = torch.bfloat16 if dtype is None else dtype + else: + raise NotImplementedError("FlashDBRX is only available on GPU") + + try: + tokenizer = GPT2TokenizerFast.from_pretrained( + model_id, + revision=revision, + padding_side="left", + truncation_side="left", + trust_remote_code=trust_remote_code, + use_fast=True, + from_slow=False, + ) + except: + try: + tokenizer = AutoTokenizer.from_pretrained( + model_id, + revision=revision, + padding_side="left", + truncation_side="left", + trust_remote_code=trust_remote_code, + use_fast=True, + from_slow=False, + ) + except: + # FIXME: change back to model id once the tokenizer.json is merged + tokenizer = GPT2TokenizerFast.from_pretrained( + "Xenova/dbrx-instruct-tokenizer", + revision=revision, + padding_side="left", + truncation_side="left", + trust_remote_code=trust_remote_code, + use_fast=True, + from_slow=False, + ) + + config = DbrxConfig.from_pretrained( + model_id, revision=revision, trust_remote_code=trust_remote_code + ) + config.quantize = quantize + config.use_medusa = use_medusa + + torch.distributed.barrier(group=self.process_group) + + filenames = weight_files(model_id, revision=revision, extension=".safetensors") + weights = Weights(filenames, device, dtype, process_group=self.process_group) + if config.quantize in ["gptq", "awq"]: + weights._set_gptq_params(model_id, revision) + + model = FlashDbrxForCausalLM(config, weights) + + torch.distributed.barrier(group=self.process_group) + super(FlashDbrx, self).__init__( + model=model, + tokenizer=tokenizer, + num_layers=len(model.model.layers), + num_kv_heads=model.model.num_key_value_heads, + head_size=model.model.head_size, + dtype=dtype, + device=device, + rank=rank, + world_size=world_size, + ) From 4ee0a0c4010b6e000f176977648aa1749339e8cb Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Fri, 29 Mar 2024 19:17:24 +0100 Subject: [PATCH 02/74] v1.4.5 (#1686) --- Cargo.lock | 158 +++---- Cargo.toml | 2 +- benchmark/src/app.rs | 8 +- benchmark/src/table.rs | 4 +- docs/openapi.json | 401 +++++++++++++++++- .../test_flash_llama_grammar_no_tools.json | 2 +- .../test_flash_llama_grammar_tools.json | 2 +- .../test_flash_llama_grammar_tools_auto.json | 2 +- ...test_flash_llama_grammar_tools_choice.json | 2 +- ...test_flash_llama_grammar_tools_stream.json | 2 +- integration-tests/pyproject.toml | 2 +- launcher/src/main.rs | 6 +- router/src/server.rs | 8 +- server/pyproject.toml | 2 +- 14 files changed, 494 insertions(+), 107 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2df5d320..8078d24f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -96,9 +96,9 @@ checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "arc-swap" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "async-rustls" @@ -130,25 +130,25 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] name = "async-trait" -version = "0.1.78" +version = "0.1.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85" +checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "average" @@ -242,9 +242,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.70" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95d8e92cac0961e91dbd517496b00f7e9b92363dbe6d42c3198268323798860c" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -323,9 +323,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "camino" @@ -385,9 +385,9 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "clap" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -407,14 +407,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -748,9 +748,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fixedbitset" @@ -876,7 +876,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -969,7 +969,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.5", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", @@ -1173,9 +1173,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -1197,9 +1197,9 @@ dependencies = [ [[package]] name = "indoc" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8" +checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" [[package]] name = "init-tracing-opentelemetry" @@ -1267,9 +1267,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" @@ -1409,9 +1409,9 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "metrics" @@ -1450,7 +1450,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -1486,8 +1486,8 @@ dependencies = [ [[package]] name = "minijinja" -version = "1.0.15" -source = "git+https://github.com/mitsuhiko/minijinja.git?branch=main#045d6a0f7ee1ea9cb4aa7725bc8fb1c39ab1d90b" +version = "1.0.16" +source = "git+https://github.com/mitsuhiko/minijinja.git?branch=main#82d0160b5513844e5429db084f1cbdd3313ed482" dependencies = [ "serde", ] @@ -1537,7 +1537,7 @@ checksum = "f686d68a09079e63b1d2c64aa305095887ce50565f00a922ebfaeeee0d9ba6ce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -1834,7 +1834,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -1845,9 +1845,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.101" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -2030,7 +2030,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.2.5", + "indexmap 2.2.6", ] [[package]] @@ -2050,7 +2050,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -2091,12 +2091,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -2169,7 +2169,7 @@ dependencies = [ "prost 0.12.3", "prost-types", "regex", - "syn 2.0.53", + "syn 2.0.55", "tempfile", "which", ] @@ -2197,7 +2197,7 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -2292,9 +2292,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -2343,14 +2343,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", "regex-automata 0.4.6", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -2370,7 +2370,7 @@ checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -2387,9 +2387,9 @@ checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "reqwest" @@ -2482,7 +2482,7 @@ dependencies = [ "quote", "rust-embed-utils", "shellexpand", - "syn 2.0.53", + "syn 2.0.55", "walkdir", ] @@ -2538,9 +2538,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" dependencies = [ "log", "ring 0.17.8", @@ -2561,9 +2561,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" [[package]] name = "rustls-webpki" @@ -2671,14 +2671,14 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -2861,7 +2861,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -2883,9 +2883,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.53" +version = "2.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" +checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" dependencies = [ "proc-macro2", "quote", @@ -2971,7 +2971,7 @@ dependencies = [ [[package]] name = "text-generation-benchmark" -version = "1.4.4" +version = "1.4.5" dependencies = [ "average", "clap", @@ -2992,7 +2992,7 @@ dependencies = [ [[package]] name = "text-generation-client" -version = "1.4.4" +version = "1.4.5" dependencies = [ "futures", "grpc-metadata", @@ -3008,7 +3008,7 @@ dependencies = [ [[package]] name = "text-generation-launcher" -version = "1.4.4" +version = "1.4.5" dependencies = [ "clap", "ctrlc", @@ -3024,7 +3024,7 @@ dependencies = [ [[package]] name = "text-generation-router" -version = "1.4.4" +version = "1.4.5" dependencies = [ "async-stream", "axum", @@ -3079,7 +3079,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3198,7 +3198,7 @@ dependencies = [ "rayon", "rayon-cond", "regex", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", "serde", "serde_json", "spm_precompiled", @@ -3210,9 +3210,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -3245,7 +3245,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3360,7 +3360,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3433,7 +3433,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3620,7 +3620,7 @@ dependencies = [ "log", "native-tls", "once_cell", - "rustls 0.22.2", + "rustls 0.22.3", "rustls-pki-types", "rustls-webpki", "serde", @@ -3658,7 +3658,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d82b1bc5417102a73e8464c686eef947bdfb99fcdfc0a4f228e81afa9526470a" dependencies = [ - "indexmap 2.2.5", + "indexmap 2.2.6", "serde", "serde_json", "utoipa-gen", @@ -3674,7 +3674,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3779,7 +3779,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", "wasm-bindgen-shared", ] @@ -3813,7 +3813,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4140,7 +4140,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index d76cbc68..77a30f55 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ members = [ resolver = "2" [workspace.package] -version = "1.4.4" +version = "1.4.5" edition = "2021" authors = ["Olivier Dehaene"] homepage = "https://github.com/huggingface/text-generation-inference" diff --git a/benchmark/src/app.rs b/benchmark/src/app.rs index b27c56b4..48ac976a 100644 --- a/benchmark/src/app.rs +++ b/benchmark/src/app.rs @@ -444,7 +444,7 @@ fn progress_gauge(title: &str, label: String, progress: f64, color: Color) -> Ga } /// Throughput paragraph -fn throughput_paragraph<'a>(throughput: &Vec, name: &'static str) -> Paragraph<'a> { +fn throughput_paragraph<'a>(throughput: &[f64], name: &'static str) -> Paragraph<'a> { // Throughput average/high/low texts let throughput_texts = statis_spans(throughput, "tokens/secs"); @@ -457,7 +457,7 @@ fn throughput_paragraph<'a>(throughput: &Vec, name: &'static str) -> Paragr } /// Latency paragraph -fn latency_paragraph<'a>(latency: &mut Vec, name: &'static str) -> Paragraph<'a> { +fn latency_paragraph<'a>(latency: &mut [f64], name: &'static str) -> Paragraph<'a> { // Latency average/high/low texts let mut latency_texts = statis_spans(latency, "ms"); @@ -483,7 +483,7 @@ fn latency_paragraph<'a>(latency: &mut Vec, name: &'static str) -> Paragrap } /// Average/High/Low spans -fn statis_spans<'a>(data: &Vec, unit: &'static str) -> Vec> { +fn statis_spans<'a>(data: &[f64], unit: &'static str) -> Vec> { vec![ Line::from(vec![Span::styled( format!( @@ -543,7 +543,7 @@ fn latency_histogram<'a>( /// Latency/Throughput chart fn latency_throughput_chart<'a>( - latency_throughput: &'a Vec<(f64, f64)>, + latency_throughput: &'a [(f64, f64)], batch_sizes: &'a [u32], zoom: bool, name: &'static str, diff --git a/benchmark/src/table.rs b/benchmark/src/table.rs index c4819ff3..e18d7310 100644 --- a/benchmark/src/table.rs +++ b/benchmark/src/table.rs @@ -151,7 +151,7 @@ fn add_throuhgputs( } } -fn avg_min_max(data: &Vec) -> (f64, f64, f64) { +fn avg_min_max(data: &[f64]) -> (f64, f64, f64) { let average = data.iter().sum::() / data.len() as f64; let min = data .iter() @@ -164,7 +164,7 @@ fn avg_min_max(data: &Vec) -> (f64, f64, f64) { (average, *min, *max) } -fn px(data: &Vec, p: u32) -> f64 { +fn px(data: &[f64], p: u32) -> f64 { let i = (f64::from(p) / 100.0 * data.len() as f64) as usize; *data.get(i).unwrap_or(&std::f64::NAN) } diff --git a/docs/openapi.json b/docs/openapi.json index 75965d98..fdf1c804 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -10,7 +10,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0" }, - "version": "1.4.4" + "version": "1.4.5" }, "paths": { "/": { @@ -471,6 +471,90 @@ } } } + }, + "/v1/completions": { + "post": { + "tags": [ + "Text Generation Inference" + ], + "summary": "Generate tokens", + "description": "Generate tokens", + "operationId": "completions", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CompletionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Generated Text", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatCompletionChunk" + } + } + } + }, + "422": { + "description": "Input validation error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "example": { + "error": "Input validation error" + } + } + } + }, + "424": { + "description": "Generation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "example": { + "error": "Request failed during generation" + } + } + } + }, + "429": { + "description": "Model is overloaded", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "example": { + "error": "Model is overloaded" + } + } + } + }, + "500": { + "description": "Incomplete generation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResponse" + }, + "example": { + "error": "Incomplete generation" + } + } + } + } + } + } } }, "components": { @@ -669,17 +753,25 @@ "ChatCompletionDelta": { "type": "object", "required": [ - "role", - "content" + "role" ], "properties": { "content": { "type": "string", - "example": "What is Deep Learning?" + "example": "What is Deep Learning?", + "nullable": true }, "role": { "type": "string", "example": "user" + }, + "tool_calls": { + "allOf": [ + { + "$ref": "#/components/schemas/DeltaToolCall" + } + ], + "nullable": true } } }, @@ -739,7 +831,8 @@ "ChatRequest": { "type": "object", "required": [ - "model" + "model", + "messages" ], "properties": { "frequency_penalty": { @@ -777,11 +870,12 @@ "items": { "$ref": "#/components/schemas/Message" }, - "description": "A list of messages comprising the conversation so far." + "description": "A list of messages comprising the conversation so far.", + "example": "[{\"role\": \"user\", \"content\": \"What is Deep Learning?\"}]" }, "model": { "type": "string", - "description": "UNUSED\nID of the model to use. See the model endpoint compatibility table for details on which models work with the Chat API.", + "description": "[UNUSED] ID of the model to use. See the model endpoint compatibility table for details on which models work with the Chat API.", "example": "mistralai/Mistral-7B-Instruct-v0.2" }, "n": { @@ -806,6 +900,15 @@ "nullable": true, "minimum": 0 }, + "stop": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Up to 4 sequences where the API will stop generating further tokens.", + "example": "null", + "nullable": true + }, "stream": { "type": "boolean" }, @@ -816,6 +919,29 @@ "example": 1.0, "nullable": true }, + "tool_choice": { + "allOf": [ + { + "$ref": "#/components/schemas/ToolType" + } + ], + "nullable": true + }, + "tool_prompt": { + "type": "string", + "description": "A prompt to be appended before the tools", + "example": "\"Based on the conversation, please choose the most appropriate tool to use: \"", + "nullable": true + }, + "tools": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tool" + }, + "description": "A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of\nfunctions the model may generate JSON inputs for.", + "example": "null", + "nullable": true + }, "top_logprobs": { "type": "integer", "format": "int32", @@ -852,6 +978,164 @@ } } }, + "CompletionComplete": { + "type": "object", + "required": [ + "index", + "text", + "finish_reason" + ], + "properties": { + "finish_reason": { + "type": "string" + }, + "index": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "logprobs": { + "type": "array", + "items": { + "type": "number", + "format": "float" + }, + "nullable": true + }, + "text": { + "type": "string" + } + } + }, + "CompletionCompleteChunk": { + "type": "object", + "required": [ + "id", + "object", + "created", + "choices", + "model", + "system_fingerprint" + ], + "properties": { + "choices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CompletionComplete" + } + }, + "created": { + "type": "integer", + "format": "int64", + "minimum": 0 + }, + "id": { + "type": "string" + }, + "model": { + "type": "string" + }, + "object": { + "type": "string" + }, + "system_fingerprint": { + "type": "string" + } + } + }, + "CompletionRequest": { + "type": "object", + "required": [ + "model", + "prompt" + ], + "properties": { + "frequency_penalty": { + "type": "number", + "format": "float", + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far,\ndecreasing the model's likelihood to repeat the same line verbatim.", + "example": "1.0", + "nullable": true + }, + "max_tokens": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tokens that can be generated in the chat completion.", + "default": "32", + "nullable": true, + "minimum": 0 + }, + "model": { + "type": "string", + "description": "UNUSED\nID of the model to use. See the model endpoint compatibility table for details on which models work with the Chat API.", + "example": "mistralai/Mistral-7B-Instruct-v0.2" + }, + "prompt": { + "type": "string", + "description": "The prompt to generate completions for.", + "example": "What is Deep Learning?" + }, + "repetition_penalty": { + "type": "number", + "format": "float", + "nullable": true + }, + "seed": { + "type": "integer", + "format": "int64", + "example": 42, + "nullable": true, + "minimum": 0 + }, + "stream": { + "type": "boolean" + }, + "suffix": { + "type": "string", + "description": "The text to append to the prompt. This is useful for completing sentences or generating a paragraph of text.\nplease see the completion_template field in the model's tokenizer_config.json file for completion template.", + "nullable": true + }, + "temperature": { + "type": "number", + "format": "float", + "description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while\nlower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or `top_p` but not both.", + "example": 1.0, + "nullable": true + }, + "top_p": { + "type": "number", + "format": "float", + "description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the\ntokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.", + "example": 0.95, + "nullable": true + } + } + }, + "DeltaToolCall": { + "type": "object", + "required": [ + "index", + "id", + "type", + "function" + ], + "properties": { + "function": { + "$ref": "#/components/schemas/Function" + }, + "id": { + "type": "string" + }, + "index": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "type": { + "type": "string" + } + } + }, "Details": { "type": "object", "required": [ @@ -931,6 +1215,38 @@ ], "example": "Length" }, + "Function": { + "type": "object", + "required": [ + "arguments" + ], + "properties": { + "arguments": { + "type": "string" + }, + "name": { + "type": "string", + "nullable": true + } + } + }, + "FunctionDefinition": { + "type": "object", + "required": [ + "name", + "parameters" + ], + "properties": { + "description": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "parameters": {} + } + }, "GenerateParameters": { "type": "object", "properties": { @@ -1261,13 +1577,13 @@ "Message": { "type": "object", "required": [ - "role", - "content" + "role" ], "properties": { "content": { "type": "string", - "example": "My name is David and I" + "example": "My name is David and I", + "nullable": true }, "name": { "type": "string", @@ -1277,6 +1593,13 @@ "role": { "type": "string", "example": "user" + }, + "tool_calls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ToolCall" + }, + "nullable": true } } }, @@ -1437,6 +1760,64 @@ "$ref": "#/components/schemas/SimpleToken" } }, + "Tool": { + "type": "object", + "required": [ + "type", + "function" + ], + "properties": { + "function": { + "$ref": "#/components/schemas/FunctionDefinition" + }, + "type": { + "type": "string", + "example": "function" + } + } + }, + "ToolCall": { + "type": "object", + "required": [ + "id", + "type", + "function" + ], + "properties": { + "function": { + "$ref": "#/components/schemas/FunctionDefinition" + }, + "id": { + "type": "integer", + "format": "int32", + "minimum": 0 + }, + "type": { + "type": "string" + } + } + }, + "ToolType": { + "oneOf": [ + { + "type": "object", + "required": [ + "FunctionName" + ], + "properties": { + "FunctionName": { + "type": "string" + } + } + }, + { + "type": "string", + "enum": [ + "OneOf" + ] + } + ] + }, "Usage": { "type": "object", "required": [ diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json index 467b8ce3..543be115 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json @@ -17,7 +17,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.4-native", + "system_fingerprint": "1.4.5-native", "usage": { "completion_tokens": 100, "prompt_tokens": 60, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json index 8bdb7465..728e90a4 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json @@ -31,7 +31,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.4-native", + "system_fingerprint": "1.4.5-native", "usage": { "completion_tokens": 29, "prompt_tokens": 316, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json index 5ba297b1..2e0efb86 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json @@ -31,7 +31,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.4-native", + "system_fingerprint": "1.4.5-native", "usage": { "completion_tokens": 29, "prompt_tokens": 316, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json index 522624bc..91854223 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json @@ -30,7 +30,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.4-native", + "system_fingerprint": "1.4.5-native", "usage": { "completion_tokens": 21, "prompt_tokens": 187, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json index c085100d..e0c7aed6 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json @@ -23,5 +23,5 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.4-native" + "system_fingerprint": "1.4.5-native" } diff --git a/integration-tests/pyproject.toml b/integration-tests/pyproject.toml index cab74c46..ad217072 100644 --- a/integration-tests/pyproject.toml +++ b/integration-tests/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "text-generation-integration-tests" -version = "1.4.4" +version = "1.4.5" description = "Text Generation Inference integration tests" authors = ["Nicolas Patry "] diff --git a/launcher/src/main.rs b/launcher/src/main.rs index d52e2669..990eade4 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -604,7 +604,7 @@ fn shard_manager( // We read stderr in another thread as it seems that lines() can block in some cases let (err_sender, err_receiver) = mpsc::channel(); thread::spawn(move || { - for line in shard_stderr_reader.lines().flatten() { + for line in shard_stderr_reader.lines().map_while(Result::ok) { err_sender.send(line).unwrap_or(()); } }); @@ -722,7 +722,7 @@ impl TryFrom<&String> for PythonLogMessage { } fn log_lines(lines: Lines) { - for line in lines.flatten() { + for line in lines.map_while(Result::ok) { match PythonLogMessage::try_from(&line) { Ok(log) => log.trace(), Err(_) => tracing::debug!("{line}"), @@ -874,7 +874,7 @@ fn download_convert_model(args: &Args, running: Arc) -> Result<(), L // We read stderr in another thread as it seems that lines() can block in some cases let (err_sender, err_receiver) = mpsc::channel(); thread::spawn(move || { - for line in download_stderr.lines().flatten() { + for line in download_stderr.lines().map_while(Result::ok) { err_sender.send(line).unwrap_or(()); } }); diff --git a/router/src/server.rs b/router/src/server.rs index b328a8e8..eaed3f1c 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -12,7 +12,7 @@ use crate::{ ChatCompletion, ChatCompletionChoice, ChatCompletionChunk, ChatCompletionComplete, ChatCompletionDelta, ChatCompletionLogprob, ChatCompletionLogprobs, ChatCompletionTopLogprob, ChatRequest, CompatGenerateRequest, Completion, CompletionComplete, CompletionCompleteChunk, - CompletionRequest, VertexRequest, VertexResponse, + CompletionRequest, DeltaToolCall, Function, Tool, VertexRequest, VertexResponse, }; use crate::{FunctionDefinition, FunctionRef, FunctionsMap, Properties, ToolCall, ToolType, Tools}; use axum::extract::Extension; @@ -1211,6 +1211,12 @@ pub async fn run( ErrorResponse, GrammarType, Usage, + DeltaToolCall, + ToolType, + Tool, + ToolCall, + Function, + FunctionDefinition, ) ), tags( diff --git a/server/pyproject.toml b/server/pyproject.toml index 241c632d..b5e9c3fd 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "text-generation-server" -version = "1.4.4" +version = "1.4.5" description = "Text Generation Inference Python gRPC Server" authors = ["Olivier Dehaene "] From 99874eae7490c4a6aa90fe55f183b58d88397c8f Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Thu, 4 Apr 2024 23:01:56 +0200 Subject: [PATCH 03/74] Add cuda graphs sizes and make it default. (#1703) # What does this PR do? ``` text-generation-launcher --model-id XXX # Uses cuda graphs by default text-generation-launcher --model-id XXX --cuda-graphs "1,2" #Restrict the number of cuda graphs which saves VRAM text-generation-launcher --model-id XXX --cuda-graphs "0" # Disabling it entirely ``` Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- docs/source/basic_tutorials/launcher.md | 9 ++--- integration-tests/conftest.py | 1 - launcher/src/main.rs | 34 ++++++++++++++----- .../models/flash_causal_lm.py | 8 ++--- .../text_generation_server/models/globals.py | 10 +++++- server/text_generation_server/models/mamba.py | 8 ++--- 6 files changed, 48 insertions(+), 22 deletions(-) diff --git a/docs/source/basic_tutorials/launcher.md b/docs/source/basic_tutorials/launcher.md index 36fa1241..86394ff7 100644 --- a/docs/source/basic_tutorials/launcher.md +++ b/docs/source/basic_tutorials/launcher.md @@ -206,12 +206,13 @@ Options: [env: MAX_BATCH_SIZE=] ``` -## ENABLE_CUDA_GRAPHS +## CUDA_GRAPHS ```shell - --enable-cuda-graphs - Enable experimental support for cuda graphs + --cuda-graphs + Specify the batch sizes to compute cuda graphs for. Use "0" to disable - [env: ENABLE_CUDA_GRAPHS=] + [env: CUDA_GRAPHS=] + [default: 1,2,4,8,16,32,64,96,128] ``` ## HOSTNAME diff --git a/integration-tests/conftest.py b/integration-tests/conftest.py index 32bf4e54..022b2298 100644 --- a/integration-tests/conftest.py +++ b/integration-tests/conftest.py @@ -383,7 +383,6 @@ def launcher(event_loop): env = { "LOG_LEVEL": "info,text_generation_router=debug", - "ENABLE_CUDA_GRAPHS": "true", } if not use_flash_attention: env["USE_FLASH_ATTENTION"] = "false" diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 990eade4..63676392 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -284,9 +284,15 @@ struct Args { #[clap(long, env)] max_batch_size: Option, - /// Enable experimental support for cuda graphs - #[clap(long, env)] - enable_cuda_graphs: bool, + /// Specify the batch sizes to compute cuda graphs for. + /// Use "0" to disable. + #[clap( + long, + env, + value_delimiter = ',', + default_value = "1,2,4,8,16,32,64,96,128" + )] + cuda_graphs: Vec, /// The IP address to listen on #[clap(default_value = "0.0.0.0", long, env)] @@ -416,7 +422,7 @@ fn shard_manager( disable_custom_kernels: bool, watermark_gamma: Option, watermark_delta: Option, - enable_cuda_graphs: bool, + cuda_graphs: Vec, cuda_memory_fraction: f32, rope_scaling: Option, rope_factor: Option, @@ -549,8 +555,16 @@ fn shard_manager( }; // Enable experimental support for cuda graphs - if enable_cuda_graphs { - envs.push(("ENABLE_CUDA_GRAPHS".into(), "True".into())) + if !cuda_graphs.is_empty() { + envs.push(( + "CUDA_GRAPHS".into(), + cuda_graphs + .into_iter() + .map(|c| c.to_string()) + .collect::>() + .join(",") + .into(), + )); } // If disable_custom_kernels is true, pass it to the shard as an env var @@ -941,7 +955,11 @@ fn spawn_shards( let disable_custom_kernels = args.disable_custom_kernels; let watermark_gamma = args.watermark_gamma; let watermark_delta = args.watermark_delta; - let enable_cuda_graphs = args.enable_cuda_graphs; + let cuda_graphs: Vec = args + .cuda_graphs + .iter() + .filter_map(|&c| if c > 0 { Some(c) } else { None }) + .collect(); let cuda_memory_fraction = args.cuda_memory_fraction; let rope_scaling = args.rope_scaling; let rope_factor = args.rope_factor; @@ -963,7 +981,7 @@ fn spawn_shards( disable_custom_kernels, watermark_gamma, watermark_delta, - enable_cuda_graphs, + cuda_graphs, cuda_memory_fraction, rope_scaling, rope_factor, diff --git a/server/text_generation_server/models/flash_causal_lm.py b/server/text_generation_server/models/flash_causal_lm.py index 20f93820..5c25f341 100644 --- a/server/text_generation_server/models/flash_causal_lm.py +++ b/server/text_generation_server/models/flash_causal_lm.py @@ -28,7 +28,7 @@ from text_generation_server.models.cache_manager import ( BLOCK_SIZE, ) from text_generation_server.pb import generate_pb2 -from text_generation_server.models.globals import MEM_POOL, ENABLE_CUDA_GRAPHS +from text_generation_server.models.globals import MEM_POOL, CUDA_GRAPHS from text_generation_server.utils import StoppingCriteria, HeterogeneousNextTokenChooser from text_generation_server.utils.dist import MEMORY_FRACTION @@ -798,11 +798,11 @@ class FlashCausalLM(Model): self.device, ) - if ENABLE_CUDA_GRAPHS: + if CUDA_GRAPHS: try: - logger.info("Experimental support for Cuda Graphs is enabled") + logger.info(f"Cuda Graphs are enabled for sizes {CUDA_GRAPHS}") # Warmup cuda graphs - for bs in [1, 2, 4] + [8 * i for i in range(1, 9)]: + for bs in CUDA_GRAPHS: if self.speculate is None or self.speculate + 1 <= bs: self.cuda_graph_warmup(bs, max_s, max_bt) except Exception: diff --git a/server/text_generation_server/models/globals.py b/server/text_generation_server/models/globals.py index 3b8a70bc..6f554049 100644 --- a/server/text_generation_server/models/globals.py +++ b/server/text_generation_server/models/globals.py @@ -3,4 +3,12 @@ import os MEM_POOL = torch.cuda.graph_pool_handle() # This is overridden by the cli -ENABLE_CUDA_GRAPHS = os.getenv("ENABLE_CUDA_GRAPHS", "false").lower() in {"1", "true"} +cuda_graphs = os.getenv("CUDA_GRAPHS") +if cuda_graphs is not None: + try: + cuda_graphs = [int(item) for item in cuda_graphs.split(",")] + except Exception as e: + raise RuntimeError( + f"Could not parse cuda graphs {cuda_graphs}, expected comma separated list for batch sizes to run on: {e}" + ) +CUDA_GRAPHS = cuda_graphs diff --git a/server/text_generation_server/models/mamba.py b/server/text_generation_server/models/mamba.py index 2500d454..07a81491 100644 --- a/server/text_generation_server/models/mamba.py +++ b/server/text_generation_server/models/mamba.py @@ -13,7 +13,7 @@ from text_generation_server.utils import ( weight_files, Weights, ) -from text_generation_server.models.globals import ENABLE_CUDA_GRAPHS, MEM_POOL +from text_generation_server.models.globals import CUDA_GRAPHS, MEM_POOL import time from text_generation_server.models.custom_modeling.mamba_modeling import ( MambaModel, @@ -465,12 +465,12 @@ class Mamba(Model): def warmup(self, batch) -> Optional[int]: # TODO: implement warmup for Mamba if needed - if ENABLE_CUDA_GRAPHS: + if CUDA_GRAPHS: if self.speculate is None or self.speculate == 0: try: - logger.info("Experimental support for Cuda Graphs is enabled") + logger.info(f"Cuda Graphs are enabled for sizes {CUDA_GRAPHS}") # Warmup cuda graphs - for bs in [1, 2, 4] + [8 * i for i in range(1, 9)]: + for bs in CUDA_GRAPHS: self.cuda_graph_warmup(bs) except Exception: logger.exception(f"Decode cuda graph warmup failed") From c7e570e59de7dc47c35acb1b14d5fe31b123b234 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 5 Apr 2024 13:32:53 +0200 Subject: [PATCH 04/74] Pickle conversion now requires `--trust-remote-code`. (#1704) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- docs/source/_toctree.yml | 2 ++ docs/source/basic_tutorials/safety.md | 31 +++++++++++++++++++++++++++ server/text_generation_server/cli.py | 7 ++++++ 3 files changed, 40 insertions(+) create mode 100644 docs/source/basic_tutorials/safety.md diff --git a/docs/source/_toctree.yml b/docs/source/_toctree.yml index ad4f29f6..1598c248 100644 --- a/docs/source/_toctree.yml +++ b/docs/source/_toctree.yml @@ -23,6 +23,8 @@ title: All TGI CLI options - local: basic_tutorials/non_core_models title: Non-core Model Serving + - local: basic_tutorials/safety + title: Safety title: Tutorials - sections: - local: conceptual/streaming diff --git a/docs/source/basic_tutorials/safety.md b/docs/source/basic_tutorials/safety.md new file mode 100644 index 00000000..0b865db4 --- /dev/null +++ b/docs/source/basic_tutorials/safety.md @@ -0,0 +1,31 @@ +# Model safety. + +[Pytorch uses pickle](https://pytorch.org/docs/master/generated/torch.load.html) by default meaning that for quite a long while +*Every* model using that format is potentially executing unintended code while purely loading the model. + +There is a big red warning on Python's page for pickle [link](https://docs.python.org/3/library/pickle.html) but for quite a while +this was ignored by the community. Now that AI/ML is getting used much more ubiquitously we need to switch away from this format. + +HuggingFace is leading the effort here by creating a new format which contains pure data ([safetensors](https://github.com/huggingface/safetensors)) +and moving slowly but surely all the libs to make use of it by default. +The move is intentionnally slow in order to make breaking changes as little impact as possible on users throughout. + + +# TGI 2.0 + +Since the release of TGI 2.0, we take the opportunity of this major version increase to break backward compatibility for these pytorch +models (since they are a huge security risk for anyone deploying them). + + +From now on, TGI will not convert automatically pickle files without having `--trust-remote-code` flag or `TRUST_REMOTE_CODE=true` in the environment variables. +This flag is already used for community defined inference code, and is therefore quite representative of the level of confidence you are giving the model providers. + + +If you want to use a model that uses pickle, but you still do not want to trust the authors entirely we recommend making a convertion on our space made for that. + +https://huggingface.co/spaces/safetensors/convert + +This space will create a PR on the original model, which you are use directly regardless of merge status from the original authors. Just use +``` +docker run .... --revision refs/pr/#ID # Or use REVISION=refs/pr/#ID in the environment +``` diff --git a/server/text_generation_server/cli.py b/server/text_generation_server/cli.py index a513f5e6..e8b126d9 100644 --- a/server/text_generation_server/cli.py +++ b/server/text_generation_server/cli.py @@ -249,6 +249,13 @@ def download_weights( local_pt_files = utils.download_weights(pt_filenames, model_id, revision) if auto_convert: + if not trust_remote_code: + logger.warning( + f"🚨🚨BREAKING CHANGE in 2.0🚨🚨: Safetensors conversion is disabled without `--trust-remote-code` because " + f"Pickle files are unsafe and can essentially contain remote code execution!" + f"Please check for more information here: https://huggingface.co/docs/text-generation-inference/basic_tutorials/safety", + ) + logger.warning( f"No safetensors weights found for model {model_id} at revision {revision}. " f"Converting PyTorch weights to safetensors." From 5062fda4ffba60fa0f22e69a31722fe6aaebabe3 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 5 Apr 2024 16:44:10 +0200 Subject: [PATCH 05/74] Push users to streaming in the readme. (#1698) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 60fe83cd..bffe1e8a 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingf And then you can make requests like ```bash -curl 127.0.0.1:8080/generate \ +curl 127.0.0.1:8080/generate_stream \ -X POST \ -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":20}}' \ -H 'Content-Type: application/json' From f9958ee191057cadf0c6c1f41577eae86819812c Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 5 Apr 2024 16:44:19 +0200 Subject: [PATCH 06/74] Fixing cohere tokenizer. (#1697) --- server/text_generation_server/models/flash_cohere.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/text_generation_server/models/flash_cohere.py b/server/text_generation_server/models/flash_cohere.py index 33b053a6..181a93b1 100644 --- a/server/text_generation_server/models/flash_cohere.py +++ b/server/text_generation_server/models/flash_cohere.py @@ -3,7 +3,7 @@ import torch.distributed from opentelemetry import trace from typing import Optional -from transformers.models.llama import LlamaTokenizerFast +from transformers import AutoTokenizer from text_generation_server.models import FlashCausalLM from text_generation_server.models.custom_modeling.flash_cohere_modeling import ( @@ -36,7 +36,7 @@ class FlashCohere(FlashCausalLM): else: raise NotImplementedError("FlashCohere is only available on GPU") - tokenizer = LlamaTokenizerFast.from_pretrained( + tokenizer = AutoTokenizer.from_pretrained( model_id, revision=revision, padding_side="left", From 8dca3b04f8d6e07b10f60cb15b4c4f21d755a945 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 5 Apr 2024 19:23:57 +0200 Subject: [PATCH 07/74] Force weights_only (before fully breaking pickle files anyway). (#1710) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- server/text_generation_server/utils/convert.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/text_generation_server/utils/convert.py b/server/text_generation_server/utils/convert.py index 0b62f520..d9c3276b 100644 --- a/server/text_generation_server/utils/convert.py +++ b/server/text_generation_server/utils/convert.py @@ -68,7 +68,7 @@ def convert_file(pt_file: Path, sf_file: Path, discard_names: List[str]): Forcing us to check for potentially different keys during load when looking for specific tensors (making tensor sharing explicit). """ - loaded = torch.load(pt_file, map_location="cpu") + loaded = torch.load(pt_file, map_location="cpu", weights_only=True) if "state_dict" in loaded: loaded = loaded["state_dict"] to_removes = _remove_duplicate_names(loaded, discard_names=discard_names) From 53c2c3dbc7cb8a7d91d519a898fc8d74eae91e48 Mon Sep 17 00:00:00 2001 From: oOraph <13552058+oOraph@users.noreply.github.com> Date: Mon, 8 Apr 2024 08:52:10 +0200 Subject: [PATCH 08/74] Regenerate ld.so.cache (#1708) fixes https://github.com/huggingface/text-generation-inference/issues/1711 Signed-off-by: Raphael Glon Co-authored-by: Raphael Glon --- launcher/src/main.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 63676392..aef09433 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -1209,6 +1209,16 @@ fn terminate(process_name: &str, mut process: Child, timeout: Duration) -> io::R } fn main() -> Result<(), LauncherError> { + match Command::new("ldconfig").spawn() { + Ok(_) => {} + Err(err) => { + tracing::warn!( + "Unable to refresh ldconfig cache. Skipping (useless in most cases). Details {:?}", + err + ) + } + } + // Pattern match configuration let args: Args = Args::parse(); From ff42d33e9944832a19171967d2edd6c292bdb2d6 Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Mon, 8 Apr 2024 15:06:16 +0200 Subject: [PATCH 09/74] Revert license to Apache 2.0 (#1714) Reverts huggingface/text-generation-inference#725 --------- Co-authored-by: Julien Chaumond --- LICENSE | 318 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 169 insertions(+), 149 deletions(-) diff --git a/LICENSE b/LICENSE index 19a34fcf..7d0e8034 100644 --- a/LICENSE +++ b/LICENSE @@ -1,181 +1,201 @@ -Hugging Face Optimized Inference License 1.0 (HFOILv1.0) + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -This License Agreement governs the use of the Software and its Modifications. It is a -binding agreement between the Licensor and You. + 1. Definitions. -This License Agreement shall be referred to as Hugging Face Optimized Inference License -1.0 or HFOILv1.0. We may publish revised versions of this License Agreement from time to -time. Each version will be given a distinguished number. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. -By downloading, accessing, modifying, distributing or otherwise using the Software, You -consent to all of the terms and conditions below. So, if You do not agree with those, -please do not download, access, modify, distribute, or use the Software. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. -1. PERMISSIONS + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. -You may use, modify and distribute the Software pursuant to the following terms and -conditions: + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. -Copyright License. Subject to the terms and conditions of this License Agreement and where -and as applicable, each Contributor hereby grants You a perpetual, worldwide, -non-exclusive, royalty-free, copyright license to reproduce, prepare, publicly display, -publicly perform, sublicense under the terms herein, and distribute the Software and -Modifications of the Software. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. -Patent License. Subject to the terms and conditions of this License Agreement and where -and as applicable, each Contributor hereby grants You a perpetual, worldwide, -non-exclusive, royalty-free patent license to make, have made, Use, offer to sell, sell, -import, and otherwise transfer the Software, where such license applies only to those -patent claims licensable by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) with the Software to -which such Contribution(s) was submitted. If You institute patent litigation against any -entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Software -or a Contribution incorporated within the Software constitutes direct or contributory -patent infringement, then any rights granted to You under this License Agreement for the -Software shall terminate as of the date such litigation is filed. + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). -No other rights. All rights not expressly granted herein are retained. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." -2. RESTRICTIONS + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. -You may not distribute the Software as a hosted or managed, and paid service, where the -service grants users access to any substantial set of the features or functionality of the -Software. If you wish to do so, You will need to be granted additional rights from the -Licensor which will be subject to a separate mutually agreed agreement. + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. -You may not sublicense the Software under any other terms than those listed in this -License. + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: -3. OBLIGATIONS + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and -When You modify the Software, You agree to: - attach a notice stating the Modifications of -the Software You made; and - attach a notice stating that the Modifications of the -Software are released under this License Agreement. + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and -When You distribute the Software or Modifications of the Software, You agree to: - give -any recipients of the Software a copy of this License Agreement; - retain all Explanatory -Documentation; and if sharing the Modifications of the Software, add Explanatory -Documentation documenting the changes made to create the Modifications of the Software; - -retain all copyright, patent, trademark and attribution notices. + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. -4. MISCELLANEOUS + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. -Termination. Licensor reserves the right to restrict Use of the Software in violation of -this License Agreement, upon which Your licenses will automatically terminate. + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. -Contributions. Unless You explicitly state otherwise, any Contribution intentionally -submitted for inclusion in the Software by You to the Licensor shall be under the terms -and conditions of this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify the terms of any -separate license agreement you may have executed with Licensor regarding such -Contributions. + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. -Trademarks and related. Nothing in this License Agreement permits You (i) to make Use of -Licensors’ trademarks, trade names, or logos, (ii) otherwise suggest endorsement by -Licensor, or (iii) misrepresent the relationship between the parties; and any rights not -expressly granted herein are reserved by the Licensors. + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. -Output You generate. Licensor claims no rights in the Output. You agree not to contravene -any provision as stated in the License Agreement with your Use of the Output. + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. -Disclaimer of Warranty. Except as expressly provided otherwise herein, and to the fullest -extent permitted by law, Licensor provides the Software (and each Contributor provides its -Contributions) AS IS, and Licensor disclaims all warranties or guarantees of any kind, -express or implied, whether arising under any law or from any usage in trade, or otherwise -including but not limited to the implied warranties of merchantability, non-infringement, -quiet enjoyment, fitness for a particular purpose, or otherwise. You are solely -responsible for determining the appropriateness of the Software and Modifications of the -Software for your purposes (including your use or distribution of the Software and -Modifications of the Software), and assume any risks associated with Your exercise of -permissions under this License Agreement. + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. -Limitation of Liability. In no event and under no legal theory, whether in tort (including -negligence), contract, or otherwise, unless required by applicable law (such as deliberate -and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to -You for damages, including any direct, indirect, special, incidental, or consequential -damages of any character arising as a result of this License Agreement or out of the Use -or inability to Use the Software (including but not limited to damages for loss of -goodwill, work stoppage, computer failure or malfunction, model failure or malfunction, or -any and all other commercial damages or losses), even if such Contributor has been advised -of the possibility of such damages. + END OF TERMS AND CONDITIONS -Accepting Warranty or Additional Liability. While sharing the Software or Modifications of -the Software thereof, You may choose to offer and charge a fee for, acceptance of support, -warranty, indemnity, or other liability obligations and/or rights consistent with this -License Agreement. However, in accepting such obligations, You may act only on Your own -behalf and on Your sole responsibility, not on behalf of Licensor or any other -Contributor, and you hereby agree to indemnify, defend, and hold Licensor and each other -Contributor (and their successors or assigns) harmless for any liability incurred by, or -claims asserted against, such Licensor or Contributor (and their successors or assigns) by -reason of your accepting any such warranty or additional liability. + APPENDIX: How to apply the Apache License to your work. -Severability. This License Agreement is a license of copyright and patent rights and an -agreement in contract between You and the Licensor. If any provision of this License -Agreement is held to be invalid, illegal or unenforceable, the remaining provisions shall -be unaffected thereby and remain valid as if such provision had not been set forth herein. + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + Copyright 2022 Hugging Face -5. DEFINITIONS + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at -“Contribution” refers to any work of authorship, including the original version of the -Software and any Modifications of the Software that is intentionally submitted to Licensor -for inclusion in the Software by the copyright owner or by an individual or entity -authorized to submit on behalf of the copyright owner. For the purposes of this -definition, “submitted” means any form of electronic, verbal, or written communication -sent to the Licensor or its representatives, including but not limited to communication on -electronic mailing lists, source code control systems, and issue tracking systems that are -managed by, or on behalf of, the Licensor for the purpose of discussing and improving the -Software, but excluding communication that is conspicuously marked or otherwise designated -in writing by the copyright owner as “Not a Contribution.” + http://www.apache.org/licenses/LICENSE-2.0 -“Contributor” refers to Licensor and any individual or entity on behalf of whom a -Contribution has been received by Licensor and subsequently incorporated within the -Software. - -“Data” refers to a collection of information extracted from the dataset used with the -Model, including to train, pretrain, or otherwise evaluate the Model. The Data is not -licensed under this License Agreement. - -“Explanatory Documentation” refers to any documentation or related information including -but not limited to model cards or data cards dedicated to inform the public about the -characteristics of the Software. Explanatory documentation is not licensed under this -License. - -"License Agreement" refers to these terms and conditions. - -“Licensor” refers to the rights owners or entity authorized by the rights owners that are -granting the terms and conditions of this License Agreement. - -“Model” refers to machine-learning based assemblies (including checkpoints), consisting of -learnt weights and parameters (including optimizer states), corresponding to a model -architecture as embodied in Software source code. Source code is not licensed under this -License Agreement. - -“Modifications of the Software” refers to all changes to the Software, including without -limitation derivative works of the Software. - -“Output” refers to the results of operating the Software. - -“Share” refers to any transmission, reproduction, publication or other sharing of the -Software or Modifications of the Software to a third party, including providing the -Softwaire as a hosted service made available by electronic or other remote means, -including - but not limited to - API-based or web access. - -“Software” refers to the software and Model (or parts of either) that Licensor makes -available under this License Agreement. - -“Third Parties” refers to individuals or legal entities that are not under common control -with Licensor or You. - -“Use” refers to anything You or your representatives do with the Software, including but -not limited to generating any Output, fine tuning, updating, running, training, evaluating -and/or reparametrizing the Model. - -"You" (or "Your") refers to an individual or Legal Entity exercising permissions granted -by this License Agreement and/or making Use of the Software for whichever purpose and in -any field of Use. + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From 106d8ee81899e6461648e1efd56f5a873ce7294d Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 9 Apr 2024 10:27:57 +0200 Subject: [PATCH 10/74] Automatic quantization config. (#1719) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- server/text_generation_server/models/__init__.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/text_generation_server/models/__init__.py b/server/text_generation_server/models/__init__.py index 06219e7c..ec167303 100644 --- a/server/text_generation_server/models/__init__.py +++ b/server/text_generation_server/models/__init__.py @@ -186,6 +186,14 @@ def get_model( raise RuntimeError( f"Could not determine model type for {model_id} revision {revision}" ) + quantization_config = config_dict.get("quantization_config", None) + if quantization_config is not None and quantize is None: + method = quantization_config.get("quant_method", None) + if method in {"gptq", "awq"}: + logger.info(f"Auto selecting quantization method {method}") + quantize = method + else: + logger.info(f"Unknown quantization method {method}") if model_type == "ssm": return Mamba( From 4634b00c2a6ec85978b0653781ef6b7397d80509 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 9 Apr 2024 21:32:00 +0200 Subject: [PATCH 11/74] Adding Llava-Next (Llava 1.6) with full support. (#1709) # What does this PR do? - Changed all models to extract `embed_tokens` in order to enable llava to separately call the embeddings and the core model layers. - Added VlmCausalLM to inherit from FlashMistral in order to be maximally supported. The only added logics sits on top and parses images into pixel values, preallocates input_ids space for the image embeddings, and passes them for the model. - Added Clip for the vision tower. - Didn't add flash for the vision tower since there's no padding anyway. - Added heuristic (potentially incomplete) to calculate number of features *before* calculating the clip patches (allows for easier logic reuse of the LLM under the hood). Still needs to be done: - [x] Implement the image parsing in the controller side, to avoid downloading n times per TP shard and also refusing requests too large early and avoid issues where the truncation actually truncates the image. - [ ] Make sure it works with quantization properly. - [x] Make sure it works with TP>1 Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- Cargo.lock | 546 +- docs/source/supported_models.md | 2 + integration-tests/conftest.py | 16 + .../test_flash_llava_next_all_params.json | 65 + .../test_flash_llava_next_load.json | 59178 ++++++++++++++++ .../test_flash_llava_next_simple.json | 73 + .../test_mt0_base_all_params.json | 51 +- integration-tests/models/test_idefics.py | 6 + integration-tests/models/test_llava_next.py | 84 + integration-tests/models/test_mt0_base.py | 2 +- router/Cargo.toml | 4 +- router/client/src/client.rs | 7 +- router/src/config.rs | 158 + router/src/lib.rs | 1 + router/src/main.rs | 27 +- router/src/server.rs | 6 +- router/src/validation.rs | 173 +- .../text_generation_server/models/__init__.py | 14 + .../models/custom_modeling/clip.py | 827 + .../custom_modeling/flash_llama_modeling.py | 46 +- .../custom_modeling/flash_mistral_modeling.py | 43 +- .../models/custom_modeling/llava_next.py | 302 + .../models/flash_causal_lm.py | 24 +- .../models/flash_llama.py | 3 +- .../models/flash_mistral.py | 81 +- .../models/idefics_causal_lm.py | 89 +- .../models/llava_next.py | 36 + .../models/vlm_causal_lm.py | 329 + server/text_generation_server/server.py | 21 +- 29 files changed, 62022 insertions(+), 192 deletions(-) create mode 100644 integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_all_params.json create mode 100644 integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_load.json create mode 100644 integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_simple.json create mode 100644 integration-tests/models/test_llava_next.py create mode 100644 router/src/config.rs create mode 100644 server/text_generation_server/models/custom_modeling/clip.py create mode 100644 server/text_generation_server/models/custom_modeling/llava_next.py create mode 100644 server/text_generation_server/models/llava_next.py create mode 100644 server/text_generation_server/models/vlm_causal_lm.py diff --git a/Cargo.lock b/Cargo.lock index 8078d24f..65b9f8b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,6 +40,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "aligned-vec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" + [[package]] name = "anstream" version = "0.6.13" @@ -94,12 +100,35 @@ version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + [[package]] name = "arc-swap" version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.55", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + [[package]] name = "async-rustls" version = "0.3.0" @@ -150,6 +179,20 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +[[package]] +name = "av1-grain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom", + "num-rational", + "v_frame", +] + [[package]] name = "average" version = "0.14.2" @@ -161,6 +204,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "avif-serialize" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876c75a42f6364451a033496a14c44bffe41f5f4a8236f697391f11024e596d2" +dependencies = [ + "arrayvec", +] + [[package]] name = "awaitdrop" version = "0.1.2" @@ -267,6 +319,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" + [[package]] name = "bit-set" version = "0.5.3" @@ -282,6 +340,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + [[package]] name = "bitflags" version = "1.3.2" @@ -294,6 +358,12 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +[[package]] +name = "bitstream-io" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06c9989a51171e2e81038ab168b6ae22886fe9ded214430dbb4f41c28cf176da" + [[package]] name = "block-buffer" version = "0.10.4" @@ -303,6 +373,12 @@ dependencies = [ "generic-array", ] +[[package]] +name = "built" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d17f4d6e4dc36d1a02fbedc2753a096848e7c1b0772f7654eab8e2c927dd53" + [[package]] name = "bumpalo" version = "3.15.4" @@ -315,6 +391,12 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" +[[package]] +name = "bytemuck" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" + [[package]] name = "byteorder" version = "1.5.0" @@ -370,6 +452,20 @@ name = "cc" version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cfg-expr" +version = "0.15.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" +dependencies = [ + "smallvec", + "target-lexicon", +] [[package]] name = "cfg-if" @@ -423,6 +519,12 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + [[package]] name = "colorchoice" version = "1.0.0" @@ -535,6 +637,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -736,6 +844,22 @@ dependencies = [ "cc", ] +[[package]] +name = "exr" +version = "1.72.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + [[package]] name = "fancy-regex" version = "0.11.0" @@ -752,6 +876,15 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +[[package]] +name = "fdeflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" +dependencies = [ + "simd-adler32", +] + [[package]] name = "fixedbitset" version = "0.4.2" @@ -780,6 +913,15 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28a80e3145d8ad11ba0995949bbcf48b9df2be62772b3d351ef017dff6ecb853" +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "spin 0.9.8", +] + [[package]] name = "fnv" version = "1.0.7" @@ -941,6 +1083,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gif" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" +dependencies = [ + "color_quant", + "weezl", +] + [[package]] name = "gimli" version = "0.28.1" @@ -976,6 +1128,16 @@ dependencies = [ "tracing", ] +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1161,6 +1323,45 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "image" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "image-webp", + "num-traits", + "png", + "qoi", + "ravif", + "rayon", + "rgb", + "tiff", + "zune-core", + "zune-jpeg", +] + +[[package]] +name = "image-webp" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a84a25dcae3ac487bc24ef280f9e20c79c9b1a3e5e32cbed3041d1c514aa87c" +dependencies = [ + "byteorder", + "thiserror", +] + +[[package]] +name = "imgref" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126" + [[package]] name = "indexmap" version = "1.9.3" @@ -1223,6 +1424,17 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.55", +] + [[package]] name = "ipnet" version = "2.9.0" @@ -1271,6 +1483,21 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jobserver" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +dependencies = [ + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" + [[package]] name = "js-sys" version = "0.3.69" @@ -1316,12 +1543,29 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + [[package]] name = "libc" version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +[[package]] +name = "libfuzzer-sys" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" +dependencies = [ + "arbitrary", + "cc", + "once_cell", +] + [[package]] name = "libm" version = "0.2.8" @@ -1361,6 +1605,15 @@ version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +[[package]] +name = "loop9" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +dependencies = [ + "imgref", +] + [[package]] name = "mach2" version = "0.4.2" @@ -1407,6 +1660,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + [[package]] name = "memchr" version = "2.7.2" @@ -1486,8 +1749,8 @@ dependencies = [ [[package]] name = "minijinja" -version = "1.0.16" -source = "git+https://github.com/mitsuhiko/minijinja.git?branch=main#82d0160b5513844e5429db084f1cbdd3313ed482" +version = "1.0.12" +source = "git+https://github.com/mitsuhiko/minijinja.git?rev=5cd4efb#5cd4efb9e2639247df275fe6e22a5dbe0ce71b28" dependencies = [ "serde", ] @@ -1505,6 +1768,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", + "simd-adler32", ] [[package]] @@ -1583,6 +1847,12 @@ dependencies = [ "tempfile", ] +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + [[package]] name = "ngrok" version = "0.13.1" @@ -1642,6 +1912,12 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + [[package]] name = "ntapi" version = "0.4.1" @@ -1707,6 +1983,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.55", +] + [[package]] name = "num-integer" version = "0.1.46" @@ -2071,6 +2358,19 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +[[package]] +name = "png" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + [[package]] name = "portable-atomic" version = "1.6.0" @@ -2132,6 +2432,25 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "profiling" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" +dependencies = [ + "quote", + "syn 2.0.55", +] + [[package]] name = "prost" version = "0.11.9" @@ -2209,6 +2528,15 @@ dependencies = [ "prost 0.12.3", ] +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + [[package]] name = "quanta" version = "0.11.1" @@ -2225,6 +2553,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + [[package]] name = "quote" version = "1.0.35" @@ -2281,6 +2615,56 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "rav1e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +dependencies = [ + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools 0.12.1", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "once_cell", + "paste", + "profiling", + "rand", + "rand_chacha", + "simd_helpers", + "system-deps", + "thiserror", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc13288f5ab39e6d7c9d501759712e6969fcc9734220846fc9ed26cae2cc4234" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error", + "rav1e", + "rayon", + "rgb", +] + [[package]] name = "raw-cpuid" version = "10.7.0" @@ -2431,6 +2815,15 @@ dependencies = [ "winreg", ] +[[package]] +name = "rgb" +version = "0.8.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" +dependencies = [ + "bytemuck", +] + [[package]] name = "ring" version = "0.16.20" @@ -2695,6 +3088,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -2766,6 +3168,21 @@ dependencies = [ "libc", ] +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + [[package]] name = "sketches-ddsketch" version = "0.2.2" @@ -2817,6 +3234,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spm_precompiled" @@ -2933,6 +3353,19 @@ dependencies = [ "libc", ] +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml", + "version-compare", +] + [[package]] name = "tabled" version = "0.14.0" @@ -2957,6 +3390,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "target-lexicon" +version = "0.12.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" + [[package]] name = "tempfile" version = "3.10.1" @@ -3029,10 +3468,12 @@ dependencies = [ "async-stream", "axum", "axum-tracing-opentelemetry", + "base64 0.22.0", "clap", "futures", "futures-util", "hf-hub", + "image", "init-tracing-opentelemetry", "jsonschema", "metrics", @@ -3092,6 +3533,17 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tiff" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + [[package]] name = "time" version = "0.3.34" @@ -3295,6 +3747,40 @@ dependencies = [ "tracing", ] +[[package]] +name = "toml" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.9.2" @@ -3699,6 +4185,17 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" +[[package]] +name = "v_frame" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + [[package]] name = "valuable" version = "0.1.0" @@ -3727,6 +4224,12 @@ dependencies = [ "time", ] +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + [[package]] name = "version_check" version = "0.9.4" @@ -3853,6 +4356,12 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "weezl" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" + [[package]] name = "which" version = "4.4.2" @@ -4113,6 +4622,15 @@ version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.50.0" @@ -4160,3 +4678,27 @@ dependencies = [ "crossbeam-utils", "flate2", ] + +[[package]] +name = "zune-core" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "zune-jpeg" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448" +dependencies = [ + "zune-core", +] diff --git a/docs/source/supported_models.md b/docs/source/supported_models.md index 87e76df1..fa1f9f61 100644 --- a/docs/source/supported_models.md +++ b/docs/source/supported_models.md @@ -22,6 +22,8 @@ The following models are optimized and can be served with TGI, which uses custom - [Mistral](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2) - [Mixtral](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1) - [Phi](https://huggingface.co/microsoft/phi-2) +- [Idefics](HuggingFaceM4/idefics-9b-instruct) (Multimodal) +- [Llava-next](llava-hf/llava-v1.6-mistral-7b-hf) (Multimodal) If the above list lacks the model you would like to serve, depending on the model's pipeline type, you can try to initialize and serve the model anyways to see how well it performs, but performance isn't guaranteed for non-optimized models: diff --git a/integration-tests/conftest.py b/integration-tests/conftest.py index 022b2298..e8ce0d84 100644 --- a/integration-tests/conftest.py +++ b/integration-tests/conftest.py @@ -277,6 +277,8 @@ def launcher(event_loop): disable_grammar_support: bool = False, dtype: Optional[str] = None, revision: Optional[str] = None, + max_input_length: Optional[int] = None, + max_total_tokens: Optional[int] = None, ): port = random.randint(8000, 10_000) master_port = random.randint(10_000, 20_000) @@ -314,6 +316,12 @@ def launcher(event_loop): args.append(revision) if trust_remote_code: args.append("--trust-remote-code") + if max_input_length: + args.append("--max-input-length") + args.append(str(max_input_length)) + if max_total_tokens: + args.append("--max-total-tokens") + args.append(str(max_total_tokens)) env["LOG_LEVEL"] = "info,text_generation_router=debug" @@ -347,6 +355,8 @@ def launcher(event_loop): disable_grammar_support: bool = False, dtype: Optional[str] = None, revision: Optional[str] = None, + max_input_length: Optional[int] = None, + max_total_tokens: Optional[int] = None, ): port = random.randint(8000, 10_000) @@ -367,6 +377,12 @@ def launcher(event_loop): args.append(revision) if trust_remote_code: args.append("--trust-remote-code") + if max_input_length: + args.append("--max-input-length") + args.append(str(max_input_length)) + if max_total_tokens: + args.append("--max-total-tokens") + args.append(str(max_total_tokens)) client = docker.from_env() diff --git a/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_all_params.json b/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_all_params.json new file mode 100644 index 00000000..e9d3e5ef --- /dev/null +++ b/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_all_params.json @@ -0,0 +1,65 @@ +{ + "details": { + "best_of_sequences": null, + "finish_reason": "stop_sequence", + "generated_tokens": 6, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 3735, + "logprob": -10.5, + "text": "Test" + }, + { + "id": 2159, + "logprob": -12.140625, + "text": "request" + } + ], + "seed": 0, + "tokens": [ + { + "id": 13, + "logprob": -1.0654297, + "special": false, + "text": "\n" + }, + { + "id": 1014, + "logprob": -2.7460938, + "special": false, + "text": "The" + }, + { + "id": 6032, + "logprob": -1.359375, + "special": false, + "text": " purpose" + }, + { + "id": 302, + "logprob": 0.0, + "special": false, + "text": " of" + }, + { + "id": 456, + "logprob": 0.0, + "special": false, + "text": " this" + }, + { + "id": 1369, + "logprob": -0.40063477, + "special": false, + "text": " test" + } + ], + "top_tokens": null + }, + "generated_text": "Test request\nThe purpose of this test" +} diff --git a/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_load.json b/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_load.json new file mode 100644 index 00000000..76b0154c --- /dev/null +++ b/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_load.json @@ -0,0 +1,59178 @@ +[ + { + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 1247, + "logprob": -2.3886719, + "text": "User" + }, + { + "id": 28747, + "logprob": -12.328125, + "text": ":" + }, + { + "id": 32000, + "logprob": -10.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -15.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -9.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -18.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.75, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -19.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 2418, + "logprob": -19.0625, + "text": "Can" + }, + { + "id": 368, + "logprob": -0.19799805, + "text": "you" + }, + { + "id": 1912, + "logprob": -1.5029297, + "text": "tell" + }, + { + "id": 528, + "logprob": -0.30932617, + "text": "me" + }, + { + "id": 264, + "logprob": -2.6328125, + "text": "a" + }, + { + "id": 1215, + "logprob": -9.1015625, + "text": "very" + }, + { + "id": 2485, + "logprob": -0.99853516, + "text": "short" + }, + { + "id": 2838, + "logprob": -0.4609375, + "text": "story" + }, + { + "id": 2818, + "logprob": -3.3144531, + "text": "based" + }, + { + "id": 356, + "logprob": -0.0289917, + "text": "on" + }, + { + "id": 272, + "logprob": -0.9902344, + "text": "the" + }, + { + "id": 3469, + "logprob": -0.28955078, + "text": "image" + }, + { + "id": 28804, + "logprob": -0.43188477, + "text": "?" + } + ], + "seed": null, + "tokens": [ + { + "id": 13, + "logprob": -0.0075035095, + "special": false, + "text": "\n" + }, + { + "id": 13, + "logprob": -0.20129395, + "special": false, + "text": "\n" + }, + { + "id": 16114, + "logprob": -1.2607422, + "special": false, + "text": "Once" + }, + { + "id": 3714, + "logprob": -0.20825195, + "special": false, + "text": " upon" + }, + { + "id": 264, + "logprob": -0.0017719269, + "special": false, + "text": " a" + }, + { + "id": 727, + "logprob": -0.011932373, + "special": false, + "text": " time" + }, + { + "id": 28725, + "logprob": -0.17297363, + "special": false, + "text": "," + }, + { + "id": 736, + "logprob": -0.91015625, + "special": false, + "text": " there" + }, + { + "id": 403, + "logprob": -0.05758667, + "special": false, + "text": " was" + }, + { + "id": 264, + "logprob": -0.00969696, + "special": false, + "text": " a" + } + ], + "top_tokens": null + }, + "generated_text": "\n\nOnce upon a time, there was a" + }, + { + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 1247, + "logprob": -2.3886719, + "text": "User" + }, + { + "id": 28747, + "logprob": -12.328125, + "text": ":" + }, + { + "id": 32000, + "logprob": -10.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.25, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5, + "text": "" + }, + { + "id": 32000, + "logprob": -18.125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -18.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -9.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.25, + "text": "" + }, + { + "id": 32000, + "logprob": -16.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.5, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -19.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 2418, + "logprob": -19.078125, + "text": "Can" + }, + { + "id": 368, + "logprob": -0.19665527, + "text": "you" + }, + { + "id": 1912, + "logprob": -1.5009766, + "text": "tell" + }, + { + "id": 528, + "logprob": -0.31054688, + "text": "me" + }, + { + "id": 264, + "logprob": -2.6269531, + "text": "a" + }, + { + "id": 1215, + "logprob": -9.1015625, + "text": "very" + }, + { + "id": 2485, + "logprob": -0.99365234, + "text": "short" + }, + { + "id": 2838, + "logprob": -0.45996094, + "text": "story" + }, + { + "id": 2818, + "logprob": -3.3183594, + "text": "based" + }, + { + "id": 356, + "logprob": -0.029006958, + "text": "on" + }, + { + "id": 272, + "logprob": -0.9897461, + "text": "the" + }, + { + "id": 3469, + "logprob": -0.29125977, + "text": "image" + }, + { + "id": 28804, + "logprob": -0.43017578, + "text": "?" + } + ], + "seed": null, + "tokens": [ + { + "id": 13, + "logprob": -0.007446289, + "special": false, + "text": "\n" + }, + { + "id": 13, + "logprob": -0.20129395, + "special": false, + "text": "\n" + }, + { + "id": 16114, + "logprob": -1.2587891, + "special": false, + "text": "Once" + }, + { + "id": 3714, + "logprob": -0.20825195, + "special": false, + "text": " upon" + }, + { + "id": 264, + "logprob": -0.0017786026, + "special": false, + "text": " a" + }, + { + "id": 727, + "logprob": -0.011955261, + "special": false, + "text": " time" + }, + { + "id": 28725, + "logprob": -0.17297363, + "special": false, + "text": "," + }, + { + "id": 736, + "logprob": -0.91015625, + "special": false, + "text": " there" + }, + { + "id": 403, + "logprob": -0.05758667, + "special": false, + "text": " was" + }, + { + "id": 264, + "logprob": -0.009544373, + "special": false, + "text": " a" + } + ], + "top_tokens": null + }, + "generated_text": "\n\nOnce upon a time, there was a" + }, + { + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 1247, + "logprob": -2.3886719, + "text": "User" + }, + { + "id": 28747, + "logprob": -12.328125, + "text": ":" + }, + { + "id": 32000, + "logprob": -10.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.25, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5, + "text": "" + }, + { + "id": 32000, + "logprob": -18.125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -18.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -9.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.25, + "text": "" + }, + { + "id": 32000, + "logprob": -16.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.5, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -19.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 2418, + "logprob": -19.078125, + "text": "Can" + }, + { + "id": 368, + "logprob": -0.19665527, + "text": "you" + }, + { + "id": 1912, + "logprob": -1.5009766, + "text": "tell" + }, + { + "id": 528, + "logprob": -0.31054688, + "text": "me" + }, + { + "id": 264, + "logprob": -2.6269531, + "text": "a" + }, + { + "id": 1215, + "logprob": -9.1015625, + "text": "very" + }, + { + "id": 2485, + "logprob": -0.99365234, + "text": "short" + }, + { + "id": 2838, + "logprob": -0.45996094, + "text": "story" + }, + { + "id": 2818, + "logprob": -3.3183594, + "text": "based" + }, + { + "id": 356, + "logprob": -0.029006958, + "text": "on" + }, + { + "id": 272, + "logprob": -0.9897461, + "text": "the" + }, + { + "id": 3469, + "logprob": -0.29125977, + "text": "image" + }, + { + "id": 28804, + "logprob": -0.43017578, + "text": "?" + } + ], + "seed": null, + "tokens": [ + { + "id": 13, + "logprob": -0.007446289, + "special": false, + "text": "\n" + }, + { + "id": 13, + "logprob": -0.20129395, + "special": false, + "text": "\n" + }, + { + "id": 16114, + "logprob": -1.2587891, + "special": false, + "text": "Once" + }, + { + "id": 3714, + "logprob": -0.20825195, + "special": false, + "text": " upon" + }, + { + "id": 264, + "logprob": -0.0017786026, + "special": false, + "text": " a" + }, + { + "id": 727, + "logprob": -0.011955261, + "special": false, + "text": " time" + }, + { + "id": 28725, + "logprob": -0.17297363, + "special": false, + "text": "," + }, + { + "id": 736, + "logprob": -0.91015625, + "special": false, + "text": " there" + }, + { + "id": 403, + "logprob": -0.05758667, + "special": false, + "text": " was" + }, + { + "id": 264, + "logprob": -0.009544373, + "special": false, + "text": " a" + } + ], + "top_tokens": null + }, + "generated_text": "\n\nOnce upon a time, there was a" + }, + { + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 1247, + "logprob": -2.3886719, + "text": "User" + }, + { + "id": 28747, + "logprob": -12.328125, + "text": ":" + }, + { + "id": 32000, + "logprob": -10.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.25, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5, + "text": "" + }, + { + "id": 32000, + "logprob": -18.125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -9.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -18.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -9.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.25, + "text": "" + }, + { + "id": 32000, + "logprob": -16.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -17.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.5, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -19.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -15.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 2418, + "logprob": -19.078125, + "text": "Can" + }, + { + "id": 368, + "logprob": -0.19665527, + "text": "you" + }, + { + "id": 1912, + "logprob": -1.5009766, + "text": "tell" + }, + { + "id": 528, + "logprob": -0.31054688, + "text": "me" + }, + { + "id": 264, + "logprob": -2.6269531, + "text": "a" + }, + { + "id": 1215, + "logprob": -9.1015625, + "text": "very" + }, + { + "id": 2485, + "logprob": -0.99365234, + "text": "short" + }, + { + "id": 2838, + "logprob": -0.45996094, + "text": "story" + }, + { + "id": 2818, + "logprob": -3.3183594, + "text": "based" + }, + { + "id": 356, + "logprob": -0.029006958, + "text": "on" + }, + { + "id": 272, + "logprob": -0.9897461, + "text": "the" + }, + { + "id": 3469, + "logprob": -0.29125977, + "text": "image" + }, + { + "id": 28804, + "logprob": -0.43017578, + "text": "?" + } + ], + "seed": null, + "tokens": [ + { + "id": 13, + "logprob": -0.007446289, + "special": false, + "text": "\n" + }, + { + "id": 13, + "logprob": -0.20129395, + "special": false, + "text": "\n" + }, + { + "id": 16114, + "logprob": -1.2587891, + "special": false, + "text": "Once" + }, + { + "id": 3714, + "logprob": -0.20825195, + "special": false, + "text": " upon" + }, + { + "id": 264, + "logprob": -0.0017786026, + "special": false, + "text": " a" + }, + { + "id": 727, + "logprob": -0.011955261, + "special": false, + "text": " time" + }, + { + "id": 28725, + "logprob": -0.17297363, + "special": false, + "text": "," + }, + { + "id": 736, + "logprob": -0.91015625, + "special": false, + "text": " there" + }, + { + "id": 403, + "logprob": -0.05758667, + "special": false, + "text": " was" + }, + { + "id": 264, + "logprob": -0.009544373, + "special": false, + "text": " a" + } + ], + "top_tokens": null + }, + "generated_text": "\n\nOnce upon a time, there was a" + } +] diff --git a/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_simple.json b/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_simple.json new file mode 100644 index 00000000..f0f2ee9e --- /dev/null +++ b/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_simple.json @@ -0,0 +1,73 @@ +{ + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [], + "seed": null, + "tokens": [ + { + "id": 13, + "logprob": -0.00756073, + "special": false, + "text": "\n" + }, + { + "id": 13, + "logprob": -0.20117188, + "special": false, + "text": "\n" + }, + { + "id": 16114, + "logprob": -1.2597656, + "special": false, + "text": "Once" + }, + { + "id": 3714, + "logprob": -0.20825195, + "special": false, + "text": " upon" + }, + { + "id": 264, + "logprob": -0.00178051, + "special": false, + "text": " a" + }, + { + "id": 727, + "logprob": -0.011955261, + "special": false, + "text": " time" + }, + { + "id": 28725, + "logprob": -0.17541504, + "special": false, + "text": "," + }, + { + "id": 736, + "logprob": -0.91308594, + "special": false, + "text": " there" + }, + { + "id": 403, + "logprob": -0.058410645, + "special": false, + "text": " was" + }, + { + "id": 264, + "logprob": -0.009689331, + "special": false, + "text": " a" + } + ], + "top_tokens": null + }, + "generated_text": "\n\nOnce upon a time, there was a" +} diff --git a/integration-tests/models/__snapshots__/test_mt0_base/test_mt0_base_all_params.json b/integration-tests/models/__snapshots__/test_mt0_base/test_mt0_base_all_params.json index 024823d0..5cacf3e9 100644 --- a/integration-tests/models/__snapshots__/test_mt0_base/test_mt0_base_all_params.json +++ b/integration-tests/models/__snapshots__/test_mt0_base/test_mt0_base_all_params.json @@ -1,8 +1,8 @@ { "details": { "best_of_sequences": null, - "finish_reason": "eos_token", - "generated_tokens": 9, + "finish_reason": "length", + "generated_tokens": 10, "prefill": [ { "id": 0, @@ -14,7 +14,7 @@ "tokens": [ { "id": 16017, - "logprob": -0.30908203, + "logprob": 0.0, "special": false, "text": " blue" }, @@ -26,39 +26,45 @@ }, { "id": 259, - "logprob": -0.28271484, + "logprob": -0.4716797, "special": false, "text": " " }, { - "id": 15484, - "logprob": -1.7929688, + "id": 261, + "logprob": -0.044677734, "special": false, - "text": "appear" + "text": "," }, { - "id": 345, - "logprob": -0.8935547, + "id": 35622, + "logprob": -0.79589844, "special": false, - "text": "ed" + "text": " cloud" }, { - "id": 281, + "id": 263, + "logprob": -1.2958984, + "special": false, + "text": "s" + }, + { + "id": 305, "logprob": 0.0, "special": false, - "text": " in" + "text": " and" }, { - "id": 287, + "id": 35622, + "logprob": -1.1630859, + "special": false, + "text": " cloud" + }, + { + "id": 263, "logprob": 0.0, "special": false, - "text": " the" - }, - { - "id": 20495, - "logprob": -0.32299805, - "special": false, - "text": " sky" + "text": "s" }, { "id": 1, @@ -66,7 +72,8 @@ "special": true, "text": "" } - ] + ], + "top_tokens": null }, - "generated_text": "Why is the sky blue?blue sky appeared in the sky" + "generated_text": "Why is the sky blue?blue sky, clouds and clouds" } diff --git a/integration-tests/models/test_idefics.py b/integration-tests/models/test_idefics.py index 882971f2..aeeaffa1 100644 --- a/integration-tests/models/test_idefics.py +++ b/integration-tests/models/test_idefics.py @@ -33,6 +33,9 @@ async def test_idefics(idefics, response_snapshot): ) assert response.details.generated_tokens == 10 + assert ( + response.generated_text == " \nAssistant: A rooster stands" + ), f"{repr(response.generated_text)}" assert response == response_snapshot @@ -48,6 +51,9 @@ async def test_idefics_load(idefics, generate_load, response_snapshot): generated_texts = [r.generated_text for r in responses] + assert ( + generated_texts[0] == " \nAssistant: A rooster stands" + ), f"{response.generated_text}" assert len(generated_texts) == 4 assert generated_texts, all( [text == generated_texts[0] for text in generated_texts] diff --git a/integration-tests/models/test_llava_next.py b/integration-tests/models/test_llava_next.py new file mode 100644 index 00000000..f5b290b1 --- /dev/null +++ b/integration-tests/models/test_llava_next.py @@ -0,0 +1,84 @@ +import pytest +import base64 + + +# TODO fix the server parsser to count inline image tokens correctly +def get_chicken(): + with open("integration-tests/images/chicken_on_money.png", "rb") as image_file: + encoded_string = base64.b64encode(image_file.read()) + return f"data:image/png;base64,{encoded_string.decode('utf-8')}" + + +@pytest.fixture(scope="module") +def flash_llava_next_handle(launcher): + with launcher( + "llava-hf/llava-v1.6-mistral-7b-hf", + num_shard=4, + max_input_length=4000, + max_total_tokens=4096, + ) as handle: + yield handle + + +@pytest.fixture(scope="module") +async def flash_llava_next(flash_llava_next_handle): + await flash_llava_next_handle.health(300) + return flash_llava_next_handle.client + + +@pytest.mark.asyncio +@pytest.mark.private +async def test_flash_llava_next_simple(flash_llava_next, response_snapshot): + chicken = get_chicken() + response = await flash_llava_next.generate( + f"User:![]({chicken})Can you tell me a very short story based on the image?", + max_new_tokens=10, + ) + assert ( + response.generated_text == "\n\nOnce upon a time, there was a" + ), f"{repr(response.generated_text)}" + assert response.details.generated_tokens == 10 + assert response == response_snapshot + + +@pytest.mark.asyncio +@pytest.mark.private +async def test_flash_llava_next_all_params(flash_llava_next, response_snapshot): + response = await flash_llava_next.generate( + "Test request", + max_new_tokens=10, + repetition_penalty=1.2, + return_full_text=True, + stop_sequences=["test"], + temperature=0.5, + top_p=0.9, + top_k=10, + truncate=5, + typical_p=0.9, + watermark=True, + decoder_input_details=True, + seed=0, + ) + + assert response.details.generated_tokens == 6 + assert response == response_snapshot + + +@pytest.mark.asyncio +@pytest.mark.private +async def test_flash_llava_next_load( + flash_llava_next, generate_load, response_snapshot +): + chicken = get_chicken() + responses = await generate_load( + flash_llava_next, + f"User:![]({chicken})Can you tell me a very short story based on the image?", + max_new_tokens=10, + n=4, + ) + generated_texts = [r.generated_text for r in responses] + assert generated_texts[0] == "\n\nOnce upon a time, there was a" + assert len(generated_texts) == 4 + assert all([r.generated_text == generated_texts[0] for r in responses]) + + assert responses == response_snapshot diff --git a/integration-tests/models/test_mt0_base.py b/integration-tests/models/test_mt0_base.py index 12f23e4c..c877056a 100644 --- a/integration-tests/models/test_mt0_base.py +++ b/integration-tests/models/test_mt0_base.py @@ -45,7 +45,7 @@ async def test_mt0_base_all_params(mt0_base, response_snapshot): seed=0, ) - assert response.details.generated_tokens == 9 + assert response.details.generated_tokens == 10 assert response == response_snapshot diff --git a/router/Cargo.toml b/router/Cargo.toml index 0c57a886..582bbdfb 100644 --- a/router/Cargo.toml +++ b/router/Cargo.toml @@ -44,10 +44,12 @@ utoipa = { version = "3.5.0", features = ["axum_extras"] } utoipa-swagger-ui = { version = "3.1.5", features = ["axum"] } ngrok = { version = "0.13.1", features = ["axum"], optional = true } init-tracing-opentelemetry = { version = "0.14.1", features = ["opentelemetry-otlp"] } -minijinja = { git = "https://github.com/mitsuhiko/minijinja.git", branch = "main", commit = "5cd4efb" } +minijinja = { git = "https://github.com/mitsuhiko/minijinja.git", rev = "5cd4efb" } futures-util = "0.3.30" regex = "1.10.3" once_cell = "1.19.0" +image = "0.25.1" +base64 = "0.22.0" [build-dependencies] vergen = { version = "8.2.5", features = ["build", "git", "gitcl"] } diff --git a/router/client/src/client.rs b/router/client/src/client.rs index f8658318..ae926139 100644 --- a/router/client/src/client.rs +++ b/router/client/src/client.rs @@ -112,10 +112,15 @@ impl Client { // Create requests while n_tokens < max_prefill_tokens { let truncate = min(max_input_length, max_prefill_tokens - n_tokens); + + let mut inputs = String::new(); + inputs.push_str("![](data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV/TSotUROxQxCFDdbKLijjWKhShQqgVWnUwufQLmrQkKS6OgmvBwY/FqoOLs64OroIg+AHi7OCk6CIl/i8ptIjx4Lgf7+497t4BQqvKNDOQADTdMjKppJjLr4rBVwQQwhAERGVm1uckKQ3P8XUPH1/v4jzL+9yfY0AtmAzwicQJVjcs4g3imU2rznmfOMLKskp8Tjxh0AWJH7muuPzGueSwwDMjRjYzTxwhFks9rPQwKxsa8TRxTNV0yhdyLquctzhr1Qbr3JO/MFzQV5a5TnMUKSxiCRJEKGiggiosxGnVSTGRof2kh3/E8UvkUshVASPHAmrQIDt+8D/43a1ZnJp0k8JJoO/Ftj/GgOAu0G7a9vexbbdPAP8zcKV3/bUWMPtJerOrxY6AwW3g4rqrKXvA5Q4QfarLhuxIfppCsQi8n9E35YHhW6B/ze2ts4/TByBLXaVvgINDYLxE2ese7w719vbvmU5/PycecohsjayNAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH6AQIEQMnlTSSjwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAASSURBVDjLY2AYBaNgFIyCoQsABMQAAeRw1DoAAAAASUVORK5CYII="); + inputs.push_str(&"_test ".to_string().repeat(max_input_length as usize)); + requests.push(Request { id: 0, // We truncate the input on the server side to be sure that it has the correct size - inputs: "_test ".to_string().repeat(max_input_length as usize), + inputs, truncate, // Set sampling parameters to also take these ops into account in the max memory parameters: Some(NextTokenChooserParameters { diff --git a/router/src/config.rs b/router/src/config.rs new file mode 100644 index 00000000..9b5a2404 --- /dev/null +++ b/router/src/config.rs @@ -0,0 +1,158 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(tag = "model_type")] +#[serde(rename_all = "snake_case")] +pub struct LlavaNext { + text_config: TextConfig, + vision_config: VisionConfig, + image_grid_pinpoints: Vec<(usize, usize)>, +} + +fn get_anyres_image_grid_shape( + height: usize, + width: usize, + grid_pinpoints: &[(usize, usize)], + patch_size: usize, +) -> (usize, usize) { + let (height, width) = select_best_resolution(height, width, grid_pinpoints); + (height / patch_size, width / patch_size) +} + +/// Selects the best resolution from a list of possible resolutions based on the original size. +/// This is done by calculating the effective and wasted resolution for each possible resolution. +/// The best fit resolution is the one that maximizes the effective resolution and minimizes the wasted resolution. +fn select_best_resolution( + original_height: usize, + original_width: usize, + possible_resolutions: &[(usize, usize)], +) -> (usize, usize) { + let mut best_fit = None; + let mut max_effective_resolution = 0; + let mut min_wasted_resolution = f32::NEG_INFINITY; + + for (height, width) in possible_resolutions { + let wscale = *width as f32 / original_width as f32; + let hscale = *height as f32 / original_height as f32; + // f32 partial ord. + let scale = if wscale > hscale { hscale } else { wscale }; + let downscaled_width = (*width as f32 * scale) as usize; + let downscaled_height = (*height as f32 * scale) as usize; + let effective_resolution = std::cmp::min( + downscaled_width * downscaled_height, + original_width * original_height, + ); + let wasted_resolution = (width * height) - effective_resolution; + + if effective_resolution > max_effective_resolution + || (effective_resolution == max_effective_resolution + && (wasted_resolution as f32) < min_wasted_resolution) + { + max_effective_resolution = effective_resolution; + min_wasted_resolution = wasted_resolution as f32; + best_fit = Some((*height, *width)); + } + } + + best_fit.unwrap_or((original_height, original_width)) +} + +impl LlavaNext { + pub fn get_number_of_features(&self, height: usize, width: usize) -> usize { + let image_size = self.vision_config.image_size; + let patch_size = self.vision_config.patch_size; + assert!(image_size % patch_size == 0); + let npatches = image_size / patch_size; + let (num_patch_height, num_patch_width) = + get_anyres_image_grid_shape(height, width, &self.image_grid_pinpoints, image_size); + // Ceil + let height_of_patch = (height * npatches + width - 1) / width; + let unpadded_features = npatches * height_of_patch * num_patch_height * num_patch_width; + // They are only added after width + let newline_features = height_of_patch * num_patch_width; + // The base patch covers the entire image + let base_features = npatches.pow(2); + unpadded_features + newline_features + base_features + } +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(tag = "model_type")] +#[serde(rename_all = "snake_case")] +pub struct ClipVisionModel { + image_size: usize, + patch_size: usize, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(tag = "model_type")] +#[serde(rename_all = "snake_case")] +pub enum Config { + LlavaNext(LlavaNext), + ClipVisionModel(ClipVisionModel), + Mistral, + Idefics, + Ssm, + GptBigcode, + Santacoder, + Bloom, + Mpt, + GptNeox, + Phi, + #[serde(rename = "phi-msft")] + PhiMsft, + Llama, + Baichuan, + Gemma, + Cohere, + Drbx, + Falcon, + Mixtral, + Starcoder2, + Qwen2, + Opt, + T5, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub struct TextConfig {} + +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub struct VisionConfig { + image_size: usize, + patch_size: usize, +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn test_llava_next_features() { + let config = LlavaNext { + text_config: TextConfig {}, + vision_config: VisionConfig { + image_size: 336, + patch_size: 14, + }, + image_grid_pinpoints: vec![ + (336, 672), + (672, 336), + (672, 672), + (1008, 336), + (336, 1008), + ], + }; + + let slots = config.get_number_of_features(640, 640); + assert_eq!(slots, 2928); + let slots = config.get_number_of_features(480, 640); + assert_eq!(slots, 2340); + let slots = config.get_number_of_features(899, 1024); + assert_eq!(slots, 2732); + let slots = config.get_number_of_features(1024, 899); + assert_eq!(slots, 3320); + } +} diff --git a/router/src/lib.rs b/router/src/lib.rs index 5415a956..c787470b 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -1,3 +1,4 @@ +pub mod config; mod health; /// Text Generation Inference Webserver mod infer; diff --git a/router/src/main.rs b/router/src/main.rs index 6a736b12..aace2ff9 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -13,6 +13,7 @@ use std::io::BufReader; use std::net::{IpAddr, Ipv4Addr, SocketAddr}; use std::path::Path; use text_generation_client::{ClientError, ShardedClient}; +use text_generation_router::config::Config; use text_generation_router::{server, HubModelInfo, HubTokenizerConfig}; use thiserror::Error; use tokenizers::Tokenizer; @@ -191,15 +192,19 @@ async fn main() -> Result<(), RouterError> { }; // Load tokenizer and model info - let (tokenizer, model_info) = if local_model { + let (tokenizer, model_info, config) = if local_model { let tokenizer = Tokenizer::from_file(local_path.join("tokenizer.json")).ok(); let model_info = HubModelInfo { model_id: tokenizer_name.to_string(), sha: None, pipeline_tag: None, }; + let config: Option = std::fs::read_to_string(local_path.join("config.json")) + .ok() + .as_ref() + .and_then(|c| serde_json::from_str(c).ok()); - (tokenizer, model_info) + (tokenizer, model_info, config) } else if let Some(api) = api.clone() { let api_repo = api.repo(Repo::with_revision( tokenizer_name.to_string(), @@ -212,6 +217,19 @@ async fn main() -> Result<(), RouterError> { Err(_) => get_base_tokenizer(&api, &api_repo).await, }; + let config: Option = api_repo.get("config.json").await.ok().and_then(|filename| { + std::fs::read_to_string(filename) + .ok() + .as_ref() + .and_then(|c| { + let config: Result = serde_json::from_str(c); + if let Err(err) = &config { + tracing::warn!("Could not parse config {err:?}"); + } + config.ok() + }) + }); + let model_info = get_model_info(&api_repo).await.unwrap_or_else(|| { tracing::warn!("Could not retrieve model info from the Hugging Face hub."); HubModelInfo { @@ -221,7 +239,7 @@ async fn main() -> Result<(), RouterError> { } }); - (tokenizer, model_info) + (tokenizer, model_info, config) } else { // No API and no local model return Err(RouterError::ArgumentValidation( @@ -229,6 +247,8 @@ async fn main() -> Result<(), RouterError> { )); }; + tracing::info!("Using config {config:?}"); + // Load tokenizer config if found locally, or check if we can get it from the API if needed let tokenizer_config = if let Some(path) = tokenizer_config_path { tracing::info!("Using local tokenizer config from user specified path"); @@ -363,6 +383,7 @@ async fn main() -> Result<(), RouterError> { max_batch_size, sharded_client, tokenizer, + config, validation_workers, addr, cors_allow_origin, diff --git a/router/src/server.rs b/router/src/server.rs index eaed3f1c..b8f93514 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -1,3 +1,4 @@ +use crate::config::Config; /// HTTP Server logic use crate::health::Health; use crate::infer::{InferError, InferResponse, InferStreamResponse}; @@ -164,7 +165,8 @@ async fn generate( let start_time = Instant::now(); metrics::increment_counter!("tgi_request_count"); - tracing::debug!("Input: {}", req.inputs); + // Do not long ultra long inputs, like image payloads. + tracing::debug!("Input: {}", &req.inputs[..1000.min(req.inputs.len())]); let compute_characters = req.inputs.chars().count(); let mut add_prompt = None; @@ -1154,6 +1156,7 @@ pub async fn run( max_batch_size: Option, client: ShardedClient, tokenizer: Option, + config: Option, validation_workers: usize, addr: SocketAddr, allow_origin: Option, @@ -1236,6 +1239,7 @@ pub async fn run( let validation = Validation::new( validation_workers, tokenizer, + config, max_best_of, max_stop_sequences, max_top_n_tokens, diff --git a/router/src/validation.rs b/router/src/validation.rs index 2aa9775a..24bcf191 100644 --- a/router/src/validation.rs +++ b/router/src/validation.rs @@ -1,15 +1,19 @@ +use crate::config::Config; /// Payload validation logic use crate::validation::ValidationError::{BestOfSampling, BestOfSeed, EmptyInput}; use crate::{GenerateParameters, GenerateRequest, GrammarType}; use jsonschema::{Draft, JSONSchema}; use rand::{thread_rng, Rng}; use serde_json::Value; +use std::io::Cursor; use text_generation_client::{ GrammarType as ProtoGrammarType, NextTokenChooserParameters, StoppingCriteriaParameters, }; use thiserror::Error; use tokenizers::tokenizer::Tokenizer; -use tokenizers::TruncationDirection; +// use tokenizers::TruncationDirection; +use base64::{engine::general_purpose::STANDARD, Engine}; +use image::{io::Reader as ImageReader, ImageFormat}; use tokio::sync::mpsc; use tokio::sync::oneshot; use tracing::{instrument, Span}; @@ -34,6 +38,7 @@ impl Validation { pub(crate) fn new( workers: usize, tokenizer: Option, + config: Option, max_best_of: usize, max_stop_sequences: usize, max_top_n_tokens: u32, @@ -50,12 +55,13 @@ impl Validation { // Create workers for _ in 0..workers { let tokenizer_clone = tokenizer.clone(); + let config_clone = config.clone(); let (tokenizer_sender, tokenizer_receiver) = mpsc::unbounded_channel(); senders.push(tokenizer_sender); // Spawn worker tokio::task::spawn_blocking(move || { - tokenizer_worker(tokenizer_clone, tokenizer_receiver) + tokenizer_worker(tokenizer_clone, config_clone, tokenizer_receiver) }); } @@ -408,48 +414,137 @@ async fn round_robin_task( } /// Start tokenization workers -fn tokenizer_worker(tokenizer: Tokenizer, mut receiver: mpsc::UnboundedReceiver) { +fn tokenizer_worker( + tokenizer: Tokenizer, + config: Option, + mut receiver: mpsc::UnboundedReceiver, +) { // Loop over requests - let is_multimodal = { - let vocab = tokenizer.get_vocab(true); - vocab.contains_key("") - }; while let Some(((inputs, truncate), response_tx, parent_span)) = receiver.blocking_recv() { parent_span.in_scope(|| { response_tx - .send(prepare_input(inputs, truncate, &tokenizer, is_multimodal)) + .send(prepare_input(inputs, truncate, &tokenizer, &config)) .unwrap_or(()) }) } } +fn format_from_mimetype(mimetype: &str) -> Option { + match mimetype { + "image/png" => Some(ImageFormat::Png), + "image/jpeg" => Some(ImageFormat::Jpeg), + "image/jpg" => Some(ImageFormat::Jpeg), + "image/gif" => Some(ImageFormat::Gif), + "image/webp" => Some(ImageFormat::WebP), + "image/tiff" => Some(ImageFormat::Tiff), + // "image/pnm"=>Some(ImageFormat::Pnm), + // "image/tga"=>Some(ImageFormat::Tga), + // "image/dds"=>Some(ImageFormat::Dds), + // "image/bmp"=>Some(ImageFormat::Bmp), + // "image/ico"=>Some(ImageFormat::Ico), + // "image/x-exr"=>Some(ImageFormat::OpenExr), + _ => None, + } +} +fn format_to_mimetype(format: ImageFormat) -> String { + match format { + ImageFormat::Png => "image/png", + ImageFormat::Jpeg => "image/jpeg", + ImageFormat::Gif => "image/gif", + ImageFormat::WebP => "image/webp", + ImageFormat::Tiff => "image/tiff", + _ => "application/octet-stream", + } + .to_string() +} + +fn fetch_image(input: &str) -> Result<(String, usize, usize), ValidationError> { + if input.starts_with("![](http://") || input.starts_with("![](https://") { + let url = &input["![](".len()..input.len() - 1]; + let data = reqwest::blocking::get(url)?.bytes()?; + + let format = image::guess_format(&data)?; + // TODO Remove this clone + let img = ImageReader::with_format(Cursor::new(data.clone()), format).decode()?; + let height: usize = img.height().try_into()?; + let width: usize = img.width().try_into()?; + let mimetype = format_to_mimetype(format); + let encoded = STANDARD.encode(data); + let data_uri = format!("![](data:{mimetype};base64,{encoded})"); + Ok((data_uri, height, width)) + } else if input.starts_with("![](data:") { + // Remove ![](....) + let content = &input["![](data:".len()..input.len() - 1]; + let tokens: Vec<_> = content.split(';').collect(); + if tokens.len() != 2 { + return Err(ValidationError::InvalidImageContent(content.to_string())); + } + let mimetype = tokens[0]; + let content = tokens[1]; + + if !content.starts_with("base64,") { + return Err(ValidationError::InvalidImageContent(content.to_string())); + } + + let data = STANDARD.decode(content["base64,".len()..].as_bytes())?; + let img = if let Some(format) = format_from_mimetype(mimetype) { + ImageReader::with_format(Cursor::new(data), format).decode()? + } else { + ImageReader::new(Cursor::new(data)) + .with_guessed_format() + .map_err(|_io_error| ValidationError::InvalidImageContent(content.to_string()))? + .decode()? + }; + + let height: usize = img.height().try_into()?; + let width: usize = img.width().try_into()?; + Ok((input.to_string(), height, width)) + } else { + Err(ValidationError::InvalidImageContent(input.to_string())) + } +} + /// Get input length and optionally truncate it fn prepare_input( mut inputs: String, - truncate: Option, + _truncate: Option, tokenizer: &Tokenizer, - is_multimodal: bool, + config: &Option, ) -> Result<(tokenizers::Encoding, String), ValidationError> { - let simplified_query = if is_multimodal { - static RE: Lazy = Lazy::new(|| Regex::new(r"!\[\]\([^\)]*\)").unwrap()); - RE.replace_all(&inputs, "").into() - } else { - inputs.clone() - }; - // Get the number of tokens in the input - let mut encoding = tokenizer - .encode(simplified_query, true) - .map_err(|err| ValidationError::Tokenizer(err.to_string()))?; - - // Optionally truncate - if let Some(truncate) = truncate { - if truncate < encoding.len() && !is_multimodal { - encoding.truncate(truncate, 0, TruncationDirection::Left); - inputs = tokenizer - .decode(encoding.get_ids(), false) - .map_err(|err| ValidationError::Tokenizer(err.to_string()))?; + static RE: Lazy = Lazy::new(|| Regex::new(r"!\[\]\([^\)]*\)").unwrap()); + let tokenizer_query = match config { + Some(Config::LlavaNext(config)) => { + let mut modified_inputs = String::with_capacity(inputs.len()); + let mut tokenizer_query = String::with_capacity(inputs.len()); + let mut start = 0; + for chunk in RE.find_iter(&inputs) { + let chunk_start = chunk.start(); + let chunk_end = chunk.end(); + if chunk_start != start { + modified_inputs.push_str(&inputs[start..chunk_start]); + tokenizer_query.push_str(&inputs[start..chunk_start]); + } + let (image_uri, height, width) = fetch_image(&inputs[chunk_start..chunk_end])?; + let slots = config.get_number_of_features(height, width); + tokenizer_query.push_str(&"".repeat(slots)); + modified_inputs.push_str(&image_uri); + start = chunk_end; + } + if start != inputs.len() - 1 { + modified_inputs.push_str(&inputs[start..]); + tokenizer_query.push_str(&inputs[start..]); + } + inputs = modified_inputs; + tokenizer_query } - } + Some(Config::Idefics) => RE.replace_all(&inputs, "").into(), + _ => inputs.clone(), + }; + + // Get the number of tokens in the input + let encoding = tokenizer + .encode(tokenizer_query, true) + .map_err(|err| ValidationError::Tokenizer(err.to_string()))?; Ok((encoding, inputs)) } @@ -523,6 +618,16 @@ pub enum ValidationError { Grammar, #[error("grammar is not valid: {0}")] InvalidGrammar(String), + #[error("base64 encoding is invalid: {0}")] + InvalidBase64(#[from] base64::DecodeError), + #[error("invalid image: {0}")] + InvalidImage(#[from] image::ImageError), + #[error("invalid integer: {0}")] + InvalidInt(#[from] core::num::TryFromIntError), + #[error("invalid image content: {0}")] + InvalidImageContent(String), + #[error("Could not fetch image: {0}")] + FailedFetchImage(#[from] reqwest::Error), } #[cfg(test)] @@ -541,9 +646,11 @@ mod tests { let max_total_tokens = 6; let workers = 1; let disable_grammar_support = true; + let config = None; let validation = Validation::new( workers, tokenizer, + config, max_best_of, max_stop_sequence, max_top_n_tokens, @@ -572,9 +679,11 @@ mod tests { let max_total_tokens = 6; let disable_grammar_support = true; let workers = 1; + let config = None; let validation = Validation::new( workers, tokenizer, + config, max_best_of, max_stop_sequence, max_top_n_tokens, @@ -603,9 +712,11 @@ mod tests { let max_total_tokens = 6; let workers = 1; let disable_grammar_support = true; + let config = None; let validation = Validation::new( workers, tokenizer, + config, max_best_of, max_stop_sequence, max_top_n_tokens, @@ -639,9 +750,11 @@ mod tests { let max_total_tokens = 106; let workers = 1; let disable_grammar_support = true; + let config = None; let validation = Validation::new( workers, tokenizer, + config, max_best_of, max_stop_sequence, max_top_n_tokens, @@ -704,9 +817,11 @@ mod tests { let max_total_tokens = 106; let workers = 1; let disable_grammar_support = true; + let config = None; let validation = Validation::new( workers, tokenizer, + config, max_best_of, max_stop_sequences, max_top_n_tokens, diff --git a/server/text_generation_server/models/__init__.py b/server/text_generation_server/models/__init__.py index ec167303..00c8b9a8 100644 --- a/server/text_generation_server/models/__init__.py +++ b/server/text_generation_server/models/__init__.py @@ -67,6 +67,7 @@ try: FlashSantacoderSharded, ) from text_generation_server.models.idefics import IDEFICSSharded + from text_generation_server.models.llava_next import LlavaNext from text_generation_server.models.flash_mistral import FlashMistral from text_generation_server.models.flash_mixtral import FlashMixtral from text_generation_server.models.flash_phi import FlashPhi @@ -579,6 +580,19 @@ def get_model( else: raise NotImplementedError(FLASH_ATT_ERROR_MESSAGE.format("Idefics")) + if model_type == "llava_next": + if FLASH_ATTENTION: + return LlavaNext( + model_id, + revision, + quantize=quantize, + use_medusa=use_medusa, + dtype=dtype, + trust_remote_code=trust_remote_code, + ) + else: + raise NotImplementedError(FLASH_ATT_ERROR_MESSAGE.format("LlavaNext")) + if sharded: raise NotImplementedError("sharded is not supported for AutoModel") if quantize == "gptq": diff --git a/server/text_generation_server/models/custom_modeling/clip.py b/server/text_generation_server/models/custom_modeling/clip.py new file mode 100644 index 00000000..c4917733 --- /dev/null +++ b/server/text_generation_server/models/custom_modeling/clip.py @@ -0,0 +1,827 @@ +from typing import Optional, Tuple, Union + +import torch +from torch import nn + +from transformers.activations import ACT2FN +from transformers.modeling_attn_mask_utils import ( + _create_4d_causal_attention_mask, + _prepare_4d_attention_mask, +) +from transformers.modeling_outputs import ( + BaseModelOutput, + BaseModelOutputWithPooling, + ImageClassifierOutput, +) +from transformers import CLIPConfig, CLIPTextConfig, CLIPVisionConfig + +from text_generation_server.utils.layers import ( + TensorParallelEmbedding, + TensorParallelColumnLinear, + TensorParallelRowLinear, +) + + +class CLIPVisionEmbeddings(nn.Module): + def __init__(self, prefix, config: CLIPVisionConfig, weights): + super().__init__() + self.config = config + self.embed_dim = config.hidden_size + self.image_size = config.image_size + self.patch_size = config.patch_size + + # TODO Should we TP this ? + self.class_embedding = weights.get_tensor(f"{prefix}.class_embedding") + + self.patch_embedding = nn.Conv2d( + in_channels=config.num_channels, + out_channels=self.embed_dim, + kernel_size=self.patch_size, + stride=self.patch_size, + bias=False, + ) + self.patch_embedding.weight = nn.Parameter( + weights.get_tensor(f"{prefix}.patch_embedding.weight"), requires_grad=False + ) + + self.num_patches = (self.image_size // self.patch_size) ** 2 + self.num_positions = self.num_patches + 1 + self.position_embedding = TensorParallelEmbedding( + prefix=f"{prefix}.position_embedding", weights=weights + ) + self.register_buffer( + "position_ids", + torch.arange(self.num_positions, device=weights.device).expand((1, -1)), + persistent=False, + ) + + def forward(self, pixel_values: torch.FloatTensor) -> torch.Tensor: + batch_size = pixel_values.shape[0] + target_dtype = self.patch_embedding.weight.dtype + patch_embeds = self.patch_embedding( + pixel_values.to(dtype=target_dtype) + ) # shape = [*, width, grid, grid] + patch_embeds = patch_embeds.flatten(2).transpose(1, 2) + + class_embeds = self.class_embedding.expand(batch_size, 1, -1) + embeddings = torch.cat([class_embeds, patch_embeds], dim=1) + embeddings = embeddings + self.position_embedding(self.position_ids) + return embeddings + + +class CLIPTextEmbeddings(nn.Module): + def __init__(self, config: CLIPTextConfig): + super().__init__() + embed_dim = config.hidden_size + + self.token_embedding = nn.Embedding(config.vocab_size, embed_dim) + self.position_embedding = nn.Embedding( + config.max_position_embeddings, embed_dim + ) + + # position_ids (1, len position emb) is contiguous in memory and exported when serialized + self.register_buffer( + "position_ids", + torch.arange(config.max_position_embeddings).expand((1, -1)), + persistent=False, + ) + + def forward( + self, + input_ids: Optional[torch.LongTensor] = None, + position_ids: Optional[torch.LongTensor] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + ) -> torch.Tensor: + seq_length = ( + input_ids.shape[-1] if input_ids is not None else inputs_embeds.shape[-2] + ) + + if position_ids is None: + position_ids = self.position_ids[:, :seq_length] + + if inputs_embeds is None: + inputs_embeds = self.token_embedding(input_ids) + + position_embeddings = self.position_embedding(position_ids) + embeddings = inputs_embeds + position_embeddings + + return embeddings + + +class CLIPAttention(nn.Module): + """Multi-headed attention from 'Attention Is All You Need' paper""" + + def __init__(self, prefix, config, weights): + super().__init__() + self.config = config + self.embed_dim = config.hidden_size + self.num_heads = config.num_attention_heads + self.head_size = self.embed_dim // self.num_heads + if self.head_size * self.num_heads != self.embed_dim: + raise ValueError( + f"embed_dim must be divisible by num_heads (got `embed_dim`: {self.embed_dim} and `num_heads`:" + f" {self.num_heads})." + ) + self.num_heads = self.num_heads // weights.process_group.size() + self.embed_dim = self.embed_dim // weights.process_group.size() + self.scale = self.head_size**-0.5 + self.dropout = config.attention_dropout + + self.qkv = TensorParallelColumnLinear.load_multi( + config, + prefixes=[f"{prefix}.q_proj", f"{prefix}.k_proj", f"{prefix}.v_proj"], + dim=0, + weights=weights, + bias=True, + ) + self.out_proj = TensorParallelRowLinear.load( + config, + prefix=f"{prefix}.out_proj", + weights=weights, + bias=True, + ) + + def _shape(self, tensor: torch.Tensor, seq_len: int, bsz: int): + return ( + tensor.view(bsz, seq_len, self.num_heads, self.head_size) + .transpose(1, 2) + .contiguous() + ) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + causal_attention_mask: Optional[torch.Tensor] = None, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]: + """Input shape: Batch x Time x Channel""" + + bsz, tgt_len, _ = hidden_states.size() + + # get query proj + + qkv = self.qkv(hidden_states) + query_states, key_states, value_states = qkv.split( + [ + self.head_size * self.num_heads, + ] + * 3, + dim=2, + ) + query_states = query_states * self.scale + key_states = self._shape(key_states, -1, bsz) + value_states = self._shape(value_states, -1, bsz) + + proj_shape = (bsz * self.num_heads, -1, self.head_size) + query_states = self._shape(query_states, tgt_len, bsz).view(*proj_shape) + key_states = key_states.view(*proj_shape) + value_states = value_states.view(*proj_shape) + + src_len = key_states.size(1) + attn_weights = torch.bmm(query_states, key_states.transpose(1, 2)) + + if attn_weights.size() != (bsz * self.num_heads, tgt_len, src_len): + raise ValueError( + f"Attention weights should be of size {(bsz * self.num_heads, tgt_len, src_len)}, but is" + f" {attn_weights.size()}" + ) + + # apply the causal_attention_mask first + if causal_attention_mask is not None: + if causal_attention_mask.size() != (bsz, 1, tgt_len, src_len): + raise ValueError( + f"Attention mask should be of size {(bsz, 1, tgt_len, src_len)}, but is" + f" {causal_attention_mask.size()}" + ) + attn_weights = ( + attn_weights.view(bsz, self.num_heads, tgt_len, src_len) + + causal_attention_mask + ) + attn_weights = attn_weights.view(bsz * self.num_heads, tgt_len, src_len) + + if attention_mask is not None: + if attention_mask.size() != (bsz, 1, tgt_len, src_len): + raise ValueError( + f"Attention mask should be of size {(bsz, 1, tgt_len, src_len)}, but is {attention_mask.size()}" + ) + attn_weights = ( + attn_weights.view(bsz, self.num_heads, tgt_len, src_len) + + attention_mask + ) + attn_weights = attn_weights.view(bsz * self.num_heads, tgt_len, src_len) + + attn_weights = nn.functional.softmax(attn_weights, dim=-1) + + attn_probs = nn.functional.dropout( + attn_weights, p=self.dropout, training=self.training + ) + + attn_output = torch.bmm(attn_probs, value_states) + + if attn_output.size() != (bsz * self.num_heads, tgt_len, self.head_size): + raise ValueError( + f"`attn_output` should be of size {(bsz, self.num_heads, tgt_len, self.head_size)}, but is" + f" {attn_output.size()}" + ) + + attn_output = attn_output.view(bsz, self.num_heads, tgt_len, self.head_size) + attn_output = attn_output.transpose(1, 2) + attn_output = attn_output.reshape(bsz, tgt_len, self.embed_dim) + + attn_output = self.out_proj(attn_output) + + return attn_output, None + + +class CLIPMLP(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + self.config = config + self.activation_fn = ACT2FN[config.hidden_act] + self.fc1 = TensorParallelColumnLinear.load( + prefix=f"{prefix}.fc1", config=config, weights=weights, bias=True + ) + self.fc2 = TensorParallelRowLinear.load( + prefix=f"{prefix}.fc2", config=config, weights=weights, bias=True + ) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + hidden_states = self.fc1(hidden_states) + hidden_states = self.activation_fn(hidden_states) + hidden_states = self.fc2(hidden_states) + return hidden_states + + +class CLIPEncoderLayer(nn.Module): + def __init__(self, prefix, config: CLIPConfig, weights): + super().__init__() + self.embed_dim = config.hidden_size + self.self_attn = CLIPAttention( + prefix=f"{prefix}.self_attn", config=config, weights=weights + ) + self.layer_norm1 = nn.LayerNorm.load( + prefix=f"{prefix}.layer_norm1", weights=weights, eps=config.layer_norm_eps + ) + self.mlp = CLIPMLP(prefix=f"{prefix}.mlp", config=config, weights=weights) + self.layer_norm2 = nn.LayerNorm.load( + prefix=f"{prefix}.layer_norm2", weights=weights, eps=config.layer_norm_eps + ) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: torch.Tensor, + causal_attention_mask: torch.Tensor, + ): + """ + Args: + hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)` + attention_mask (`torch.FloatTensor`): attention mask of size + `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values. + `(config.encoder_attention_heads,)`. + """ + residual = hidden_states + + hidden_states = self.layer_norm1(hidden_states) + hidden_states, attn_weights = self.self_attn( + hidden_states=hidden_states, + attention_mask=attention_mask, + causal_attention_mask=causal_attention_mask, + ) + hidden_states = residual + hidden_states + + residual = hidden_states + hidden_states = self.layer_norm2(hidden_states) + hidden_states = self.mlp(hidden_states) + hidden_states = residual + hidden_states + + return hidden_states + + +class CLIPPreTrainedModel(nn.Module): + """ + An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained + models. + """ + + config_class = CLIPConfig + base_model_prefix = "clip" + supports_gradient_checkpointing = True + + +CLIP_START_DOCSTRING = r""" + This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the + library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads + etc.) + + This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass. + Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage + and behavior. + + Parameters: + config ([`CLIPConfig`]): Model configuration class with all the parameters of the model. + Initializing with a config file does not load the weights associated with the model, only the + configuration. Check out the [`~PreTrainedModel.from_pretrained`] method to load the model weights. +""" + +CLIP_TEXT_INPUTS_DOCSTRING = r""" + Args: + input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`): + Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide + it. + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + [What are input IDs?](../glossary#input-ids) + attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*): + Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0, + config.max_position_embeddings - 1]`. + + [What are position IDs?](../glossary#position-ids) +""" + +CLIP_VISION_INPUTS_DOCSTRING = r""" + Args: + pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`): + Pixel values. Padding will be ignored by default should you provide it. Pixel values can be obtained using + [`AutoImageProcessor`]. See [`CLIPImageProcessor.__call__`] for details. +""" + +CLIP_INPUTS_DOCSTRING = r""" + Args: + input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`): + Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide + it. + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + [What are input IDs?](../glossary#input-ids) + attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*): + Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0, + config.max_position_embeddings - 1]`. + + [What are position IDs?](../glossary#position-ids) + pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`): + Pixel values. Padding will be ignored by default should you provide it. Pixel values can be obtained using + [`AutoImageProcessor`]. See [`CLIPImageProcessor.__call__`] for details. + return_loss (`bool`, *optional*): + Whether or not to return the contrastive loss. +""" + + +class CLIPEncoder(nn.Module): + """ + Transformer encoder consisting of `config.num_hidden_layers` self attention layers. Each layer is a + [`CLIPEncoderLayer`]. + + Args: + config: CLIPConfig + """ + + def __init__(self, prefix, config: CLIPConfig, weights): + super().__init__() + self.config = config + self.layers = nn.ModuleList( + [ + CLIPEncoderLayer( + prefix=f"{prefix}.layers.{i}", config=config, weights=weights + ) + for i in range(config.num_hidden_layers) + ] + ) + + def forward( + self, + inputs_embeds, + attention_mask: Optional[torch.Tensor] = None, + causal_attention_mask: Optional[torch.Tensor] = None, + ): + r""" + Args: + inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`): + Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. + This is useful if you want more control over how to convert `input_ids` indices into associated vectors + than the model's internal embedding lookup matrix. + attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + causal_attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Causal mask for the text model. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + """ + + hidden_states = inputs_embeds + for idx, encoder_layer in enumerate(self.layers): + hidden_states = encoder_layer( + hidden_states, + attention_mask, + causal_attention_mask, + ) + + return hidden_states + + +class CLIPTextTransformer(nn.Module): + def __init__(self, config: CLIPTextConfig): + super().__init__() + self.config = config + embed_dim = config.hidden_size + self.embeddings = CLIPTextEmbeddings(config) + self.encoder = CLIPEncoder( + prefix=f"{prefix}.encoder", config=config, weights=weights + ) + self.final_layer_norm = nn.LayerNorm(embed_dim, eps=config.layer_norm_eps) + + # For `pooled_output` computation + self.eos_token_id = config.eos_token_id + + def forward( + self, + input_ids: Optional[torch.Tensor] = None, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.Tensor] = None, + ): + r""" + Returns: + + """ + if input_ids is None: + raise ValueError("You have to specify input_ids") + + input_shape = input_ids.size() + input_ids = input_ids.view(-1, input_shape[-1]) + + hidden_states = self.embeddings(input_ids=input_ids, position_ids=position_ids) + + # CLIP's text model uses causal mask, prepare it here. + # https://github.com/openai/CLIP/blob/cfcffb90e69f37bf2ff1e988237a0fbe41f33c04/clip/model.py#L324 + causal_attention_mask = _create_4d_causal_attention_mask( + input_shape, hidden_states.dtype, device=hidden_states.device + ) + # expand attention_mask + if attention_mask is not None: + # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len] + attention_mask = _prepare_4d_attention_mask( + attention_mask, hidden_states.dtype + ) + + encoder_outputs = self.encoder( + inputs_embeds=hidden_states, + attention_mask=attention_mask, + causal_attention_mask=causal_attention_mask, + ) + + last_hidden_state = encoder_outputs[0] + last_hidden_state = self.final_layer_norm(last_hidden_state) + + if self.eos_token_id == 2: + # The `eos_token_id` was incorrect before PR #24773: Let's keep what have been done here. + # A CLIP model with such `eos_token_id` in the config can't work correctly with extra new tokens added + # ------------------------------------------------------------ + # text_embeds.shape = [batch_size, sequence_length, transformer.width] + # take features from the eot embedding (eot_token is the highest number in each sequence) + # casting to torch.int for onnx compatibility: argmax doesn't support int64 inputs with opset 14 + pooled_output = last_hidden_state[ + torch.arange( + last_hidden_state.shape[0], device=last_hidden_state.device + ), + input_ids.to(dtype=torch.int, device=last_hidden_state.device).argmax( + dim=-1 + ), + ] + else: + # The config gets updated `eos_token_id` from PR #24773 (so the use of exta new tokens is possible) + pooled_output = last_hidden_state[ + torch.arange( + last_hidden_state.shape[0], device=last_hidden_state.device + ), + # We need to get the first position of `eos_token_id` value (`pad_token_ids` might equal to `eos_token_id`) + ( + input_ids.to(dtype=torch.int, device=last_hidden_state.device) + == self.eos_token_id + ) + .int() + .argmax(dim=-1), + ] + + return last_hidden_state + + +class CLIPTextModel(CLIPPreTrainedModel): + config_class = CLIPTextConfig + + _no_split_modules = ["CLIPTextEmbeddings", "CLIPEncoderLayer"] + + def __init__(self, config: CLIPTextConfig): + super().__init__(config) + self.text_model = CLIPTextTransformer(config) + # Initialize weights and apply final processing + self.post_init() + + def forward( + self, + input_ids: Optional[torch.Tensor] = None, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.Tensor] = None, + ): + r""" + Returns: + + Examples: + + ```python + >>> from transformers import AutoTokenizer, CLIPTextModel + + >>> model = CLIPTextModel.from_pretrained("openai/clip-vit-base-patch32") + >>> tokenizer = AutoTokenizer.from_pretrained("openai/clip-vit-base-patch32") + + >>> inputs = tokenizer(["a photo of a cat", "a photo of a dog"], padding=True, return_tensors="pt") + + >>> outputs = model(**inputs) + >>> last_hidden_state = outputs.last_hidden_state + >>> pooled_output = outputs.pooler_output # pooled (EOS token) states + ```""" + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + return self.text_model( + input_ids=input_ids, + attention_mask=attention_mask, + position_ids=position_ids, + ) + + +class CLIPVisionTransformer(nn.Module): + def __init__(self, prefix, config: CLIPVisionConfig, weights): + super().__init__() + self.config = config + embed_dim = config.hidden_size + + self.embeddings = CLIPVisionEmbeddings( + prefix=f"{prefix}.embeddings", config=config, weights=weights + ) + self.pre_layrnorm = nn.LayerNorm.load( + prefix=f"{prefix}.pre_layrnorm", weights=weights, eps=config.layer_norm_eps + ) + self.encoder = CLIPEncoder( + prefix=f"{prefix}.encoder", config=config, weights=weights + ) + # self.post_layernorm = nn.LayerNorm.load(prefix=f"{prefix}.post_layernorm", weights=weights, eps=config.layer_norm_eps) + + def forward( + self, + pixel_values: Optional[torch.FloatTensor] = None, + ): + r""" + Returns: + + """ + if pixel_values is None: + raise ValueError("You have to specify pixel_values") + + hidden_states = self.embeddings(pixel_values) + hidden_states = self.pre_layrnorm(hidden_states) + + encoder_outputs = self.encoder( + inputs_embeds=hidden_states, + ) + last_hidden_state = encoder_outputs + # pooled_output = last_hidden_state[:, 0, :] + # pooled_output = self.post_layernorm(pooled_output) + + return BaseModelOutputWithPooling( + last_hidden_state=last_hidden_state, + # pooler_output=pooled_output, + # hidden_states=encoder_outputs, + ) + + +class CLIPVisionModel(CLIPPreTrainedModel): + config_class = CLIPVisionConfig + main_input_name = "pixel_values" + _no_split_modules = ["CLIPEncoderLayer"] + + def __init__(self, config: CLIPVisionConfig): + super().__init__(config) + self.vision_model = CLIPVisionTransformer(config) + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self) -> nn.Module: + return self.vision_model.embeddings.patch_embedding + + def forward( + self, + pixel_values: Optional[torch.FloatTensor] = None, + ): + r""" + Returns: + + Examples: + + ```python + >>> from PIL import Image + >>> import requests + >>> from transformers import AutoProcessor, CLIPVisionModel + + >>> model = CLIPVisionModel.from_pretrained("openai/clip-vit-base-patch32") + >>> processor = AutoProcessor.from_pretrained("openai/clip-vit-base-patch32") + + >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg" + >>> image = Image.open(requests.get(url, stream=True).raw) + + >>> inputs = processor(images=image, return_tensors="pt") + + >>> outputs = model(**inputs) + >>> last_hidden_state = outputs.last_hidden_state + >>> pooled_output = outputs.pooler_output # pooled CLS states + ```""" + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + return self.vision_model( + pixel_values=pixel_values, + ) + + +class CLIPModel(nn.Module): + def __init__(self, prefix, config: CLIPConfig, weights): + super().__init__() + text_config = config.text_config + vision_config = config.vision_config + + self.projection_dim = config.projection_dim + self.text_embed_dim = text_config.hidden_size + self.vision_embed_dim = vision_config.hidden_size + + self.text_model = CLIPTextTransformer(text_config) + self.vision_model = CLIPVisionTransformer(vision_config) + + self.visual_projection = nn.Linear( + self.vision_embed_dim, self.projection_dim, bias=False + ) + self.text_projection = nn.Linear( + self.text_embed_dim, self.projection_dim, bias=False + ) + self.logit_scale = nn.Parameter( + torch.tensor(self.config.logit_scale_init_value) + ) + + # Initialize weights and apply final processing + self.post_init() + + def get_text_features( + self, + input_ids: Optional[torch.Tensor] = None, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.Tensor] = None, + ) -> torch.FloatTensor: + r""" + Returns: + text_features (`torch.FloatTensor` of shape `(batch_size, output_dim`): The text embeddings obtained by + applying the projection layer to the pooled output of [`CLIPTextModel`]. + + Examples: + + ```python + >>> from transformers import AutoTokenizer, CLIPModel + + >>> model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") + >>> tokenizer = AutoTokenizer.from_pretrained("openai/clip-vit-base-patch32") + + >>> inputs = tokenizer(["a photo of a cat", "a photo of a dog"], padding=True, return_tensors="pt") + >>> text_features = model.get_text_features(**inputs) + ```""" + text_outputs = self.text_model( + input_ids=input_ids, + attention_mask=attention_mask, + position_ids=position_ids, + ) + + pooled_output = text_outputs[1] + text_features = self.text_projection(pooled_output) + + return text_features + + def get_image_features( + self, + pixel_values: Optional[torch.FloatTensor] = None, + ) -> torch.FloatTensor: + r""" + Returns: + image_features (`torch.FloatTensor` of shape `(batch_size, output_dim`): The image embeddings obtained by + applying the projection layer to the pooled output of [`CLIPVisionModel`]. + + Examples: + + ```python + >>> from PIL import Image + >>> import requests + >>> from transformers import AutoProcessor, CLIPModel + + >>> model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") + >>> processor = AutoProcessor.from_pretrained("openai/clip-vit-base-patch32") + + >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg" + >>> image = Image.open(requests.get(url, stream=True).raw) + + >>> inputs = processor(images=image, return_tensors="pt") + + >>> image_features = model.get_image_features(**inputs) + ```""" + # Use CLIP model's config for some fields (if specified) instead of those of vision & text components. + vision_outputs = self.vision_model( + pixel_values=pixel_values, + ) + + pooled_output = vision_outputs[1] # pooled_output + image_features = self.visual_projection(pooled_output) + + return image_features + + def forward( + self, + input_ids: Optional[torch.LongTensor] = None, + pixel_values: Optional[torch.FloatTensor] = None, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + ): + r""" + Returns: + + Examples: + + ```python + >>> from PIL import Image + >>> import requests + >>> from transformers import AutoProcessor, CLIPModel + + >>> model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") + >>> processor = AutoProcessor.from_pretrained("openai/clip-vit-base-patch32") + + >>> url = "http://images.cocodataset.org/val2017/000000039769.jpg" + >>> image = Image.open(requests.get(url, stream=True).raw) + + >>> inputs = processor( + ... text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True + ... ) + + >>> outputs = model(**inputs) + >>> logits_per_image = outputs.logits_per_image # this is the image-text similarity score + >>> probs = logits_per_image.softmax(dim=1) # we can take the softmax to get the label probabilities + ```""" + # Use CLIP model's config for some fields (if specified) instead of those of vision & text components. + vision_outputs = self.vision_model( + pixel_values=pixel_values, + return_dict=return_dict, + ) + + text_outputs = self.text_model( + input_ids=input_ids, + attention_mask=attention_mask, + position_ids=position_ids, + return_dict=return_dict, + ) + + image_embeds = vision_outputs[1] + image_embeds = self.visual_projection(image_embeds) + + text_embeds = text_outputs[1] + text_embeds = self.text_projection(text_embeds) + + # normalized features + image_embeds = image_embeds / image_embeds.norm(p=2, dim=-1, keepdim=True) + text_embeds = text_embeds / text_embeds.norm(p=2, dim=-1, keepdim=True) + + # cosine similarity as logits + logit_scale = self.logit_scale.exp() + logits_per_text = torch.matmul(text_embeds, image_embeds.t()) * logit_scale + logits_per_image = logits_per_text.t() + + return logits_per_image, logits_per_text diff --git a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py index 3a269fc0..4cf0fcf2 100644 --- a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py @@ -281,9 +281,8 @@ class LlamaMLP(nn.Module): class FlashLlamaLayer(nn.Module): - def __init__(self, layer_id, config, weights): + def __init__(self, prefix, config, weights): super().__init__() - prefix = f"model.layers.{layer_id}" self.self_attn = FlashLlamaAttention( prefix=f"{prefix}.self_attn", config=config, weights=weights ) @@ -337,27 +336,30 @@ class FlashLlamaLayer(nn.Module): class FlashLlamaModel(torch.nn.Module): - def __init__(self, config, weights): + def __init__(self, prefix, config, weights): super().__init__() process_group = weights.process_group self.tp_rank = process_group.rank() self.tp_world_size = process_group.size() - self.embed_tokens = TensorParallelEmbedding( - prefix="model.embed_tokens", weights=weights - ) self.layers = nn.ModuleList( [ FlashLlamaLayer( - layer_id, - config, - weights, + prefix=( + f"model.layers.{layer_id}" + if not prefix + else f"{prefix}.model.layers.{layer_id}" + ), + config=config, + weights=weights, ) for layer_id in range(config.num_hidden_layers) ] ) self.norm = FastRMSNorm.load( - prefix="model.norm", weights=weights, eps=config.rms_norm_eps + prefix="model.norm" if not prefix else f"{prefix}.model.norm", + weights=weights, + eps=config.rms_norm_eps, ) self.gradient_checkpointing = False @@ -368,7 +370,7 @@ class FlashLlamaModel(torch.nn.Module): def forward( self, - input_ids: torch.Tensor, + inputs_embeds: torch.Tensor, position_ids: torch.Tensor, cu_seqlen_prefill: Optional[torch.Tensor], kv_cache: List[Tuple[torch.Tensor, torch.Tensor]], @@ -376,8 +378,10 @@ class FlashLlamaModel(torch.nn.Module): slots: torch.Tensor, input_lengths: torch.Tensor, max_s: int, + true_max_s: int, + prefill_cache_indices: Optional[torch.Tensor], ) -> torch.Tensor: - hidden_states = self.embed_tokens(input_ids) + hidden_states = inputs_embeds # Get rotary cos and sin for this forward # Avoid to index in each layer @@ -406,13 +410,19 @@ class FlashLlamaModel(torch.nn.Module): class FlashLlamaForCausalLM(torch.nn.Module): - def __init__(self, config, weights): + def __init__(self, prefix, config, weights): super().__init__() - self.model = FlashLlamaModel(config, weights) + self.embed_tokens = TensorParallelEmbedding( + prefix=( + "model.embed_tokens" if not prefix else f"{prefix}.model.embed_tokens" + ), + weights=weights, + ) + self.model = FlashLlamaModel(prefix, config, weights) self.lm_head = SpeculativeHead.load( config, - prefix="lm_head", + prefix="lm_head" if not prefix else f"{prefix}.lm_head", weights=weights, ) @@ -426,10 +436,12 @@ class FlashLlamaForCausalLM(torch.nn.Module): slots: torch.Tensor, input_lengths: torch.Tensor, max_s: int, + prefill_cache_indices: Optional[torch.Tensor] = None, lm_head_indices: Optional[torch.Tensor] = None, ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: + inputs_embeds = self.embed_tokens(input_ids) hidden_states = self.model( - input_ids, + inputs_embeds, position_ids, cu_seqlen_prefill, kv_cache, @@ -437,6 +449,8 @@ class FlashLlamaForCausalLM(torch.nn.Module): slots, input_lengths, max_s, + true_max_s=max_s, + prefill_cache_indices=prefill_cache_indices, ) if lm_head_indices is not None: hidden_states = hidden_states[lm_head_indices] diff --git a/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py b/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py index ed9306e0..ffaa0c32 100644 --- a/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py @@ -285,9 +285,8 @@ class MistralMLP(nn.Module): class MistralLayer(nn.Module): - def __init__(self, layer_id, config, weights): + def __init__(self, prefix, config, weights): super().__init__() - prefix = f"model.layers.{layer_id}" self.self_attn = MistralAttention( prefix=f"{prefix}.self_attn", config=config, weights=weights ) @@ -343,27 +342,24 @@ class MistralLayer(nn.Module): class MistralModel(torch.nn.Module): - def __init__(self, config, weights): + def __init__(self, prefix, config, weights): super().__init__() process_group = weights.process_group self.tp_rank = process_group.rank() self.tp_world_size = process_group.size() - self.embed_tokens = TensorParallelEmbedding( - prefix="model.embed_tokens", weights=weights - ) self.layers = nn.ModuleList( [ MistralLayer( - layer_id, - config, - weights, + prefix=f"{prefix}.layers.{layer_id}", + config=config, + weights=weights, ) for layer_id in range(config.num_hidden_layers) ] ) self.norm = FastRMSNorm.load( - prefix="model.norm", weights=weights, eps=config.rms_norm_eps + prefix=f"{prefix}.norm", weights=weights, eps=config.rms_norm_eps ) self.gradient_checkpointing = False @@ -374,7 +370,7 @@ class MistralModel(torch.nn.Module): def forward( self, - input_ids: torch.Tensor, + inputs_embeds: torch.Tensor, position_ids: torch.Tensor, cu_seqlen_prefill: Optional[torch.Tensor], kv_cache: List[Tuple[torch.Tensor, torch.Tensor]], @@ -384,9 +380,8 @@ class MistralModel(torch.nn.Module): max_s: int, true_max_s: int, prefill_cache_indices: Optional[torch.Tensor], - ) -> torch.Tensor: - hidden_states = self.embed_tokens(input_ids) - + ): + hidden_states = inputs_embeds # Get rotary cos and sin for this forward # Avoid to index in each layer cos, sin = self.layers[0].self_attn.rotary_emb.get_cos_sin( @@ -410,18 +405,27 @@ class MistralModel(torch.nn.Module): ) hidden_states, _ = self.norm(hidden_states, residual) - return hidden_states class FlashMistralForCausalLM(torch.nn.Module): - def __init__(self, config, weights): + def __init__(self, prefix, config, weights): super().__init__() - self.model = MistralModel(config, weights) + self.embed_tokens = TensorParallelEmbedding( + prefix=( + "model.embed_tokens" if not prefix else f"{prefix}.model.embed_tokens" + ), + weights=weights, + ) + self.model = MistralModel( + prefix="model" if not prefix else f"{prefix}.model", + config=config, + weights=weights, + ) self.lm_head = SpeculativeHead.load( config, - prefix="lm_head", + prefix="lm_head" if not prefix else f"{prefix}.lm_head", weights=weights, ) self.max_past = config.sliding_window @@ -453,8 +457,9 @@ class FlashMistralForCausalLM(torch.nn.Module): # kernel requires the true values input_lengths = torch.clamp(input_lengths, max=self.max_past_tensor) + inputs_embeds = self.embed_tokens(input_ids) hidden_states = self.model( - input_ids, + inputs_embeds, position_ids, cu_seqlen_prefill, kv_cache, diff --git a/server/text_generation_server/models/custom_modeling/llava_next.py b/server/text_generation_server/models/custom_modeling/llava_next.py new file mode 100644 index 00000000..ed21a52b --- /dev/null +++ b/server/text_generation_server/models/custom_modeling/llava_next.py @@ -0,0 +1,302 @@ +# coding=utf-8 +# Copyright 2024 the HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" PyTorch Llava-NeXT model.""" + +from typing import List, Optional, Tuple, Union + +import torch +import torch.utils.checkpoint +from torch import nn + +from transformers.activations import ACT2FN +from transformers.image_processing_utils import select_best_resolution + +from text_generation_server.utils.layers import ( + TensorParallelColumnLinear, + TensorParallelRowLinear, +) + + +def get_anyres_image_grid_shape(image_size, grid_pinpoints, patch_size): + """ + Calculate the shape of the image patch grid after the preprocessing for images of any resolution. + + Args: + image_size (`tuple`): + The size of the input image in the format (width, height). + grid_pinpoints (`List`): + A list containing possible resolutions. Each item in the list should be a tuple or list + of the form `(height, width)`. + patch_size (`int`): + The size of each image patch. + + Returns: + tuple: The shape of the image patch grid in the format (width, height). + """ + if not isinstance(grid_pinpoints, list): + raise ValueError("grid_pinpoints should be a list of tuples or lists") + + height, width = select_best_resolution(image_size, grid_pinpoints) + return height // patch_size, width // patch_size + + +def unpad_image(tensor, original_size): + """ + Unpads a PyTorch tensor of a padded and resized image. + + Args: + tensor (`torch.Tensor`): + The image tensor, assumed to be of shape (num_channels, height, width). + original_size (`tuple`): + The original size of the image (height, width). + + Returns: + `torch.Tensor`: The unpadded image tensor. + """ + original_height, original_width = original_size + current_height, current_width = tensor.shape[1:] + + original_aspect_ratio = original_width / original_height + current_aspect_ratio = current_width / current_height + + if original_aspect_ratio > current_aspect_ratio: + scale_factor = current_width / original_width + new_height = int(original_height * scale_factor) + padding = (current_height - new_height) // 2 + unpadded_tensor = tensor[:, padding : current_height - padding, :] + else: + scale_factor = current_height / original_height + new_width = int(original_width * scale_factor) + padding = (current_width - new_width) // 2 + unpadded_tensor = tensor[:, :, padding : current_width - padding] + + return unpadded_tensor + + +# Copied from transformers.models.llava.modeling_llava.LlavaMultiModalProjector with Llava->LlavaNext +class LlavaNextMultiModalProjector(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + + self.linear_1 = TensorParallelColumnLinear.load( + prefix=f"{prefix}.linear_1", config=config, weights=weights, bias=True + ) + self.act = ACT2FN[config.projector_hidden_act] + self.linear_2 = TensorParallelRowLinear.load( + prefix=f"{prefix}.linear_2", config=config, weights=weights, bias=True + ) + + def forward(self, image_features): + hidden_states = self.linear_1(image_features) + hidden_states = self.act(hidden_states) + hidden_states = self.linear_2(hidden_states) + return hidden_states + + +def load_vision_model(prefix, config, weights): + if config.model_type == "clip_vision_model": + from text_generation_server.models.custom_modeling.clip import ( + CLIPVisionTransformer, + ) + + return CLIPVisionTransformer( + prefix=f"{prefix}.vision_model", config=config, weights=weights + ) + else: + raise RuntimeError(f"Unsupported model type {config.model_type}") + + +def load_text_model(prefix, config, weights): + if config.model_type == "llama": + from text_generation_server.models.custom_modeling.flash_llama_modeling import ( + FlashLlamaForCausalLM, + ) + + return FlashLlamaForCausalLM(prefix, config, weights) + elif config.model_type == "mistral": + from text_generation_server.models.custom_modeling.flash_mistral_modeling import ( + FlashMistralForCausalLM, + ) + + return FlashMistralForCausalLM(prefix, config, weights) + else: + raise RuntimeError(f"Unsupported model type {config.model_type}") + + +class LlavaNextForConditionalGeneration(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + config.vision_config.quantize = config.quantize + vision_config = config.vision_config + # Instead of selecting in hidden_states[-2]. + # Instead compute only the n -2 + 1 layers and don't pool + if config.vision_feature_layer < 0: + vision_config.num_hidden_layers += config.vision_feature_layer + 1 + else: + vision_config.num_hidden_layers = config.vision_feature_layer + 1 + self.vision_tower = load_vision_model( + prefix="vision_tower" if not prefix else f"{prefix}.vision_tower", + config=config.vision_config, + weights=weights, + ) + + self.multi_modal_projector = LlavaNextMultiModalProjector( + prefix="multi_modal_projector", config=config, weights=weights + ) + + self.image_newline = weights.get_tensor("image_newline") + + self.vocab_size = config.text_config.vocab_size + self.config = config + config.text_config.quantize = config.quantize + config.text_config.use_medusa = config.use_medusa + self.language_model = load_text_model( + prefix="language_model" if not prefix else f"{prefix}.language_model", + config=config.text_config, + weights=weights, + ) + self.pad_token_id = ( + config.pad_token_id if config.pad_token_id is not None else -1 + ) + + def _merge_input_ids_with_image_features( + self, + input_ids: torch.Tensor, + inputs_embeds: torch.Tensor, + image_features: torch.Tensor, + ): + """In place merges in vision_embeddings with inputs_embeds.""" + mask = input_ids == self.config.image_token_index + # Let's pray we have enabled enough slots ! + inputs_embeds[mask] = image_features.view(-1, image_features.shape[-1]) + return inputs_embeds + + def forward( + self, + input_ids: torch.Tensor, + position_ids: torch.Tensor, + cu_seqlen_prefill: Optional[torch.Tensor], + kv_cache: List[Tuple[torch.Tensor, torch.Tensor]], + block_tables: torch.Tensor, + slots: torch.Tensor, + input_lengths: torch.Tensor, + max_s: int, + prefill_cache_indices: Optional[torch.Tensor], + lm_head_indices: Optional[torch.Tensor] = None, + pixel_values: torch.FloatTensor = None, + image_sizes: Optional[torch.LongTensor] = None, + ): + inputs_embeds = self.language_model.embed_tokens(input_ids) + if pixel_values is not None and len(pixel_values) > 0: + # num_special_image_tokens = (input_ids == self.config.image_token_index).sum() + # assert num_special_image_tokens == len(pixel_values), f"Received {num_special_image_tokens} for {len(pixel_values)} images, this is invalid" + # 1. Extract the input embeddings + + # 2. Merge text and images + num_images, num_patches, channels, height, width = pixel_values.shape + pixel_values = pixel_values.view( + num_images * num_patches, channels, height, width + ) + image_features = self.vision_tower(pixel_values) + + # selected_image_feature = image_features.hidden_states[self.config.vision_feature_layer] + # Already done within the clip model + selected_image_feature = image_features.last_hidden_state + + if self.config.vision_feature_select_strategy == "default": + selected_image_feature = selected_image_feature[:, 1:] + elif self.config.vision_feature_select_strategy == "full": + selected_image_feature = selected_image_feature + else: + raise RuntimeError( + f"Strategy `{self.config.vision_feature_select_strategy}` is not supported/valid." + ) + + image_features = self.multi_modal_projector(selected_image_feature) + + # split up image_features for each of the individual images + # hence we get a list of image_features, each of shape (5, num_patches, hidden_size) + # if we assume each image has 5 image features (base image + 4 patches) + split_sizes = [num_patches] * num_images + image_features = torch.split(image_features, split_sizes, dim=0) + + # NOTE we only support multimodal_patch_merge_type == "spatial_unpad" + height = width = ( + self.config.vision_config.image_size + // self.config.vision_config.patch_size + ) + + new_image_features = [] + for image_idx, image_feature in enumerate(image_features): + if image_feature.shape[0] > 1: + base_image_feature = image_feature[0] + image_feature = image_feature[1:] + + if height * width != base_image_feature.shape[0]: + raise ValueError( + "The number of patches is not consistent with the image size." + ) + num_patch_height, num_patch_width = get_anyres_image_grid_shape( + image_sizes[image_idx], + self.config.image_grid_pinpoints, + self.config.vision_config.image_size, + ) + image_feature = image_feature.view( + num_patch_height, num_patch_width, height, width, -1 + ) + image_feature = image_feature.permute(4, 0, 2, 1, 3).contiguous() + image_feature = image_feature.flatten(1, 2).flatten(2, 3) + image_feature = unpad_image(image_feature, image_sizes[image_idx]) + image_feature = torch.cat( + ( + image_feature, + self.image_newline[:, None, None].expand( + *image_feature.shape[:-1], 1 + ), + ), + dim=-1, + ) + image_feature = image_feature.flatten(1, 2).transpose(0, 1) + image_feature = torch.cat( + (base_image_feature, image_feature), dim=0 + ) + else: + image_feature = image_feature[0] + image_feature = torch.cat( + (image_feature, self.image_newline[None]), dim=0 + ) + new_image_features.append(image_feature) + image_features = torch.stack(new_image_features, dim=0) + + inputs_embeds = self._merge_input_ids_with_image_features( + input_ids, inputs_embeds, image_features + ) + + hidden_states = self.language_model.model( + inputs_embeds=inputs_embeds, + position_ids=position_ids, + cu_seqlen_prefill=cu_seqlen_prefill, + kv_cache=kv_cache, + block_tables=block_tables, + slots=slots, + input_lengths=input_lengths, + max_s=max_s, + true_max_s=max_s, + prefill_cache_indices=None, + ) + if lm_head_indices is not None: + hidden_states = hidden_states[lm_head_indices] + logits, speculative_logits = self.language_model.lm_head(hidden_states) + return logits, speculative_logits diff --git a/server/text_generation_server/models/flash_causal_lm.py b/server/text_generation_server/models/flash_causal_lm.py index 5c25f341..be513511 100644 --- a/server/text_generation_server/models/flash_causal_lm.py +++ b/server/text_generation_server/models/flash_causal_lm.py @@ -106,6 +106,19 @@ class FlashCausalLMBatch(Batch): max_tokens=self.blocks * BLOCK_SIZE, ) + @classmethod + def batch_tokenized_inputs(cls, requests, tokenizer): + batch_inputs = [] + max_truncation = 0 + for r in requests: + batch_inputs.append(r.inputs) + max_truncation = max(max_truncation, r.truncate) + + batch_tokenized_inputs = tokenizer( + batch_inputs, truncation=True, max_length=max_truncation + )["input_ids"] + return batch_tokenized_inputs + @classmethod def from_pb( cls, @@ -114,16 +127,7 @@ class FlashCausalLMBatch(Batch): dtype: torch.dtype, device: torch.device, ) -> "FlashCausalLMBatch": - batch_inputs = [] - max_truncation = 0 - for r in pb.requests: - batch_inputs.append(r.inputs) - max_truncation = max(max_truncation, r.truncate) - - batch_tokenized_inputs = tokenizer( - batch_inputs, truncation=True, max_length=max_truncation - )["input_ids"] - + batch_tokenized_inputs = cls.batch_tokenized_inputs(pb.requests, tokenizer) position_ids = [] speculative_ids = [] cu_seqlen_prefill = [0] diff --git a/server/text_generation_server/models/flash_llama.py b/server/text_generation_server/models/flash_llama.py index a2ac759a..56768942 100644 --- a/server/text_generation_server/models/flash_llama.py +++ b/server/text_generation_server/models/flash_llama.py @@ -67,7 +67,8 @@ class FlashLlama(FlashCausalLM): if config.quantize in ["gptq", "awq"]: weights._set_gptq_params(model_id, revision) - model = FlashLlamaForCausalLM(config, weights) + prefix = "" + model = FlashLlamaForCausalLM(prefix, config, weights) torch.distributed.barrier(group=self.process_group) super(FlashLlama, self).__init__( model=model, diff --git a/server/text_generation_server/models/flash_mistral.py b/server/text_generation_server/models/flash_mistral.py index 2e1055b2..575dbba0 100644 --- a/server/text_generation_server/models/flash_mistral.py +++ b/server/text_generation_server/models/flash_mistral.py @@ -6,8 +6,7 @@ import numpy as np from dataclasses import dataclass from opentelemetry import trace -from transformers import PreTrainedTokenizerBase, AutoTokenizer -from transformers.models.llama import LlamaTokenizerFast +from transformers import PreTrainedTokenizerBase, AutoTokenizer, AutoConfig from typing import Optional, Tuple, Type from text_generation_server.pb import generate_pb2 @@ -65,19 +64,21 @@ class FlashMistralBatch(FlashCausalLMBatch): tokenizer: PreTrainedTokenizerBase, dtype: torch.dtype, device: torch.device, + ) -> "FlashCausalLMBatch": + batch_tokenized_inputs = cls.batch_tokenized_inputs(pb.requests, tokenizer) + return cls.from_tokenized(pb, tokenizer, batch_tokenized_inputs, dtype, device) + + @classmethod + def from_tokenized( + cls, + pb: generate_pb2.Batch, + tokenizer: PreTrainedTokenizerBase, + batch_tokenized_inputs, + dtype: torch.dtype, + device: torch.device, ) -> "FlashCausalLMBatch": sliding_window, sliding_window_blocks = get_sliding_windows() - batch_inputs = [] - max_truncation = 0 - for r in pb.requests: - batch_inputs.append(r.inputs) - max_truncation = max(max_truncation, r.truncate) - - batch_tokenized_inputs = tokenizer( - batch_inputs, truncation=True, max_length=max_truncation - )["input_ids"] - position_ids = [] cu_seqlen_prefill = [0] needed_blocks_slots = [] @@ -301,14 +302,15 @@ class FlashMistralBatch(FlashCausalLMBatch): class BaseFlashMistral(FlashCausalLM): def __init__( self, - config_cls, model_cls, model_id: str, + config_cls=AutoConfig, revision: Optional[str] = None, quantize: Optional[str] = None, use_medusa: Optional[str] = None, dtype: Optional[torch.dtype] = None, trust_remote_code: bool = False, + tokenizer_class=AutoTokenizer, ): self.process_group, rank, world_size = initialize_torch_distributed() if torch.cuda.is_available(): @@ -317,22 +319,13 @@ class BaseFlashMistral(FlashCausalLM): else: raise NotImplementedError("FlashMistral is only available on GPU") - try: - tokenizer = LlamaTokenizerFast.from_pretrained( - model_id, - revision=revision, - padding_side="left", - truncation_side="left", - trust_remote_code=trust_remote_code, - ) - except Exception: - tokenizer = AutoTokenizer.from_pretrained( - model_id, - revision=revision, - padding_side="left", - truncation_side="left", - trust_remote_code=trust_remote_code, - ) + tokenizer = tokenizer_class.from_pretrained( + model_id, + revision=revision, + padding_side="left", + truncation_side="left", + trust_remote_code=trust_remote_code, + ) config = config_cls.from_pretrained( model_id, revision=revision, trust_remote_code=trust_remote_code @@ -341,10 +334,12 @@ class BaseFlashMistral(FlashCausalLM): config.use_medusa = use_medusa # Set context windows - if config.sliding_window is not None: + if getattr(config, "sliding_window", None) is not None: set_sliding_window( config.sliding_window, math.ceil(config.sliding_window / BLOCK_SIZE) ) + else: + config.sliding_window = None torch.distributed.barrier(group=self.process_group) @@ -353,17 +348,19 @@ class BaseFlashMistral(FlashCausalLM): if config.quantize in ["gptq", "awq"]: weights._set_gptq_params(model_id, revision) - model = model_cls(config, weights) + prefix = "" + model = model_cls(prefix, config, weights) self.cuda_graphs = {} torch.distributed.barrier(group=self.process_group) - super(BaseFlashMistral, self).__init__( + num_layers, num_kv_heads, head_size = self.get_layer_config(model) + super().__init__( model=model, tokenizer=tokenizer, - num_layers=len(model.model.layers), - num_kv_heads=model.model.num_key_value_heads, - head_size=model.model.head_size, + num_layers=num_layers, + num_kv_heads=num_kv_heads, + head_size=head_size, dtype=dtype, device=device, rank=rank, @@ -371,6 +368,16 @@ class BaseFlashMistral(FlashCausalLM): sliding_window=config.sliding_window, ) + def get_layer_config(self, model) -> Tuple[int, int, int]: + return ( + len(model.model.layers), + model.model.num_key_value_heads, + model.model.head_size, + ) + + def max_past(self) -> int: + return self.model.max_past + @property def batch_type(self) -> Type[FlashMistralBatch]: return FlashMistralBatch @@ -485,11 +492,11 @@ class BaseFlashMistral(FlashCausalLM): max_s = batch.max_seqlen lm_head_indices = batch.prefill_head_indices - if cu_seqlen_prefill is None and self.model.max_past is not None: + if cu_seqlen_prefill is None and self.max_past() is not None: # In decode, not prefill, we're actually overwriting the KV-cache # in a circular buffer mode. # This makes sure the max_s for the decode pass is correct. - max_s = min(self.model.max_past, max_s) + max_s = min(self.max_past(), max_s) bs = input_ids.shape[0] padded_bs = bs diff --git a/server/text_generation_server/models/idefics_causal_lm.py b/server/text_generation_server/models/idefics_causal_lm.py index c96e8152..e78a9655 100644 --- a/server/text_generation_server/models/idefics_causal_lm.py +++ b/server/text_generation_server/models/idefics_causal_lm.py @@ -1,4 +1,5 @@ import torch +import torch import time from dataclasses import dataclass @@ -20,29 +21,13 @@ from text_generation_server.models.types import ( ) from text_generation_server.pb import generate_pb2 from text_generation_server.utils import NextTokenChooser, StoppingCriteria, Sampling +from text_generation_server.models.vlm_causal_lm import split import re IMAGES = re.compile(r"!\[[^\]]*\]\((.*?)\s*(\"(?:.*[^\"])\")?\s*\)") -def split(string): - parts = [] - cursor = 0 - for pattern in IMAGES.finditer(string): - start = pattern.start() - if start != cursor: - parts.append(string[cursor:start]) - - parts.append(pattern.group(1)) - cursor = pattern.end() - - if cursor != len(string): - parts.append(string[cursor:]) - - return parts - - tracer = trace.get_tracer(__name__) @@ -93,10 +78,21 @@ class IdeficsCausalLMBatch(Batch): @classmethod def from_pb( + cls, + pb: generate_pb2.Batch, + tokenizer: PreTrainedTokenizerBase, + dtype: torch.dtype, + device: torch.device, + ) -> "IdeficsCausalLMBatch": + raise NotImplementedError + + @classmethod + def from_pb_processor( cls, pb: generate_pb2.Batch, tokenizer: PreTrainedTokenizerBase, processor: ProcessorMixin, # Hack + config, dtype: torch.dtype, device: torch.device, ) -> "IdeficsCausalLMBatch": @@ -127,10 +123,14 @@ class IdeficsCausalLMBatch(Batch): padding_right_offset, stopping_criteria.max_new_tokens ) + # TODO Check impact on idefics prompts = [] for inp in inputs: # Each input is encoded into a list, where each element of this input list is either a string or a URL - prompts.append(split(inp)) + prompt = [] + for chunk in split(inp): + prompt.append(chunk["content"]) + prompts.append(prompt) # The processor replaces the call to tokenizer, and # a/ takes care of fetching images from the URL @@ -141,7 +141,8 @@ class IdeficsCausalLMBatch(Batch): padding=True, truncation=True, max_length=max_truncation, - add_end_of_utterance_token=False, # Already taken care of inside the prompts, so bypassing the processor's handling of this token + # TODO Check impact on idefics + # add_end_of_utterance_token=False, # Already taken care of inside the prompts, so bypassing the processor's handling of this token ).to(device) for _ in pb.requests: input_len = tokenized_inputs["input_ids"].shape[1] @@ -156,7 +157,7 @@ class IdeficsCausalLMBatch(Batch): max_input_length = input_lengths.max() input_ids = tokenized_inputs["input_ids"] - pixel_values = tokenized_inputs["pixel_values"] + pixel_values = tokenized_inputs.get("pixel_values", None) image_hidden_states = None # Allocate maximum attention_mask attention_mask = input_ids.new_zeros( @@ -165,16 +166,19 @@ class IdeficsCausalLMBatch(Batch): # Copy tokenizer attention_mask into fully allocated attention_mask attention_mask[:, :max_input_length] = tokenized_inputs["attention_mask"] # Do the same for image_attention_mask - image_attention_mask = input_ids.new_zeros( - ( - pb.size, - max_input_length + padding_right_offset, - tokenized_inputs["pixel_values"].size(1), + if pixel_values is None: + image_attention_mask = None + else: + image_attention_mask = input_ids.new_zeros( + ( + pb.size, + max_input_length + padding_right_offset, + pixel_values.size(1), + ) ) - ) - image_attention_mask[:, :max_input_length, :] = tokenized_inputs[ - "image_attention_mask" - ] + image_attention_mask[:, :max_input_length, :] = tokenized_inputs[ + "image_attention_mask" + ] position_ids = tokenized_inputs["attention_mask"].long().cumsum(-1) - 1 position_ids.masked_fill_(tokenized_inputs["attention_mask"] == 0, 1) @@ -677,19 +681,22 @@ class IdeficsCausalLM(Model): start = time.time_ns() # slice the attention mask to the correct shape attention_mask = batch.attention_mask[:, : -batch.padding_right_offset] - if batch.input_ids.size(1) == 1: - # THIS is a hack: when calling idefics.generate, the first time, we need the whole image_attention_mask (size bs x max_seq_len x max_num_images), - # but the subsequent times, we only need the last attention mask along the `max_seq_len` dimension - # this is due to the nature IDEFICS: it's an encoder decoder, and so when decoding, only the currently generated - # token need to attend to the encoder hidden states (i.e. the vision encoder) - # Also see seq2seq_lm.Seq2SeqLM.generate_token which has roughly the same logic - image_attention_mask = batch.image_attention_mask[ - :, -(batch.padding_right_offset + 1) - ].unsqueeze(1) + if batch.image_attention_mask is None: + image_attention_mask = None else: - image_attention_mask = batch.image_attention_mask[ - :, : -batch.padding_right_offset - ] + if batch.input_ids.size(1) == 1: + # THIS is a hack: when calling idefics.generate, the first time, we need the whole image_attention_mask (size bs x max_seq_len x max_num_images), + # but the subsequent times, we only need the last attention mask along the `max_seq_len` dimension + # this is due to the nature IDEFICS: it's an encoder decoder, and so when decoding, only the currently generated + # token need to attend to the encoder hidden states (i.e. the vision encoder) + # Also see seq2seq_lm.Seq2SeqLM.generate_token which has roughly the same logic + image_attention_mask = batch.image_attention_mask[ + :, -(batch.padding_right_offset + 1) + ].unsqueeze(1) + else: + image_attention_mask = batch.image_attention_mask[ + :, : -batch.padding_right_offset + ] logits, speculative_logits, past, image_hidden_states = self.forward( input_ids=batch.input_ids, diff --git a/server/text_generation_server/models/llava_next.py b/server/text_generation_server/models/llava_next.py new file mode 100644 index 00000000..0ae1b46d --- /dev/null +++ b/server/text_generation_server/models/llava_next.py @@ -0,0 +1,36 @@ +import torch + +from typing import Optional + +from transformers import ( + AutoProcessor, +) +from text_generation_server.models.custom_modeling.llava_next import ( + LlavaNextForConditionalGeneration, +) + +from text_generation_server.models.vlm_causal_lm import VlmCausalLM + + +class LlavaNext(VlmCausalLM): + def __init__( + self, + model_id: str, + revision: Optional[str] = None, + quantize: Optional[str] = None, + use_medusa: Optional[str] = None, + dtype: Optional[torch.dtype] = None, + trust_remote_code: bool = False, + ): + self.processor = AutoProcessor.from_pretrained( + model_id, revision=revision, trust_remote_code=trust_remote_code + ) + super().__init__( + model_cls=LlavaNextForConditionalGeneration, + model_id=model_id, + revision=revision, + quantize=quantize, + use_medusa=use_medusa, + dtype=dtype, + trust_remote_code=trust_remote_code, + ) diff --git a/server/text_generation_server/models/vlm_causal_lm.py b/server/text_generation_server/models/vlm_causal_lm.py new file mode 100644 index 00000000..16042fc9 --- /dev/null +++ b/server/text_generation_server/models/vlm_causal_lm.py @@ -0,0 +1,329 @@ +import re +import torch +import math +from PIL import Image +from io import BytesIO +import base64 + +from opentelemetry import trace +from typing import Optional, Tuple, List, Type, Dict + +from transformers import PreTrainedTokenizerBase +from transformers.image_processing_utils import select_best_resolution +from text_generation_server.pb import generate_pb2 +from text_generation_server.models.flash_mistral import ( + BaseFlashMistral, + FlashMistralBatch, +) +from text_generation_server.models.cache_manager import ( + get_cache_manager, +) + +tracer = trace.get_tracer(__name__) + +IMAGES = re.compile(r"!\[[^\]]*\]\((.*?)\s*(\"(?:.*[^\"])\")?\s*\)") + + +def split(string) -> List[Dict[str, str]]: + parts = [] + cursor = 0 + for pattern in IMAGES.finditer(string): + start = pattern.start() + if start != cursor: + parts.append({"type": "text", "content": string[cursor:start]}) + + parts.append({"type": "image", "content": pattern.group(1)}) + cursor = pattern.end() + + if cursor != len(string): + parts.append({"type": "text", "content": string[cursor:]}) + + return parts + + +def get_anyres_image_grid_shape(image_size, grid_pinpoints, patch_size): + """ + Calculate the shape of the image patch grid after the preprocessing for images of any resolution. + + Args: + image_size (`tuple`): + The size of the input image in the format (width, height). + grid_pinpoints (`List`): + A list containing possible resolutions. Each item in the list should be a tuple or list + of the form `(height, width)`. + patch_size (`int`): + The size of each image patch. + + Returns: + tuple: The shape of the image patch grid in the format (width, height). + """ + if not isinstance(grid_pinpoints, list): + raise ValueError("grid_pinpoints should be a list of tuples or lists") + + height, width = select_best_resolution(image_size, grid_pinpoints) + return height // patch_size, width // patch_size + + +def get_number_of_features(height: int, width: int, config) -> int: + # From config + # Hardcoded for CLIP for now + # image_grid_pinpoints = [[336, 672], [672, 336], [672, 672], [1008, 336], [336, 1008]] + image_grid_pinpoints = config.image_grid_pinpoints + image_size = config.vision_config.image_size + patch_size = config.vision_config.patch_size + + assert image_size % patch_size == 0 + + npatches = image_size // patch_size + + num_patch_height, num_patch_width = get_anyres_image_grid_shape( + [height, width], + image_grid_pinpoints, + image_size, + ) + + height_of_patch = math.ceil(height / width * npatches) + + unpadded_features = npatches * height_of_patch * num_patch_height * num_patch_width + # They are only added after width + newline_features = height_of_patch * num_patch_width + # The base patch covers the entire image + base_features = npatches**2 + return unpadded_features + newline_features + base_features + + +def load_data_uri(image_uri: str) -> Image.Image: + image_uri = image_uri.split(",")[-1] + content = base64.b64decode(image_uri) + image = Image.open(BytesIO(content)) + return image + + +# assert get_number_of_features(889, 1024) == 2634, f"{get_number_of_features(889, 1024)}" +# assert get_number_of_features(640, 640) == 2928 + + +class VlmCausalLMBatch(FlashMistralBatch): + pixel_values: Optional[List[torch.Tensor]] + image_sizes: Optional[List[Tuple[int, int]]] + + @classmethod + @tracer.start_as_current_span("concatenate") + def concatenate(cls, batches): + batch = super(VlmCausalLMBatch, cls).concatenate(batches) + batch.pixel_values = None + batch.image_sizes = None + return batch + + @tracer.start_as_current_span("filter") + def filter(self, request_ids: List[int]): + batch = super().filter(request_ids) + batch.pixel_values = None + batch.image_sizes = None + return batch + + @classmethod + def batch_tokenized_inputs(cls, requests, tokenizer, processor, config): + batch_inputs = [] + image_inputs = [] + max_truncation = 0 + for r in requests: + chunks = split(r.inputs) + full_text = "" + for chunk in chunks: + if chunk["type"] == "text": + full_text += chunk["content"] + elif chunk["type"] == "image": + image = chunk["content"] + # Should never receive URLs anymore, processing should be done + # On the rust layer. + # This avoid making n queries per TP + # if image.startswith("https://") or image.startswith("http://"): + # image = processor.image_processor.fetch_images(image) + if image.startswith("data:"): + image = load_data_uri(image) + else: + raise RuntimeError( + "Cannot process input image not starting with data:" + ) + image_input = processor.image_processor(image, return_tensors="pt") + height, width = image_input["image_sizes"][0] + num_features = get_number_of_features(height, width, config) + full_text += "" * num_features + image_inputs.append(image_input) + else: + raise RuntimeError(f"Invalid chunk type {chunk['type']}") + + batch_inputs.append(full_text) + max_truncation = max(max_truncation, r.truncate) + + batch_tokenized_inputs = tokenizer( + batch_inputs, truncation=True, max_length=max_truncation + )["input_ids"] + if image_inputs: + image_inputs = { + "pixel_values": torch.cat( + [img["pixel_values"] for img in image_inputs], dim=0 + ), + "image_sizes": torch.cat([img["image_sizes"] for img in image_inputs]), + } + else: + image_inputs = None + return batch_tokenized_inputs, image_inputs + + @classmethod + def from_pb_processor( + cls, + pb: generate_pb2.Batch, + tokenizer: PreTrainedTokenizerBase, + processor, + config, + dtype: torch.dtype, + device: torch.device, + ) -> "VlmCausalLMBatch": + batch_tokenized_inputs, image_inputs = cls.batch_tokenized_inputs( + pb.requests, tokenizer, processor, config + ) + batch = cls.from_tokenized(pb, tokenizer, batch_tokenized_inputs, dtype, device) + if image_inputs is not None: + batch.pixel_values = image_inputs["pixel_values"].to(device=device) + batch.image_sizes = image_inputs["image_sizes"].to(device=device) + else: + batch.pixel_values = None + batch.image_sizes = None + return batch + + +class VlmCausalLM(BaseFlashMistral): + @property + def batch_type(self) -> Type[VlmCausalLMBatch]: + return VlmCausalLMBatch + + def get_layer_config(self, model) -> Tuple[int, int, int]: + return ( + len(model.language_model.model.layers), + model.language_model.model.num_key_value_heads, + model.language_model.model.head_size, + ) + + def max_past(self) -> Optional[int]: + return getattr(self.model.language_model, "max_past", None) + + def forward( + self, batch: VlmCausalLMBatch + ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: + # Model Forward + if batch.speculative_ids is not None: + input_ids = batch.input_ids + position_ids = batch.position_ids + cu_seqlen_prefill = batch.cu_seqlen_prefill + kv_cache = get_cache_manager().kv_cache + block_tables = batch.block_tables_tensor + slots = batch.slots[batch.slot_indices] + input_lengths = batch.input_lengths_tensor + max_s = batch.max_seqlen + lm_head_indices = batch.prefill_head_indices + + speculative_ids = batch.speculative_ids + + B, speculative_length = speculative_ids.shape + new_length = speculative_length + 1 + new_input_ids = torch.cat( + [input_ids.unsqueeze(-1), speculative_ids], dim=1 + ).reshape(-1) + arange = torch.arange(new_length, device=position_ids.device).unsqueeze(0) + arange_int = arange.to(dtype=torch.int32) + new_position_ids = ( + position_ids.unsqueeze(-1).expand(B, new_length) + arange + ).view(-1) + slots = (slots.unsqueeze(-1).expand(B, new_length) + arange_int).view(-1) + input_lengths = ( + input_lengths.unsqueeze(-1).expand(B, new_length) + arange_int + ).view(-1) + + # Add Copy the block tables for all members + block_tables = ( + block_tables.unsqueeze(1) + .expand(B, new_length, -1) + .reshape(B * new_length, -1) + .contiguous() + ) + max_s = max_s + speculative_length + + input_ids = new_input_ids + position_ids = new_position_ids + else: + input_ids = batch.input_ids + position_ids = batch.position_ids + cu_seqlen_prefill = batch.cu_seqlen_prefill + kv_cache = get_cache_manager().kv_cache + block_tables = batch.block_tables_tensor + slots = batch.slots[batch.slot_indices] + input_lengths = batch.input_lengths_tensor + max_s = batch.max_seqlen + lm_head_indices = batch.prefill_head_indices + + if cu_seqlen_prefill is None and self.max_past() is not None: + # In decode, not prefill, we're actually overwriting the KV-cache + # in a circular buffer mode. + # This makes sure the max_s for the decode pass is correct. + max_s = min(self.max_past(), max_s) + + bs = input_ids.shape[0] + padded_bs = bs + if bs == 3: + padded_bs = 4 + elif 3 < bs <= 8: + padded_bs = 8 + elif bs > 8: + padded_bs = (bs + 7) // 8 * 8 + + # Try to find an associated cuda graph + cuda_graph = self.cuda_graphs.get(padded_bs, None) + + if cu_seqlen_prefill is not None or cuda_graph is None: + logits, speculative_logits = self.model.forward( + input_ids=input_ids, + position_ids=position_ids, + cu_seqlen_prefill=cu_seqlen_prefill, + kv_cache=kv_cache, + block_tables=block_tables, + slots=slots, + input_lengths=input_lengths, + max_s=max_s, + prefill_cache_indices=batch.prefill_cache_indices, + lm_head_indices=lm_head_indices, + pixel_values=batch.pixel_values, + image_sizes=batch.image_sizes, + ) + if batch.prefill_cache_indices is not None: + batch.prefill_cache_indices = None + if batch.pixel_values is not None: + batch.pixel_values = None + if batch.image_sizes is not None: + batch.image_sizes = None + return logits, speculative_logits + + # Copy inputs to the static inputs of the cuda graph + # Static inputs are potentially padded + cuda_graph["input_ids"][: input_ids.shape[0]] = input_ids + cuda_graph["position_ids"][: position_ids.shape[0]] = position_ids + cuda_graph["block_tables"][ + : block_tables.shape[0], : block_tables.shape[1] + ] = block_tables + cuda_graph["slots"].fill_(-1) + cuda_graph["slots"][: slots.shape[0]] = slots + cuda_graph["input_lengths"].zero_() + cuda_graph["input_lengths"][: input_lengths.shape[0]] = input_lengths + + # Replay the graph + cuda_graph["graph"].replay() + + # Slice output to the correct shape + speculative_logits = ( + cuda_graph["speculative_logits"][:bs] + if cuda_graph["speculative_logits"] is not None + else None + ) + logits = cuda_graph["logits"][:bs] + return logits, speculative_logits diff --git a/server/text_generation_server/server.py b/server/text_generation_server/server.py index d5adbd32..495c2c0c 100644 --- a/server/text_generation_server/server.py +++ b/server/text_generation_server/server.py @@ -13,6 +13,7 @@ from typing import List, Optional from text_generation_server.cache import Cache from text_generation_server.interceptor import ExceptionInterceptor from text_generation_server.models import Model, get_model +from text_generation_server.models.vlm_causal_lm import VlmCausalLMBatch from text_generation_server.pb import generate_pb2_grpc, generate_pb2 from text_generation_server.tracing import UDSOpenTelemetryAioServerInterceptor from text_generation_server.models.idefics_causal_lm import IdeficsCausalLMBatch @@ -78,13 +79,15 @@ class TextGenerationService(generate_pb2_grpc.TextGenerationServiceServicer): except ImportError: pass - if ( - self.model.batch_type == IdeficsCausalLMBatch - ): # Hack, i would rather use kwargs in the `from_pb` call - batch = self.model.batch_type.from_pb( + if self.model.batch_type in { + IdeficsCausalLMBatch, + VlmCausalLMBatch, + }: # Hack, i would rather use kwargs in the `from_pb` call + batch = self.model.batch_type.from_pb_processor( request.batch, self.model.tokenizer, self.model.processor, + self.model.model.config, self.model.dtype, self.model.device, ) @@ -100,13 +103,15 @@ class TextGenerationService(generate_pb2_grpc.TextGenerationServiceServicer): async def Prefill(self, request, context): start = time.time_ns() - if ( - self.model.batch_type == IdeficsCausalLMBatch - ): # Hack, i would rather use kwargs in the `from_pb` call - batch = self.model.batch_type.from_pb( + if self.model.batch_type in { + IdeficsCausalLMBatch, + VlmCausalLMBatch, + }: # Hack, i would rather use kwargs in the `from_pb` call + batch = self.model.batch_type.from_pb_processor( request.batch, self.model.tokenizer, self.model.processor, + self.model.model.config, self.model.dtype, self.model.device, ) From ad9d6288c843735df2c8a9f6c6289fed74268f38 Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Wed, 10 Apr 2024 17:20:25 +0200 Subject: [PATCH 12/74] fix: fix CohereForAI/c4ai-command-r-plus (#1707) @Narsil @drbh this will update flash attention v2 and vllm. You will need to re-install them. --- Dockerfile | 13 +- launcher/src/main.rs | 8 + router/src/infer.rs | 78 ++--- router/src/lib.rs | 27 +- server/Makefile | 3 - server/Makefile-flash-att-v2 | 2 +- server/Makefile-vllm | 4 +- .../models/cache_manager.py | 2 +- .../custom_modeling/flash_cohere_modeling.py | 188 ++++++++---- .../custom_modeling/flash_dbrx_modeling.py | 270 ++---------------- .../custom_modeling/flash_mixtral_modeling.py | 263 ++--------------- .../models/flash_causal_lm.py | 7 +- .../models/flash_cohere.py | 7 +- .../models/flash_mistral.py | 2 +- .../utils/flash_attn.py | 3 + server/text_generation_server/utils/layers.py | 9 +- .../utils/paged_attention.py | 15 +- 17 files changed, 281 insertions(+), 620 deletions(-) diff --git a/Dockerfile b/Dockerfile index e79372a3..0bc5f8d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -85,7 +85,7 @@ FROM pytorch-install as kernel-builder ARG MAX_JOBS=8 RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - ninja-build \ + ninja-build cmake \ && rm -rf /var/lib/apt/lists/* # Build Flash Attention CUDA kernels @@ -160,11 +160,6 @@ WORKDIR /usr/src COPY server/Makefile-selective-scan Makefile RUN make build-all -# Build megablocks -FROM kernel-builder as megablocks-builder - -RUN pip install git+https://github.com/OlivierDehaene/megablocks@181709df192de9a941fdf3a641cdc65a0462996e - # Text Generation Inference base image FROM nvidia/cuda:12.1.0-base-ubuntu22.04 as base @@ -186,8 +181,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins curl \ && rm -rf /var/lib/apt/lists/* -# Copy conda with PyTorch and Megablocks installed -COPY --from=megablocks-builder /opt/conda /opt/conda +# Copy conda with PyTorch installed +COPY --from=pytorch-install /opt/conda /opt/conda # Copy build artifacts from flash attention builder COPY --from=flash-att-builder /usr/src/flash-attention/build/lib.linux-x86_64-cpython-310 /opt/conda/lib/python3.10/site-packages @@ -215,7 +210,7 @@ COPY --from=vllm-builder /usr/src/vllm/build/lib.linux-x86_64-cpython-310 /opt/c COPY --from=mamba-builder /usr/src/mamba/build/lib.linux-x86_64-cpython-310/ /opt/conda/lib/python3.10/site-packages COPY --from=mamba-builder /usr/src/causal-conv1d/build/lib.linux-x86_64-cpython-310/ /opt/conda/lib/python3.10/site-packages -# Install flash-attention dependencies +# Install vllm/flash-attention dependencies RUN pip install einops --no-cache-dir # Install server diff --git a/launcher/src/main.rs b/launcher/src/main.rs index aef09433..3f810023 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -499,6 +499,9 @@ fn shard_manager( // Copy current process env let mut envs: Vec<(OsString, OsString)> = env::vars_os().collect(); + // Remove LOG_LEVEL if present + envs.retain(|(name, _)| name != "LOG_LEVEL"); + // Torch Distributed Env vars envs.push(("RANK".into(), rank.to_string().into())); envs.push(("WORLD_SIZE".into(), world_size.to_string().into())); @@ -586,6 +589,7 @@ fn shard_manager( tracing::info!("Starting shard"); let mut p = match Command::new("text-generation-server") .args(shard_args) + .env_clear() .envs(envs) .stdout(Stdio::piped()) .stderr(Stdio::piped()) @@ -824,6 +828,9 @@ fn download_convert_model(args: &Args, running: Arc) -> Result<(), L // Copy current process env let mut envs: Vec<(OsString, OsString)> = env::vars_os().collect(); + // Remove LOG_LEVEL if present + envs.retain(|(name, _)| name != "LOG_LEVEL"); + // Disable progress bar envs.push(("HF_HUB_DISABLE_PROGRESS_BARS".into(), "1".into())); @@ -858,6 +865,7 @@ fn download_convert_model(args: &Args, running: Arc) -> Result<(), L tracing::info!("Starting download process."); let mut download_process = match Command::new("text-generation-server") .args(download_args) + .env_clear() .envs(envs) .stdout(Stdio::piped()) .stderr(Stdio::piped()) diff --git a/router/src/infer.rs b/router/src/infer.rs index e5517511..075e76d8 100644 --- a/router/src/infer.rs +++ b/router/src/infer.rs @@ -1,8 +1,8 @@ /// Batching and inference logic use crate::validation::{Validation, ValidationError}; use crate::{ - ChatTemplateInputs, Entry, GenerateRequest, GenerateStreamResponse, HubTokenizerConfig, - Message, PrefillToken, Queue, Token, + ChatTemplateInputs, ChatTemplateVersions, Entry, GenerateRequest, GenerateStreamResponse, + HubTokenizerConfig, Message, PrefillToken, Queue, Token, }; use futures::future::try_join_all; use minijinja::{Environment, ErrorKind, Template}; @@ -86,7 +86,18 @@ impl Infer { let chat_template = tokenizer_config .chat_template - .map(|t| ChatTemplate::new(t, tokenizer_config.bos_token, tokenizer_config.eos_token)); + .and_then(|t| match t { + ChatTemplateVersions::Single(template) => Some(template), + ChatTemplateVersions::Multiple(templates) => templates + .into_iter() + .find(|t| t.name == "default") + .map(|t| t.template), + }) + .map(|t| { + // .strip() is not supported in minijinja + let t = t.replace(".strip()", " | trim"); + ChatTemplate::new(t, tokenizer_config.bos_token, tokenizer_config.eos_token) + }); // Inference limit with a semaphore let semaphore = Arc::new(Semaphore::new(max_concurrent_requests)); @@ -1099,7 +1110,7 @@ mod tests { ChatTemplateTestItem { name: "_base", chat_template: "{% for message in messages %}{{'<|im_start|>' + message['role'] + '\\n' + message['content'] + '<|im_end|>' + '\\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\\n' }}{% endif %}", - input: ChatTemplateInputs{ + input: ChatTemplateInputs { messages: example_chat.clone(), add_generation_prompt: false, bos_token: Some(""), @@ -1110,7 +1121,7 @@ mod tests { ChatTemplateTestItem { name: "blenderbot", chat_template: "{% for message in messages %}{% if message['role'] == 'user' %}{{ ' ' }}{% endif %}{{ message['content'] }}{% if not loop.last %}{{ ' ' }}{% endif %}{% endfor %}{{ eos_token }}", - input: ChatTemplateInputs{ + input: ChatTemplateInputs { messages: example_chat.clone(), add_generation_prompt: false, bos_token: Some(""), @@ -1121,7 +1132,7 @@ mod tests { ChatTemplateTestItem { name: "blenderbot_small", chat_template: "{% for message in messages %}{% if message['role'] == 'user' %}{{ ' ' }}{% endif %}{{ message['content'] }}{% if not loop.last %}{{ ' ' }}{% endif %}{% endfor %}{{ eos_token }}", - input: ChatTemplateInputs{ + input: ChatTemplateInputs { messages: example_chat.clone(), add_generation_prompt: false, bos_token: Some(""), @@ -1132,7 +1143,7 @@ mod tests { ChatTemplateTestItem { name: "bloom", chat_template: "{% for message in messages %}{{ message.content }}{{ eos_token }}{% endfor %}", - input: ChatTemplateInputs{ + input: ChatTemplateInputs { messages: example_chat.clone(), add_generation_prompt: false, bos_token: Some(""), @@ -1143,7 +1154,7 @@ mod tests { ChatTemplateTestItem { name: "gpt_neox", chat_template: "{% for message in messages %}{{ message.content }}{{ eos_token }}{% endfor %}", - input: ChatTemplateInputs{ + input: ChatTemplateInputs { messages: example_chat.clone(), add_generation_prompt: false, bos_token: Some(""), @@ -1154,38 +1165,37 @@ mod tests { ChatTemplateTestItem { name: "gpt2", chat_template: "{% for message in messages %}{{ message.content }}{{ eos_token }}{% endfor %}", - input: ChatTemplateInputs{ - messages: example_chat.clone(), - add_generation_prompt: false, - bos_token: Some(""), - eos_token: Some("<|endoftext|>"), + input: ChatTemplateInputs { + messages: example_chat.clone(), + add_generation_prompt: false, + bos_token: Some(""), + eos_token: Some("<|endoftext|>"), }, - target: "Hello, how are you?<|endoftext|>I'm doing great. How can I help you today?<|endoftext|>I'd like to show off how chat templating works!<|endoftext|>" + target: "Hello, how are you?<|endoftext|>I'm doing great. How can I help you today?<|endoftext|>I'd like to show off how chat templating works!<|endoftext|>", }, ChatTemplateTestItem { name: "llama", // NOTE: the `.strip()` has been replaced with `| trim` in the following template chat_template: "{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif USE_DEFAULT_PROMPT == true and not '<>' in messages[0]['content'] %}{% set loop_messages = messages %}{% set system_message = 'DEFAULT_SYSTEM_MESSAGE' %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<>\\n' + system_message + '\\n<>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ bos_token +'[INST] ' + content | trim + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<>\\n' + content | trim + '\\n<>\\n\\n' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content | trim + ' ' + eos_token }}{% endif %}{% endfor %}", - input: ChatTemplateInputs{ - messages: example_chat_with_system.clone(), - add_generation_prompt: true, - bos_token: Some(""), - eos_token: Some(""), + input: ChatTemplateInputs { + messages: example_chat_with_system.clone(), + add_generation_prompt: true, + bos_token: Some(""), + eos_token: Some(""), }, - target: "[INST] <>\nYou are a friendly chatbot who always responds in the style of a pirate\n<>\n\nHello, how are you? [/INST] I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]" + target: "[INST] <>\nYou are a friendly chatbot who always responds in the style of a pirate\n<>\n\nHello, how are you? [/INST] I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]", }, ChatTemplateTestItem { name: "whisper", chat_template: "{% for message in messages %}{{ message.content }}{{ eos_token }}{% endfor %}", - input: ChatTemplateInputs{ - messages: example_chat.clone(), - add_generation_prompt: true, - bos_token: Some(""), - eos_token: Some("<|endoftext|>"), + input: ChatTemplateInputs { + messages: example_chat.clone(), + add_generation_prompt: true, + bos_token: Some(""), + eos_token: Some("<|endoftext|>"), }, - target: "Hello, how are you?<|endoftext|>I'm doing great. How can I help you today?<|endoftext|>I'd like to show off how chat templating works!<|endoftext|>" - } - + target: "Hello, how are you?<|endoftext|>I'm doing great. How can I help you today?<|endoftext|>I'd like to show off how chat templating works!<|endoftext|>", + }, ]; #[allow(unused_variables)] // name is unused @@ -1211,7 +1221,7 @@ mod tests { messages: example_chat_with_system.clone(), add_generation_prompt: false, bos_token: Some(""), - eos_token: Some("") + eos_token: Some(""), }, target: "<|system|>\nYou are a friendly chatbot who always responds in the style of a pirate<|user|>\nHello, how are you?<|assistant|>\nI'm doing great. How can I help you today?<|user|>\nI'd like to show off how chat templating works!", }, @@ -1237,7 +1247,7 @@ mod tests { bos_token: Some(""), eos_token: Some(""), }, - target: "<|system|>\nYou are a friendly chatbot who always responds in the style of a pirate<|user|>\nHow many helicopters can a human eat in one sitting?<|assistant|>" + target: "<|system|>\nYou are a friendly chatbot who always responds in the style of a pirate<|user|>\nHow many helicopters can a human eat in one sitting?<|assistant|>", }, ChatTemplateTestItem { name: "HuggingFaceH4/zephyr-7b-gemma-v0.1", @@ -1259,7 +1269,7 @@ mod tests { bos_token: Some(""), eos_token: Some(""), }, - target: "[INST] Hello, how are you? [/INST]I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]" + target: "[INST] Hello, how are you? [/INST]I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]", }, ChatTemplateTestItem { name: "mistralai/Mixtral-8x7B-Instruct-v0.1", @@ -1276,7 +1286,7 @@ mod tests { name: "cognitivecomputations/dolphin-2.5-mixtral-8x7b", chat_template: "{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% for message in messages %}{{'<|im_start|>' + message['role'] + '\\n' + message['content'] + '<|im_end|>' + '\\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\\n' }}{% endif %}", input: ChatTemplateInputs { - messages: example_chat.clone(), + messages: example_chat.clone(), add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), @@ -1360,7 +1370,7 @@ mod tests { bos_token: Some(""), eos_token: Some(""), }, - target: "<|prompt|>Hello, how are you?<|answer|>I'm doing great. How can I help you today?<|prompt|>I'd like to show off how chat templating works!" + target: "<|prompt|>Hello, how are you?<|answer|>I'm doing great. How can I help you today?<|prompt|>I'd like to show off how chat templating works!", }, ChatTemplateTestItem { name: "internlm/internlm2-chat-7b", @@ -1443,7 +1453,7 @@ mod tests { eos_token: Some(""), }, target: "You are a friendly chatbot who always responds in the style of a pirateYou are a friendly chatbot who always responds in the style of a pirate### Instruction: Hello, how are you?### Response: I'm doing great. How can I help you today?### Instruction: I'd like to show off how chat templating works!", - } + }, ]; #[allow(unused_variables)] // name is unused diff --git a/router/src/lib.rs b/router/src/lib.rs index c787470b..2e412f1a 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -49,9 +49,22 @@ pub struct HubModelInfo { pub pipeline_tag: Option, } -#[derive(Clone, Deserialize, Default)] +#[derive(Debug, Clone, Deserialize, PartialEq)] +pub struct ChatTemplate { + name: String, + template: String, +} + +#[derive(Debug, Clone, Deserialize, PartialEq)] +#[serde(untagged)] +pub enum ChatTemplateVersions { + Single(String), + Multiple(Vec), +} + +#[derive(Debug, Clone, Deserialize, Default)] pub struct HubTokenizerConfig { - pub chat_template: Option, + pub chat_template: Option, pub completion_template: Option, #[serde(deserialize_with = "token_serde::deserialize")] pub bos_token: Option, @@ -978,7 +991,10 @@ mod tests { let config: HubTokenizerConfig = serde_json::from_str(json_content).unwrap(); // check that we successfully parsed the tokens - assert_eq!(config.chat_template, Some("test".to_string())); + assert_eq!( + config.chat_template, + Some(ChatTemplateVersions::Single("test".to_string())) + ); assert_eq!( config.bos_token, Some("<|begin▁of▁sentence|>".to_string()) @@ -1010,7 +1026,10 @@ mod tests { let config: HubTokenizerConfig = serde_json::from_str(json_content).unwrap(); // check that we successfully parsed the tokens - assert_eq!(config.chat_template, Some("test".to_string())); + assert_eq!( + config.chat_template, + Some(ChatTemplateVersions::Single("test".to_string())) + ); assert_eq!( config.bos_token, Some("<|begin▁of▁sentence|>".to_string()) diff --git a/server/Makefile b/server/Makefile index da5171b2..32d01709 100644 --- a/server/Makefile +++ b/server/Makefile @@ -17,9 +17,6 @@ gen-server: find text_generation_server/pb/ -type f -name "*.py" -print0 -exec sed -i -e 's/^\(import.*pb2\)/from . \1/g' {} \; touch text_generation_server/pb/__init__.py -install-megablocks: - pip install git+https://github.com/OlivierDehaene/megablocks@181709df192de9a941fdf3a641cdc65a0462996e - install: gen-server pip install pip --upgrade pip install -r requirements_cuda.txt diff --git a/server/Makefile-flash-att-v2 b/server/Makefile-flash-att-v2 index 71c6cabe..803b3d1f 100644 --- a/server/Makefile-flash-att-v2 +++ b/server/Makefile-flash-att-v2 @@ -1,4 +1,4 @@ -flash_att_v2_commit_cuda := 02ac572f3ffc4f402e4183aaa6824b45859d3ed3 +flash_att_v2_commit_cuda := 23e8fa5a263d1c7122bc46a86ef32030ee7130f9 flash_att_v2_commit_rocm := 8736558c287ff2ef28b24878e42828c595ac3e69 diff --git a/server/Makefile-vllm b/server/Makefile-vllm index c9c1d520..ada484a6 100644 --- a/server/Makefile-vllm +++ b/server/Makefile-vllm @@ -1,10 +1,10 @@ vllm-cuda: # Clone vllm pip install -U ninja packaging --no-cache-dir - git clone https://github.com/vllm-project/vllm.git vllm + git clone https://github.com/OlivierDehaene/vllm.git vllm build-vllm-cuda: vllm-cuda - cd vllm && git fetch && git checkout f8a1e39fae05ca610be8d5a78be9d40f5274e5fc + cd vllm && git fetch && git checkout 4bec8cee87f6bb8cebaec297029713cd2082e0b2 cd vllm && python setup.py build install-vllm-cuda: build-vllm-cuda diff --git a/server/text_generation_server/models/cache_manager.py b/server/text_generation_server/models/cache_manager.py index 2e6ae086..4be8b1b9 100644 --- a/server/text_generation_server/models/cache_manager.py +++ b/server/text_generation_server/models/cache_manager.py @@ -43,7 +43,7 @@ class CacheManager: ] self.free_block_mask = torch.ones(num_blocks, dtype=torch.int32, device="cpu") self.slots = torch.arange( - 0, num_blocks * self.block_size, dtype=torch.int32 + 0, num_blocks * self.block_size, dtype=torch.int64 ).view(num_blocks, self.block_size) def allocate( diff --git a/server/text_generation_server/models/custom_modeling/flash_cohere_modeling.py b/server/text_generation_server/models/custom_modeling/flash_cohere_modeling.py index 985bbd8e..56d9a966 100644 --- a/server/text_generation_server/models/custom_modeling/flash_cohere_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_cohere_modeling.py @@ -23,10 +23,10 @@ import torch.distributed from torch import nn from transformers.activations import ACT2FN -from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn +from text_generation_server.utils.import_utils import IS_ROCM_SYSTEM, IS_CUDA_SYSTEM from text_generation_server.utils.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, @@ -34,65 +34,106 @@ from text_generation_server.utils.layers import ( PositionRotaryEmbedding, SpeculativeHead, get_linear, - FastRMSNorm, + FastLayerNorm, ) +if IS_CUDA_SYSTEM: + import dropout_layer_norm +else: + dropout_layer_norm = None -class CohereConfig(PretrainedConfig): - def __init__( + +class CohereRotary(PositionRotaryEmbedding): + def forward( self, - vocab_size=256000, - hidden_size=8192, - intermediate_size=22528, - num_hidden_layers=40, - num_attention_heads=64, - num_key_value_heads=None, - hidden_act="silu", - max_position_embeddings=8192, - initializer_range=0.02, - layer_norm_eps=1e-5, - use_cache=True, - pad_token_id=0, - bos_token_id=5, - eos_token_id=255001, - pretraining_tp=1, - tie_word_embeddings=True, - rope_theta=10000.0, - attention_bias=False, - attention_dropout=0.0, - logit_scale=1.0, - **kwargs, + query: torch.Tensor, + key: torch.Tensor, + cos: torch.Tensor, + sin: torch.Tensor, ): - self.vocab_size = vocab_size - self.max_position_embeddings = max_position_embeddings - self.hidden_size = hidden_size - self.intermediate_size = intermediate_size - self.num_hidden_layers = num_hidden_layers - self.num_attention_heads = num_attention_heads + # Such controlflows may add some overhead. + if IS_CUDA_SYSTEM: + import rotary_emb - # for backward compatibility - if num_key_value_heads is None: - num_key_value_heads = num_attention_heads + q1 = query[..., ::2] + q2 = query[..., 1::2] - self.num_key_value_heads = num_key_value_heads - self.hidden_act = hidden_act - self.initializer_range = initializer_range - self.layer_norm_eps = layer_norm_eps - self.pretraining_tp = pretraining_tp - self.use_cache = use_cache - self.rope_theta = rope_theta - self.attention_bias = attention_bias - self.attention_dropout = attention_dropout - self.logit_scale = logit_scale + rotary_emb.apply_rotary(q1, q2, cos, sin, q1, q2, False) - super().__init__( - pad_token_id=pad_token_id, - bos_token_id=bos_token_id, - eos_token_id=eos_token_id, - tie_word_embeddings=tie_word_embeddings, - **kwargs, + k1 = key[..., ::2] + k2 = key[..., 1::2] + + rotary_emb.apply_rotary(k1, k2, cos, sin, k1, k2, False) + elif IS_ROCM_SYSTEM: + from vllm import pos_encoding_ops + + # NOTE: On RoCm systems, we use a ROPE implementatation adapted from VLLM which launches a single kernel for both query/key, contrary to flash-attn implementation used on NVIDIA systems. + # Compiling flash-attn rotary on RoCm, it appears hipcc is unable to unroll loops, resulting in an even slower inference compared to eager: https://github.com/pytorch/pytorch/issues/113773 + + head_size = query.shape[-1] + + # Inplace operation, updating query and key. + pos_encoding_ops.rotary_embedding(query, key, head_size, cos, sin, False) + else: + raise ValueError( + "Your system seem to be not supported. Please check your install or open an issue at https://github.com/huggingface/text-generation-inference/issues with a clear reproduction." + ) + + +class CohereLayerNorm(nn.Module): + def __init__(self, prefix, weights, eps): + super().__init__() + weight = weights.get_sharded(f"{prefix}.weight", dim=0) + self.weight = nn.Parameter(weight) + # Fake weights + self.ones = weight.new_ones(weight.shape[1]) + self.eps = eps + + def forward(self, hidden_states): + if hidden_states.shape[-1] > 8192 or IS_ROCM_SYSTEM: + hidden_states = hidden_states.reshape( + -1, self.weight.shape[0], self.weight.shape[1] + ) + input_dtype = hidden_states.dtype + hidden_states = hidden_states.to(torch.float32) + mean = hidden_states.mean(-1, keepdim=True) + hidden_states_minus_mean = hidden_states - mean + variance = hidden_states_minus_mean.pow(2).mean(-1, keepdim=True) + hidden_states = hidden_states_minus_mean * torch.rsqrt(variance + self.eps) + hidden_states = self.weight.to(torch.float32) * hidden_states + hidden_states = hidden_states.view(-1, self.weight.shape[1]) + return hidden_states.to(input_dtype) + + ( + hidden_states, + *rest, + ) = dropout_layer_norm.dropout_add_ln_fwd( + hidden_states, + None, + self.ones, + None, + None, + None, + None, + None, + 0.0, + self.eps, + 1.0, + 0, + None, + False, + False, ) + # Required to apply one weight matrix per head + hidden_states = hidden_states.view( + -1, self.weight.shape[0], self.weight.shape[1] + ) + hidden_states = self.weight * hidden_states + hidden_states = hidden_states.view(-1, self.weight.shape[1]) + + return hidden_states + def load_attention(config, prefix, weights): if config.num_attention_heads != config.num_key_value_heads: @@ -154,7 +195,7 @@ class FlashCohereAttention(torch.nn.Module): self.hidden_size = config.hidden_size self.head_size = self.hidden_size // self.num_heads - self.rotary_emb = PositionRotaryEmbedding.static( + self.rotary_emb = CohereRotary.static( config=config, dim=self.head_size, base=config.rope_theta, @@ -175,6 +216,22 @@ class FlashCohereAttention(torch.nn.Module): self.query_key_value = load_attention(config, prefix, weights) + self.use_qk_norm = config.use_qk_norm + if self.use_qk_norm: + self.q_norm = CohereLayerNorm( + prefix=f"{prefix}.q_norm", + weights=weights, + eps=config.layer_norm_eps, + ) + self.k_norm = CohereLayerNorm( + prefix=f"{prefix}.k_norm", + weights=weights, + eps=config.layer_norm_eps, + ) + else: + self.q_norm = None + self.k_norm = None + self.o_proj = TensorParallelRowLinear.load( config, prefix=f"{prefix}.o_proj", @@ -199,21 +256,28 @@ class FlashCohereAttention(torch.nn.Module): max_s, ): qkv = self.query_key_value(hidden_states) - query, kv = qkv.split( + query, key, value = qkv.split( [ self.head_size * self.num_heads, - 2 * self.head_size * self.num_key_value_heads, + self.head_size * self.num_key_value_heads, + self.head_size * self.num_key_value_heads, ], dim=1, ) + + if self.use_qk_norm: + query = query.reshape(-1, self.head_size) + key = key.reshape(-1, self.head_size) + query = self.q_norm(query.contiguous()) + key = self.k_norm(key.contiguous()) + query = query.view(-1, self.num_heads, self.head_size) - kv = kv.view(-1, 2, self.num_key_value_heads, self.head_size) + key = key.view(-1, self.num_key_value_heads, self.head_size) + value = value.view(-1, self.num_key_value_heads, self.head_size) - self.rotary_emb(query, torch.select(kv, dim=1, index=0), cos, sin) + self.rotary_emb(query, key, cos, sin) - paged_attention.reshape_and_cache( - kv[:, 0], kv[:, 1], kv_cache[0], kv_cache[1], slots - ) + paged_attention.reshape_and_cache(key, value, kv_cache[0], kv_cache[1], slots) # output tensor attn_output = torch.empty_like(query) @@ -223,8 +287,8 @@ class FlashCohereAttention(torch.nn.Module): # flash attention flash_attn.attention( query, - torch.select(kv, dim=1, index=0), - torch.select(kv, dim=1, index=1), + key, + value, attn_output, cu_seqlen_prefill, max_s, @@ -298,7 +362,7 @@ class FlashCohereLayer(nn.Module): ) self.mlp = CohereMLP(prefix=f"{prefix}.mlp", config=config, weights=weights) - self.input_layernorm = FastRMSNorm.load( + self.input_layernorm = FastLayerNorm.load_no_bias( prefix=f"{prefix}.input_layernorm", weights=weights, eps=config.layer_norm_eps, @@ -362,7 +426,7 @@ class FlashCohereModel(torch.nn.Module): for layer_id in range(config.num_hidden_layers) ] ) - self.norm = FastRMSNorm.load( + self.norm = FastLayerNorm.load_no_bias( prefix="model.norm", weights=weights, eps=config.layer_norm_eps ) diff --git a/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py b/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py index dd0bcca5..d04ce39e 100644 --- a/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py @@ -16,14 +16,13 @@ import torch import torch.distributed -import numpy as np - from torch import nn from transformers.activations import ACT2FN from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple, Any from loguru import logger +from vllm.model_executor.layers.fused_moe import fused_moe from text_generation_server.utils import paged_attention, flash_attn from text_generation_server.utils.layers import ( FastLinear, @@ -37,14 +36,6 @@ from text_generation_server.utils.layers import ( ) from text_generation_server.utils.log import log_once -HAS_MEGABLOCKS = True -try: - import stk - import megablocks.ops as ops -except ImportError: - logger.warning("Dbrx: megablocks is not installed") - HAS_MEGABLOCKS = False - class DbrxAttentionConfig(PretrainedConfig): def __init__( @@ -531,18 +522,6 @@ def round_up(x: torch.Tensor, value: int): class BlockSparseMoE(nn.Module): - """ - Built on the paper and library Megablocks as described in - https://arxiv.org/abs/2211.15841. This implementation is - strictly equivalent to standard MoE with full capacity (no - dropped tokens). It's faster since it formulates MoE operations - in terms of block-sparse operations to accomodate imbalanced - assignments of tokens to experts, whereas standard MoE either - (1) drop tokens at the cost of reduced performance or (2) set - capacity factor to number of experts and thus waste computation - and memory on padding. - """ - def __init__(self, prefix, config: DbrxConfig, weights): super().__init__() self.moe_normalize_expert_weights = ( @@ -572,241 +551,40 @@ class BlockSparseMoE(nn.Module): ) # merged expert weights, all of size (n_experts * ffn_dim, hidden_dim) - self.w1 = _load_experts(config, f"{prefix}.experts.mlp.w1", weights) - self.w2 = _load_experts(config, f"{prefix}.experts.mlp.w2", weights) - self.v1 = _load_experts(config, f"{prefix}.experts.mlp.v1", weights) - - self.offsets = None - self.offsets_block_rows = 0 + w1 = _load_experts(config, f"{prefix}.experts.mlp.w1", weights).view( + self.num_experts, self.ffn_dim, self.hidden_dim + ) + v1 = _load_experts(config, f"{prefix}.experts.mlp.v1", weights).view( + self.num_experts, self.ffn_dim, self.hidden_dim + ) + self.wv1 = torch.cat([w1, v1], dim=1) + self.w2 = ( + _load_experts(config, f"{prefix}.experts.mlp.w2", weights) + .view(self.num_experts, self.ffn_dim, self.hidden_dim) + .transpose(1, 2) + .contiguous() + ) self.process_group = weights.process_group - # Calculate the number of bits needed to represent the expert indices - # so that we can pass it to radix sort. - self.sort_end_bit = max(int(np.ceil(np.log2(self.num_experts))), 1) - self.blocking = 128 - self.quantize_scatter_num_bits = -1 - - def topology(self, x: torch.Tensor, padded_bins: torch.Tensor): - padded_tokens, _ = x.size() - assert padded_tokens % self.blocking == 0 - assert self.ffn_dim % self.blocking == 0 - - # Offsets for the sparse matrix. All rows have the - # same number of nonzero blocks dictated by the - # dimensionality of a single expert. - block_rows = padded_tokens // self.blocking - blocks_per_row = self.ffn_dim // self.blocking - if self.offsets is None or block_rows > self.offsets_block_rows: - self.offsets = torch.arange( - 0, - block_rows * blocks_per_row + 1, - blocks_per_row, - dtype=torch.int32, - device=x.device, - ) - self.offsets_block_rows = block_rows - offsets = self.offsets - else: - offsets = self.offsets[: block_rows + 1] - - # Indices for the sparse matrix. The indices for - # the intermediate matrix are dynamic depending - # on the mapping of tokens to experts. - column_indices = ops.topology( - padded_bins, self.blocking, block_rows, blocks_per_row - ) - - # For now, use meta init to save the device memory. - data = torch.empty( - column_indices.numel(), - self.blocking, - self.blocking, - dtype=x.dtype, - device="meta", - ) - shape = (padded_tokens, self.ffn_dim * self.num_experts) - row_indices = stk.ops.row_indices(shape, data, offsets, column_indices) - return stk.Matrix( - shape, - data, - row_indices, - column_indices, - offsets, - False, - False, - False, - ) - - def indices_and_padded_bins(self, selected_experts: torch.Tensor): - # Sort the expert ids to produce the scatter/gather - # indices for the permutation. - # selected_experts = selected_experts.int() - - # returns bin_ids == num of experts for this sequence ? == unique selected experts? - # and indices == how to sort tokens? - bin_ids, indices = ops.sort(selected_experts, self.sort_end_bit) - # bin_ids => [0, 0, 0, 2, 2, ...] => [num_tokens * top_k] - # indices => [14, 32, 33, ...] => [num_tokens * top_k] - - # Histogram the expert ids to identify the number of - # tokens routed to each expert. - tokens_per_expert = ops.histogram(selected_experts, self.num_experts) - # tokens_per_expert => [3, 0, 2, ...] => [num_experts] - - # Round the token counts up to the block size used in - # the matrix muliplications. Caculate the starting - # position of each bin. - - # List of size num_experts - padded_tokens_per_expert = round_up(tokens_per_expert, self.blocking) - # padded_tokens_per_expert => [128, O, 128, ...] - - # Cumulative selected experts per token - padded_bins = ops.inclusive_cumsum(padded_tokens_per_expert, 0) - padded_bins = promote_scalar(padded_bins) - # padded_bins => [128, 128, 256, ...] - - # Calculate the bin bounds for the sorted tokens. - bins = ops.inclusive_cumsum(tokens_per_expert, 0) - bins = promote_scalar(bins) - # bins => [3, 3, 5, ...] - - return indices, bin_ids, bins, padded_bins, tokens_per_expert - - def sparse_forward(self, x: torch.Tensor) -> torch.Tensor: - """ - x: (sequence_length, model_dim) - gate_logits: (sequence_length, n_experts) - """ - # optional reshape - input_shape = x.shape - x = x.view(-1, input_shape[-1]) - - # gate_logits: (sequence_length, n_experts) - gate_logits = self.gate(x) - selected_experts, weights = select_experts( - gate_logits, self.top_k, self.moe_normalize_expert_weights - ) - - ( - indices, - bin_ids, - bins, - padded_bins, - _, - ) = self.indices_and_padded_bins(selected_experts) - - # Permute tokens and pad to prepare expert computation - # (top_k * sequence_length + padding, model_dim) - x = ops.padded_gather(x, indices, bin_ids, bins, padded_bins, self.top_k) - - # Create the sparse matrix topology - with torch.no_grad(): - topo = self.topology(x, padded_bins) - - # Perform the expert computation - # First Dense x Dense -> Sparse for w1 and v1, - # (top_k * sequence_length + padding, ffn_dim * n_experts) - x = stk.Matrix( - topo.size(), - self.act(stk.ops.sdd(x, self.w1.t(), topo).data) - * stk.ops.sdd(x, self.v1.t(), topo).data, - topo.row_indices, - topo.column_indices, - topo.offsets, - topo.column_indices_t, - topo.offsets_t, - topo.block_offsets_t, - ) - - # Then Sparse x Dense -> Dense for w2 - # (top_k * sequence_length + padding, model_dim) - x = stk.ops.dsd(x, self.w2) - - # Permute back and remove padding - # (sequence_length, model_dim) - x = ops.padded_scatter( + def forward(self, x: torch.Tensor) -> torch.Tensor: + # router_logits: (num_tokens, n_experts) + router_logits = self.gate(x) + out = fused_moe( x, - indices, - bin_ids, - weights, - bins, - padded_bins, + self.wv1, + self.w2, + router_logits, self.top_k, - self.quantize_scatter_num_bits, - ).view(*input_shape) - - if self.process_group.size() > 1: - torch.distributed.all_reduce(x, group=self.process_group) - - return x.view(*input_shape) - - def dense_forward(self, x: torch.Tensor) -> torch.Tensor: - """ - x: (sequence_length, model_dim) - gate_logits: (sequence_length, n_experts) - """ - # optional reshape - input_shape = x.shape - x = x.view(-1, input_shape[-1]) - - # gate_logits: (sequence_length, n_experts) - gate_logits = self.gate(x) - # all_probs: (sequence_length, n_experts) and upcast for softmax - weights = torch.nn.functional.softmax(gate_logits, dim=1, dtype=torch.float) - - if self.top_k < self.num_experts: - _, not_selected_experts = torch.topk( - weights, - self.num_experts - self.top_k, - largest=False, - sorted=False, - dim=1, - ) - # Mask not selected experts - weights.scatter_(1, not_selected_experts, 0) - - # Re-normalize - if self.moe_normalize_expert_weights: - weights = weights / torch.norm( - weights, p=self.moe_normalize_expert_weights, dim=-1, keepdim=True - ) - weights = weights.to(x.dtype) - - # Expand to [num_experts, sequence_length, model_dim] - x = x.view(1, -1, input_shape[-1]).expand(self.num_experts, -1, input_shape[-1]) - - # Permute to [num_experts, model_dim, ffn_dim] - w1 = self.w1.view(self.num_experts, self.ffn_dim, self.hidden_dim).permute( - 0, 2, 1 + renormalize=self.moe_normalize_expert_weights, + inplace=True, ) - v1 = self.v1.view(self.num_experts, self.ffn_dim, self.hidden_dim).permute( - 0, 2, 1 - ) - - inter = self.act(torch.bmm(x, w1)) * torch.bmm(x, v1) - - out = torch.bmm( - inter, self.w2.view(self.num_experts, self.ffn_dim, self.hidden_dim) - ) - # Mask not selected experts - out *= weights.t().view(self.num_experts, -1, 1) - - # Sum experts - out = out.sum(0) # Reduce sum if self.process_group.size() > 1: torch.distributed.all_reduce(out, group=self.process_group) - return out - - def forward(self, x: torch.Tensor) -> torch.Tensor: - if len(x) > 256 and HAS_MEGABLOCKS: - return self.sparse_forward(x) - # This is faster when there is not a lot of tokens - return self.dense_forward(x) + return out.view(*x.shape) class DenseMoE(nn.Module): diff --git a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py index d71a3f0c..89eb8f43 100644 --- a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py @@ -24,6 +24,7 @@ import torch.distributed import numpy as np from torch import nn +from vllm.model_executor.layers.fused_moe import fused_moe from transformers.activations import ACT2FN from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple @@ -41,14 +42,6 @@ from text_generation_server.utils.layers import ( get_linear, ) -HAS_MEGABLOCKS = True -try: - import stk - import megablocks.ops as ops -except ImportError: - logger.warning("Mixtral: megablocks is not installed") - HAS_MEGABLOCKS = False - class MixtralConfig(PretrainedConfig): model_type = "mixtral" @@ -321,18 +314,6 @@ def round_up(x: torch.Tensor, value: int): class BlockSparseMoE(nn.Module): - """ - Built on the paper and library Megablocks as described in - https://arxiv.org/abs/2211.15841. This implementation is - strictly equivalent to standard MoE with full capacity (no - dropped tokens). It's faster since it formulates MoE operations - in terms of block-sparse operations to accomodate imbalanced - assignments of tokens to experts, whereas standard MoE either - (1) drop tokens at the cost of reduced performance or (2) set - capacity factor to number of experts and thus waste computation - and memory on padding. - """ - def __init__(self, prefix, config: MixtralConfig, weights): super().__init__() self.hidden_dim = config.hidden_size @@ -357,236 +338,40 @@ class BlockSparseMoE(nn.Module): self.gate = FastLinear.load(config, f"{prefix}.gate", weights, bias=False) # merged expert weights, all of size (n_experts * ffn_dim, hidden_dim) - self.w1 = _load_experts(config, f"{prefix}.experts", "w1", weights) - self.w2 = _load_experts(config, f"{prefix}.experts", "w2", weights) - self.w3 = _load_experts(config, f"{prefix}.experts", "w3", weights) - - self.offsets = None - self.offsets_block_rows = 0 + w1 = _load_experts(config, f"{prefix}.experts", "w1", weights).view( + self.num_experts, self.ffn_dim, self.hidden_dim + ) + w3 = _load_experts(config, f"{prefix}.experts", "w3", weights).view( + self.num_experts, self.ffn_dim, self.hidden_dim + ) + self.w13 = torch.cat([w1, w3], dim=1) + self.w2 = ( + _load_experts(config, f"{prefix}.experts", "w2", weights) + .view(self.num_experts, self.ffn_dim, self.hidden_dim) + .transpose(1, 2) + .contiguous() + ) self.process_group = weights.process_group - # Calculate the number of bits needed to represent the expert indices - # so that we can pass it to radix sort. - self.sort_end_bit = max(int(np.ceil(np.log2(self.num_experts))), 1) - self.blocking = 128 - self.quantize_scatter_num_bits = -1 - - def topology(self, x: torch.Tensor, padded_bins: torch.Tensor): - padded_tokens, _ = x.size() - assert padded_tokens % self.blocking == 0 - assert self.ffn_dim % self.blocking == 0 - - # Offsets for the sparse matrix. All rows have the - # same number of nonzero blocks dictated by the - # dimensionality of a single expert. - block_rows = padded_tokens // self.blocking - blocks_per_row = self.ffn_dim // self.blocking - if self.offsets is None or block_rows > self.offsets_block_rows: - self.offsets = torch.arange( - 0, - block_rows * blocks_per_row + 1, - blocks_per_row, - dtype=torch.int32, - device=x.device, - ) - self.offsets_block_rows = block_rows - offsets = self.offsets - else: - offsets = self.offsets[: block_rows + 1] - - # Indices for the sparse matrix. The indices for - # the intermediate matrix are dynamic depending - # on the mapping of tokens to experts. - column_indices = ops.topology( - padded_bins, self.blocking, block_rows, blocks_per_row - ) - - # For now, use meta init to save the device memory. - data = torch.empty( - column_indices.numel(), - self.blocking, - self.blocking, - dtype=x.dtype, - device="meta", - ) - shape = (padded_tokens, self.ffn_dim * self.num_experts) - row_indices = stk.ops.row_indices(shape, data, offsets, column_indices) - return stk.Matrix( - shape, - data, - row_indices, - column_indices, - offsets, - False, - False, - False, - ) - - def indices_and_padded_bins(self, selected_experts: torch.Tensor): - # Sort the expert ids to produce the scatter/gather - # indices for the permutation. - # selected_experts = selected_experts.int() - - # returns bin_ids == num of experts for this sequence ? == unique selected experts? - # and indices == how to sort tokens? - bin_ids, indices = ops.sort(selected_experts, self.sort_end_bit) - # bin_ids => [0, 0, 0, 2, 2, ...] => [num_tokens * top_k] - # indices => [14, 32, 33, ...] => [num_tokens * top_k] - - # Histogram the expert ids to identify the number of - # tokens routed to each expert. - tokens_per_expert = ops.histogram(selected_experts, self.num_experts) - # tokens_per_expert => [3, 0, 2, ...] => [num_experts] - - # Round the token counts up to the block size used in - # the matrix muliplications. Caculate the starting - # position of each bin. - - # List of size num_experts - padded_tokens_per_expert = round_up(tokens_per_expert, self.blocking) - # padded_tokens_per_expert => [128, O, 128, ...] - - # Cumulative selected experts per token - padded_bins = ops.inclusive_cumsum(padded_tokens_per_expert, 0) - padded_bins = promote_scalar(padded_bins) - # padded_bins => [128, 128, 256, ...] - - # Calculate the bin bounds for the sorted tokens. - bins = ops.inclusive_cumsum(tokens_per_expert, 0) - bins = promote_scalar(bins) - # bins => [3, 3, 5, ...] - - return indices, bin_ids, bins, padded_bins, tokens_per_expert - - def sparse_forward(self, x: torch.Tensor) -> torch.Tensor: - """ - x: (sequence_length, model_dim) - gate_logits: (sequence_length, n_experts) - """ - # optional reshape - input_shape = x.shape - x = x.view(-1, input_shape[-1]) - - # gate_logits: (sequence_length, n_experts) - gate_logits = self.gate(x) - selected_experts, weights = select_experts(gate_logits, self.top_k) - - ( - indices, - bin_ids, - bins, - padded_bins, - _, - ) = self.indices_and_padded_bins(selected_experts) - - # Permute tokens and pad to prepare expert computation - # (top_k * sequence_length + padding, model_dim) - x = ops.padded_gather(x, indices, bin_ids, bins, padded_bins, self.top_k) - - # Create the sparse matrix topology - with torch.no_grad(): - topo = self.topology(x, padded_bins) - - # Perform the expert computation - # First Dense x Dense -> Sparse for w1 and w3, - # (top_k * sequence_length + padding, ffn_dim * n_experts) - x = stk.Matrix( - topo.size(), - self.act(stk.ops.sdd(x, self.w1.t(), topo).data) - * stk.ops.sdd(x, self.w3.t(), topo).data, - topo.row_indices, - topo.column_indices, - topo.offsets, - topo.column_indices_t, - topo.offsets_t, - topo.block_offsets_t, - ) - - # Then Sparse x Dense -> Dense for w2 - # (top_k * sequence_length + padding, model_dim) - x = stk.ops.dsd(x, self.w2) - - # Permute back and remove padding - # (sequence_length, model_dim) - x = ops.padded_scatter( + def forward(self, x: torch.Tensor) -> torch.Tensor: + # router_logits: (num_tokens, n_experts) + router_logits = self.gate(x) + out = fused_moe( x, - indices, - bin_ids, - weights, - bins, - padded_bins, + self.w13, + self.w2, + router_logits, self.top_k, - self.quantize_scatter_num_bits, - ).view(*input_shape) - - if self.process_group.size() > 1: - torch.distributed.all_reduce(x, group=self.process_group) - - return x.view(*input_shape) - - def dense_forward(self, x: torch.Tensor) -> torch.Tensor: - """ - x: (sequence_length, model_dim) - gate_logits: (sequence_length, n_experts) - """ - # optional reshape - input_shape = x.shape - x = x.view(-1, input_shape[-1]) - - # gate_logits: (sequence_length, n_experts) - gate_logits = self.gate(x) - # all_probs: (sequence_length, n_experts) and upcast for softmax - all_probs = torch.nn.functional.softmax(gate_logits, dim=1, dtype=torch.float) - - if self.top_k < self.num_experts: - _, not_selected_experts = torch.topk( - all_probs, - self.num_experts - self.top_k, - largest=False, - sorted=False, - dim=1, - ) - # Mask not selected experts - all_probs.scatter_(1, not_selected_experts, 0) - - # Re-normalize - weights = all_probs / all_probs.sum(dim=1, keepdim=True) - weights = weights.to(x.dtype) - - # Expand to [num_experts, sequence_length, model_dim] - x = x.view(1, -1, input_shape[-1]).expand(self.num_experts, -1, input_shape[-1]) - - # Permute to [num_experts, model_dim, ffn_dim] - w1 = self.w1.view(self.num_experts, self.ffn_dim, self.hidden_dim).permute( - 0, 2, 1 + renormalize=True, + inplace=True, ) - w3 = self.w3.view(self.num_experts, self.ffn_dim, self.hidden_dim).permute( - 0, 2, 1 - ) - - inter = self.act(torch.bmm(x, w1)) * torch.bmm(x, w3) - - out = torch.bmm( - inter, self.w2.view(self.num_experts, self.ffn_dim, self.hidden_dim) - ) - # Mask not selected experts - out *= weights.t().view(self.num_experts, -1, 1) - - # Sum experts - out = out.sum(0) # Reduce sum if self.process_group.size() > 1: torch.distributed.all_reduce(out, group=self.process_group) - return out - - def forward(self, x: torch.Tensor) -> torch.Tensor: - if len(x) > 256 and HAS_MEGABLOCKS: - return self.sparse_forward(x) - # This is faster when there is not a lot of tokens - return self.dense_forward(x) + return out.view(*x.shape) class DenseMoE(nn.Module): diff --git a/server/text_generation_server/models/flash_causal_lm.py b/server/text_generation_server/models/flash_causal_lm.py index be513511..2a9d3914 100644 --- a/server/text_generation_server/models/flash_causal_lm.py +++ b/server/text_generation_server/models/flash_causal_lm.py @@ -169,6 +169,11 @@ class FlashCausalLMBatch(Batch): requests_idx_mapping[r.id] = i tokenized_input = tokenized_input[-r.truncate :] + if ( + tokenized_input[0] == tokenizer.bos_token_id + and tokenized_input[1] == tokenizer.bos_token_id + ): + tokenized_input = tokenized_input[1:] input_length = len(tokenized_input) input_lengths.append(input_length) @@ -694,7 +699,7 @@ class FlashCausalLM(Model): def cuda_graph_warmup(self, bs: int, max_s: int, max_bt: int): input_ids = torch.zeros(bs, dtype=torch.int64, device=self.device) position_ids = torch.zeros(bs, dtype=torch.int32, device=self.device) - slots = torch.arange(bs, dtype=torch.int32, device=self.device) + slots = torch.arange(bs, dtype=torch.int64, device=self.device) input_lengths = torch.ones(bs, dtype=torch.int32, device=self.device) * max_s block_tables = ( torch.arange(max_bt, dtype=torch.int32, device=self.device) diff --git a/server/text_generation_server/models/flash_cohere.py b/server/text_generation_server/models/flash_cohere.py index 181a93b1..f85c7722 100644 --- a/server/text_generation_server/models/flash_cohere.py +++ b/server/text_generation_server/models/flash_cohere.py @@ -3,12 +3,11 @@ import torch.distributed from opentelemetry import trace from typing import Optional -from transformers import AutoTokenizer +from transformers import AutoTokenizer, AutoConfig from text_generation_server.models import FlashCausalLM from text_generation_server.models.custom_modeling.flash_cohere_modeling import ( FlashCohereForCausalLM, - CohereConfig, ) from text_generation_server.utils import ( initialize_torch_distributed, @@ -32,7 +31,7 @@ class FlashCohere(FlashCausalLM): self.process_group, rank, world_size = initialize_torch_distributed() if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") - dtype = torch.bfloat16 if dtype is None else dtype + dtype = torch.float16 if dtype is None else dtype else: raise NotImplementedError("FlashCohere is only available on GPU") @@ -46,7 +45,7 @@ class FlashCohere(FlashCausalLM): from_slow=False, ) - config = CohereConfig.from_pretrained( + config = AutoConfig.from_pretrained( model_id, revision=revision, trust_remote_code=trust_remote_code ) config.quantize = quantize diff --git a/server/text_generation_server/models/flash_mistral.py b/server/text_generation_server/models/flash_mistral.py index 575dbba0..ace7ea8e 100644 --- a/server/text_generation_server/models/flash_mistral.py +++ b/server/text_generation_server/models/flash_mistral.py @@ -385,7 +385,7 @@ class BaseFlashMistral(FlashCausalLM): def cuda_graph_warmup(self, bs: int, max_s: int, max_bt: int): input_ids = torch.zeros(bs, dtype=torch.int64, device=self.device) position_ids = torch.zeros(bs, dtype=torch.int32, device=self.device) - slots = torch.arange(bs, dtype=torch.int32, device=self.device) + slots = torch.arange(bs, dtype=torch.int64, device=self.device) input_lengths = torch.ones(bs, dtype=torch.int32, device=self.device) * max_s block_tables = ( torch.arange(max_bt, dtype=torch.int32, device=self.device) diff --git a/server/text_generation_server/utils/flash_attn.py b/server/text_generation_server/utils/flash_attn.py index 48f8ef70..45090c64 100644 --- a/server/text_generation_server/utils/flash_attn.py +++ b/server/text_generation_server/utils/flash_attn.py @@ -88,6 +88,9 @@ def attention( out, cu_seqlens, cu_seqlens, + None, + None, + None, max_s, max_s, 0.0, diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index 209f1c8a..f29e55c5 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -19,7 +19,6 @@ from accelerate import init_empty_weights from text_generation_server.utils.gptq.quant_linear import QuantLinear from text_generation_server.utils.import_utils import IS_CUDA_SYSTEM, IS_ROCM_SYSTEM -from text_generation_server.utils.log import log_once HAS_AWQ = True try: @@ -35,12 +34,6 @@ except Exception: HAS_EXLLAMA = False CAN_EXLLAMA = major >= 8 or IS_ROCM_SYSTEM V2 = os.getenv("EXLLAMA_VERSION", "2") == "2" -# if V2 and int(os.getenv("WORLD_SIZE", "1")) > 1: -# V2 = False -# log_once( -# logger.warning, -# "Disabling exllama v2 and using v1 instead because there are issues when sharding", -# ) if os.getenv("DISABLE_EXLLAMA") == "True": HAS_EXLLAMA = False @@ -174,6 +167,8 @@ class EETQLinear(nn.Module): ) -> None: super().__init__() device = weight.device + if weight.dtype != torch.float16: + weight = weight.to(dtype=torch.float16) weight = torch.t(weight).contiguous().cpu() weight, scale = quant_weights(weight, torch.int8, False) diff --git a/server/text_generation_server/utils/paged_attention.py b/server/text_generation_server/utils/paged_attention.py index 4b12744c..18e605b0 100644 --- a/server/text_generation_server/utils/paged_attention.py +++ b/server/text_generation_server/utils/paged_attention.py @@ -1,8 +1,7 @@ import torch # vllm imports -from vllm import cache_ops -from vllm import attention_ops +from vllm._C import cache_ops, ops _PARTITION_SIZE = 512 @@ -14,7 +13,7 @@ def reshape_and_cache( value_cache: torch.Tensor, slots: torch.Tensor, ): - cache_ops.reshape_and_cache(key, value, key_cache, value_cache, slots) + cache_ops.reshape_and_cache(key, value, key_cache, value_cache, slots, "auto", 1.0) def attention( @@ -54,9 +53,9 @@ def attention( # V1 to avoid the overhead of reduction. Also, if the number of # sequences or heads is large, we use V1 since there is enough work # to parallelize. - use_v1 = max_num_partitions == 1 or num_seqs * num_heads > 512 + use_v1 = max_s <= 8192 and (max_num_partitions == 1 or num_seqs * num_heads > 512) if use_v1: - attention_ops.paged_attention_v1( + ops.paged_attention_v1( out, query, key_cache, @@ -68,6 +67,8 @@ def attention( block_size, max_s, None, + "auto", + 1.0, ) else: # Run PagedAttention V2. @@ -83,7 +84,7 @@ def attention( device=out.device, ) max_logits = torch.empty_like(exp_sums) - attention_ops.paged_attention_v2( + ops.paged_attention_v2( out, exp_sums, max_logits, @@ -98,4 +99,6 @@ def attention( block_size, max_s, None, + "auto", + 1.0, ) From 30620a9a44c3e1357d4f9e9a84b00fa1ede011cc Mon Sep 17 00:00:00 2001 From: OlivierDehaene <23298448+OlivierDehaene@users.noreply.github.com> Date: Wed, 10 Apr 2024 18:38:08 +0200 Subject: [PATCH 13/74] hotfix: mixtral --- .../custom_modeling/flash_mixtral_modeling.py | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py index 89eb8f43..be8cb965 100644 --- a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py @@ -464,9 +464,9 @@ class DenseMoE(nn.Module): class MixtralLayer(nn.Module): - def __init__(self, layer_id, config, weights): + def __init__(self, prefix, layer_id, config, weights): super().__init__() - prefix = f"model.layers.{layer_id}" + prefix = f"{prefix}.layers.{layer_id}" self.self_attn = MixtralAttention( prefix=f"{prefix}.self_attn", config=config, weights=weights @@ -525,16 +525,20 @@ class MixtralLayer(nn.Module): class MixtralModel(torch.nn.Module): - def __init__(self, config, weights): + def __init__(self, prefix, config, weights): super().__init__() self.embed_tokens = TensorParallelEmbedding( - prefix="model.embed_tokens", weights=weights + prefix=( + "model.embed_tokens" if not prefix else f"{prefix}.model.embed_tokens" + ), + weights=weights, ) self.layers = nn.ModuleList( [ MixtralLayer( + "model" if not prefix else f"{prefix}.model", layer_id, config, weights, @@ -543,7 +547,9 @@ class MixtralModel(torch.nn.Module): ] ) self.norm = FastRMSNorm.load( - prefix="model.norm", weights=weights, eps=config.rms_norm_eps + prefix="model.norm" if not prefix else f"{prefix}.model.norm", + weights=weights, + eps=config.rms_norm_eps, ) self.head_size = self.layers[0].self_attn.head_size @@ -593,13 +599,13 @@ class MixtralModel(torch.nn.Module): class FlashMixtralForCausalLM(torch.nn.Module): - def __init__(self, config, weights): + def __init__(self, prefix, config, weights): super().__init__() - self.model = MixtralModel(config, weights) + self.model = MixtralModel(prefix, config, weights) self.lm_head = SpeculativeHead.load( config, - prefix="lm_head", + prefix="lm_head" if not prefix else f"{prefix}.lm_head", weights=weights, ) self.max_past = config.sliding_window From 10d9083b2d5c47e73d9acb4b6cf64b9fcad6c934 Mon Sep 17 00:00:00 2001 From: abhishek thakur <1183441+abhishekkrthakur@users.noreply.github.com> Date: Thu, 11 Apr 2024 10:37:35 +0200 Subject: [PATCH 14/74] Update libraries (#1713) Co-authored-by: Nicolas Patry --- server/poetry.lock | 303 ++++++++++++++++++----------------- server/pyproject.toml | 6 +- server/requirements_cuda.txt | 10 +- server/requirements_rocm.txt | 10 +- 4 files changed, 165 insertions(+), 164 deletions(-) diff --git a/server/poetry.lock b/server/poetry.lock index 7d140390..f6768565 100644 --- a/server/poetry.lock +++ b/server/poetry.lock @@ -1,14 +1,14 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "accelerate" -version = "0.28.0" +version = "0.29.1" description = "Accelerate" optional = true python-versions = ">=3.8.0" files = [ - {file = "accelerate-0.28.0-py3-none-any.whl", hash = "sha256:8ae25f8a8dc4cf12283842c469113836300545fb0dfa46fef331fb0a2ac8b421"}, - {file = "accelerate-0.28.0.tar.gz", hash = "sha256:32019a49f4b3a85cc179ac4e38e9e2971f1a997dee026be0512816499464c4d5"}, + {file = "accelerate-0.29.1-py3-none-any.whl", hash = "sha256:7eda0c8bc62bc59129103310f1272a0fb7b3ebc55fc8920cfe1c102db30aca58"}, + {file = "accelerate-0.29.1.tar.gz", hash = "sha256:d1d0e5a591177891812fd6d1bc843af191e1192c80e5180258f52fefcb653a9f"}, ] [package.dependencies] @@ -21,14 +21,14 @@ safetensors = ">=0.3.1" torch = ">=1.10.0" [package.extras] -dev = ["bitsandbytes", "black (>=23.1,<24.0)", "datasets", "deepspeed (<0.13.0)", "evaluate", "hf-doc-builder (>=0.3.0)", "parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-subtests", "pytest-xdist", "rich", "ruff (>=0.2.1,<0.3.0)", "scikit-learn", "scipy", "timm", "torchpippy (>=0.2.0)", "tqdm", "transformers"] +dev = ["bitsandbytes", "black (>=23.1,<24.0)", "datasets", "deepspeed", "evaluate", "hf-doc-builder (>=0.3.0)", "parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-subtests", "pytest-xdist", "rich", "ruff (>=0.2.1,<0.3.0)", "scikit-learn", "scipy", "timm", "torchpippy (>=0.2.0)", "tqdm", "transformers"] quality = ["black (>=23.1,<24.0)", "hf-doc-builder (>=0.3.0)", "ruff (>=0.2.1,<0.3.0)"] rich = ["rich"] sagemaker = ["sagemaker"] -test-dev = ["bitsandbytes", "datasets", "deepspeed (<0.13.0)", "evaluate", "scikit-learn", "scipy", "timm", "torchpippy (>=0.2.0)", "tqdm", "transformers"] +test-dev = ["bitsandbytes", "datasets", "deepspeed", "evaluate", "scikit-learn", "scipy", "timm", "torchpippy (>=0.2.0)", "tqdm", "transformers"] test-prod = ["parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-subtests", "pytest-xdist"] test-trackers = ["comet-ml", "dvclive", "tensorboard", "wandb"] -testing = ["bitsandbytes", "datasets", "deepspeed (<0.13.0)", "evaluate", "parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-subtests", "pytest-xdist", "scikit-learn", "scipy", "timm", "torchpippy (>=0.2.0)", "tqdm", "transformers"] +testing = ["bitsandbytes", "datasets", "deepspeed", "evaluate", "parameterized", "pytest (>=7.2.0,<=8.0.0)", "pytest-subtests", "pytest-xdist", "scikit-learn", "scipy", "timm", "torchpippy (>=0.2.0)", "tqdm", "transformers"] [[package]] name = "aiohttp" @@ -471,18 +471,18 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.13.1" +version = "3.13.3" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, - {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, + {file = "filelock-3.13.3-py3-none-any.whl", hash = "sha256:5ffa845303983e7a0b7ae17636509bc97997d58afeafa72fb141a17b152284cb"}, + {file = "filelock-3.13.3.tar.gz", hash = "sha256:a79895a25bbefdf55d1a2a0a80968f7dbb28edcd6d4234a0afb3f37ecde4b546"}, ] [package.extras] -docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] typing = ["typing-extensions (>=4.8)"] [[package]] @@ -1512,14 +1512,13 @@ files = [ [[package]] name = "nvidia-nvjitlink-cu12" -version = "12.4.99" +version = "12.4.127" description = "Nvidia JIT LTO Library" optional = true python-versions = ">=3" files = [ - {file = "nvidia_nvjitlink_cu12-12.4.99-py3-none-manylinux2014_aarch64.whl", hash = "sha256:75d6498c96d9adb9435f2bbdbddb479805ddfb97b5c1b32395c694185c20ca57"}, - {file = "nvidia_nvjitlink_cu12-12.4.99-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c6428836d20fe7e327191c175791d38570e10762edc588fb46749217cd444c74"}, - {file = "nvidia_nvjitlink_cu12-12.4.99-py3-none-win_amd64.whl", hash = "sha256:991905ffa2144cb603d8ca7962d75c35334ae82bf92820b6ba78157277da1ad2"}, + {file = "nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl", hash = "sha256:06b3b9b25bf3f8af351d664978ca26a16d2c5127dbd53c0497e28d1fb9611d57"}, + {file = "nvidia_nvjitlink_cu12-12.4.127-py3-none-win_amd64.whl", hash = "sha256:fd9020c501d27d135f983c6d3e244b197a7ccad769e34df53a42e276b0e25fa1"}, ] [[package]] @@ -1806,13 +1805,13 @@ xml = ["lxml (>=4.9.2)"] [[package]] name = "peft" -version = "0.9.0" +version = "0.10.0" description = "Parameter-Efficient Fine-Tuning (PEFT)" optional = true python-versions = ">=3.8.0" files = [ - {file = "peft-0.9.0-py3-none-any.whl", hash = "sha256:d14223fee6050c53593733e8f763d94c13577e1220987f59ae473d988f2ccd91"}, - {file = "peft-0.9.0.tar.gz", hash = "sha256:3b8d09dff94d1bfa72e064cb26af5952fd82428e2bcce432cfaf091f5035b04b"}, + {file = "peft-0.10.0-py3-none-any.whl", hash = "sha256:d5249c97e818d3e31f92553c73c2953acd0ec12649b8b749afff7152cbc86cbb"}, + {file = "peft-0.10.0.tar.gz", hash = "sha256:36a7628c15f88d37abb26cfc74c22468f9037ee02e9c9b65de943cfe7c672049"}, ] [package.dependencies] @@ -1835,79 +1834,80 @@ test = ["black", "datasets", "diffusers (<0.21.0)", "hf-doc-builder", "parameter [[package]] name = "pillow" -version = "10.2.0" +version = "10.3.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.8" files = [ - {file = "pillow-10.2.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e"}, - {file = "pillow-10.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563"}, - {file = "pillow-10.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2"}, - {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c"}, - {file = "pillow-10.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0"}, - {file = "pillow-10.2.0-cp310-cp310-win32.whl", hash = "sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023"}, - {file = "pillow-10.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72"}, - {file = "pillow-10.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad"}, - {file = "pillow-10.2.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5"}, - {file = "pillow-10.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f"}, - {file = "pillow-10.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311"}, - {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1"}, - {file = "pillow-10.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757"}, - {file = "pillow-10.2.0-cp311-cp311-win32.whl", hash = "sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068"}, - {file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, - {file = "pillow-10.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1"}, - {file = "pillow-10.2.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef"}, - {file = "pillow-10.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2"}, - {file = "pillow-10.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04"}, - {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f"}, - {file = "pillow-10.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb"}, - {file = "pillow-10.2.0-cp312-cp312-win32.whl", hash = "sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f"}, - {file = "pillow-10.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9"}, - {file = "pillow-10.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48"}, - {file = "pillow-10.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9"}, - {file = "pillow-10.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213"}, - {file = "pillow-10.2.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d"}, - {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6"}, - {file = "pillow-10.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe"}, - {file = "pillow-10.2.0-cp38-cp38-win32.whl", hash = "sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e"}, - {file = "pillow-10.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39"}, - {file = "pillow-10.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67"}, - {file = "pillow-10.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01"}, - {file = "pillow-10.2.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13"}, - {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7"}, - {file = "pillow-10.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591"}, - {file = "pillow-10.2.0-cp39-cp39-win32.whl", hash = "sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516"}, - {file = "pillow-10.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8"}, - {file = "pillow-10.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a"}, - {file = "pillow-10.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6"}, - {file = "pillow-10.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a"}, - {file = "pillow-10.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868"}, - {file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, + {file = "pillow-10.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45"}, + {file = "pillow-10.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475"}, + {file = "pillow-10.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf"}, + {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3"}, + {file = "pillow-10.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5"}, + {file = "pillow-10.3.0-cp310-cp310-win32.whl", hash = "sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2"}, + {file = "pillow-10.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f"}, + {file = "pillow-10.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b"}, + {file = "pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795"}, + {file = "pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451"}, + {file = "pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd"}, + {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad"}, + {file = "pillow-10.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c"}, + {file = "pillow-10.3.0-cp311-cp311-win32.whl", hash = "sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09"}, + {file = "pillow-10.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d"}, + {file = "pillow-10.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f"}, + {file = "pillow-10.3.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84"}, + {file = "pillow-10.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462"}, + {file = "pillow-10.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a"}, + {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef"}, + {file = "pillow-10.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3"}, + {file = "pillow-10.3.0-cp312-cp312-win32.whl", hash = "sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d"}, + {file = "pillow-10.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b"}, + {file = "pillow-10.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a"}, + {file = "pillow-10.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b"}, + {file = "pillow-10.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d"}, + {file = "pillow-10.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd"}, + {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d"}, + {file = "pillow-10.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3"}, + {file = "pillow-10.3.0-cp38-cp38-win32.whl", hash = "sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b"}, + {file = "pillow-10.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999"}, + {file = "pillow-10.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936"}, + {file = "pillow-10.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57"}, + {file = "pillow-10.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8"}, + {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9"}, + {file = "pillow-10.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb"}, + {file = "pillow-10.3.0-cp39-cp39-win32.whl", hash = "sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572"}, + {file = "pillow-10.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb"}, + {file = "pillow-10.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3"}, + {file = "pillow-10.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a"}, + {file = "pillow-10.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591"}, + {file = "pillow-10.3.0.tar.gz", hash = "sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d"}, ] [package.extras] @@ -2222,6 +2222,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -2636,45 +2637,45 @@ torch = ["safetensors[numpy]", "torch (>=1.10)"] [[package]] name = "scipy" -version = "1.12.0" +version = "1.13.0" description = "Fundamental algorithms for scientific computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "scipy-1.12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b"}, - {file = "scipy-1.12.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1"}, - {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563"}, - {file = "scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c"}, - {file = "scipy-1.12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd"}, - {file = "scipy-1.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2"}, - {file = "scipy-1.12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08"}, - {file = "scipy-1.12.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c"}, - {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467"}, - {file = "scipy-1.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a"}, - {file = "scipy-1.12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba"}, - {file = "scipy-1.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70"}, - {file = "scipy-1.12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372"}, - {file = "scipy-1.12.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3"}, - {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc"}, - {file = "scipy-1.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c"}, - {file = "scipy-1.12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338"}, - {file = "scipy-1.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c"}, - {file = "scipy-1.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35"}, - {file = "scipy-1.12.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067"}, - {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371"}, - {file = "scipy-1.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490"}, - {file = "scipy-1.12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc"}, - {file = "scipy-1.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e"}, - {file = "scipy-1.12.0.tar.gz", hash = "sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3"}, + {file = "scipy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ba419578ab343a4e0a77c0ef82f088238a93eef141b2b8017e46149776dfad4d"}, + {file = "scipy-1.13.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:22789b56a999265431c417d462e5b7f2b487e831ca7bef5edeb56efe4c93f86e"}, + {file = "scipy-1.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f1432ba070e90d42d7fd836462c50bf98bd08bed0aa616c359eed8a04e3922"}, + {file = "scipy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8434f6f3fa49f631fae84afee424e2483289dfc30a47755b4b4e6b07b2633a4"}, + {file = "scipy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:dcbb9ea49b0167de4167c40eeee6e167caeef11effb0670b554d10b1e693a8b9"}, + {file = "scipy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:1d2f7bb14c178f8b13ebae93f67e42b0a6b0fc50eba1cd8021c9b6e08e8fb1cd"}, + {file = "scipy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0fbcf8abaf5aa2dc8d6400566c1a727aed338b5fe880cde64907596a89d576fa"}, + {file = "scipy-1.13.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:5e4a756355522eb60fcd61f8372ac2549073c8788f6114449b37e9e8104f15a5"}, + {file = "scipy-1.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5acd8e1dbd8dbe38d0004b1497019b2dbbc3d70691e65d69615f8a7292865d7"}, + {file = "scipy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ff7dad5d24a8045d836671e082a490848e8639cabb3dbdacb29f943a678683d"}, + {file = "scipy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4dca18c3ffee287ddd3bc8f1dabaf45f5305c5afc9f8ab9cbfab855e70b2df5c"}, + {file = "scipy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:a2f471de4d01200718b2b8927f7d76b5d9bde18047ea0fa8bd15c5ba3f26a1d6"}, + {file = "scipy-1.13.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d0de696f589681c2802f9090fff730c218f7c51ff49bf252b6a97ec4a5d19e8b"}, + {file = "scipy-1.13.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:b2a3ff461ec4756b7e8e42e1c681077349a038f0686132d623fa404c0bee2551"}, + {file = "scipy-1.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf9fe63e7a4bf01d3645b13ff2aa6dea023d38993f42aaac81a18b1bda7a82a"}, + {file = "scipy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e7626dfd91cdea5714f343ce1176b6c4745155d234f1033584154f60ef1ff42"}, + {file = "scipy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:109d391d720fcebf2fbe008621952b08e52907cf4c8c7efc7376822151820820"}, + {file = "scipy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:8930ae3ea371d6b91c203b1032b9600d69c568e537b7988a3073dfe4d4774f21"}, + {file = "scipy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5407708195cb38d70fd2d6bb04b1b9dd5c92297d86e9f9daae1576bd9e06f602"}, + {file = "scipy-1.13.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:ac38c4c92951ac0f729c4c48c9e13eb3675d9986cc0c83943784d7390d540c78"}, + {file = "scipy-1.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09c74543c4fbeb67af6ce457f6a6a28e5d3739a87f62412e4a16e46f164f0ae5"}, + {file = "scipy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28e286bf9ac422d6beb559bc61312c348ca9b0f0dae0d7c5afde7f722d6ea13d"}, + {file = "scipy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:33fde20efc380bd23a78a4d26d59fc8704e9b5fd9b08841693eb46716ba13d86"}, + {file = "scipy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:45c08bec71d3546d606989ba6e7daa6f0992918171e2a6f7fbedfa7361c2de1e"}, + {file = "scipy-1.13.0.tar.gz", hash = "sha256:58569af537ea29d3f78e5abd18398459f195546bb3be23d16677fb26616cc11e"}, ] [package.dependencies] -numpy = ">=1.22.4,<1.29.0" +numpy = ">=1.22.4,<2.3" [package.extras] -dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] -doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"] -test = ["asv", "gmpy2", "hypothesis", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] [[package]] name = "sentencepiece" @@ -2922,36 +2923,36 @@ files = [ [[package]] name = "torch" -version = "2.2.1" +version = "2.2.2" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" optional = true python-versions = ">=3.8.0" files = [ - {file = "torch-2.2.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:8d3bad336dd2c93c6bcb3268e8e9876185bda50ebde325ef211fb565c7d15273"}, - {file = "torch-2.2.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:5297f13370fdaca05959134b26a06a7f232ae254bf2e11a50eddec62525c9006"}, - {file = "torch-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:5f5dee8433798888ca1415055f5e3faf28a3bad660e4c29e1014acd3275ab11a"}, - {file = "torch-2.2.1-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:b6d78338acabf1fb2e88bf4559d837d30230cf9c3e4337261f4d83200df1fcbe"}, - {file = "torch-2.2.1-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:6ab3ea2e29d1aac962e905142bbe50943758f55292f1b4fdfb6f4792aae3323e"}, - {file = "torch-2.2.1-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:d86664ec85902967d902e78272e97d1aff1d331f7619d398d3ffab1c9b8e9157"}, - {file = "torch-2.2.1-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:d6227060f268894f92c61af0a44c0d8212e19cb98d05c20141c73312d923bc0a"}, - {file = "torch-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:77e990af75fb1675490deb374d36e726f84732cd5677d16f19124934b2409ce9"}, - {file = "torch-2.2.1-cp311-none-macosx_10_9_x86_64.whl", hash = "sha256:46085e328d9b738c261f470231e987930f4cc9472d9ffb7087c7a1343826ac51"}, - {file = "torch-2.2.1-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:2d9e7e5ecbb002257cf98fae13003abbd620196c35f85c9e34c2adfb961321ec"}, - {file = "torch-2.2.1-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:ada53aebede1c89570e56861b08d12ba4518a1f8b82d467c32665ec4d1f4b3c8"}, - {file = "torch-2.2.1-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:be21d4c41ecebed9e99430dac87de1439a8c7882faf23bba7fea3fea7b906ac1"}, - {file = "torch-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:79848f46196750367dcdf1d2132b722180b9d889571e14d579ae82d2f50596c5"}, - {file = "torch-2.2.1-cp312-none-macosx_10_9_x86_64.whl", hash = "sha256:7ee804847be6be0032fbd2d1e6742fea2814c92bebccb177f0d3b8e92b2d2b18"}, - {file = "torch-2.2.1-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:84b2fb322ab091039fdfe74e17442ff046b258eb5e513a28093152c5b07325a7"}, - {file = "torch-2.2.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5c0c83aa7d94569997f1f474595e808072d80b04d34912ce6f1a0e1c24b0c12a"}, - {file = "torch-2.2.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:91a1b598055ba06b2c386415d2e7f6ac818545e94c5def597a74754940188513"}, - {file = "torch-2.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:8f93ddf3001ecec16568390b507652644a3a103baa72de3ad3b9c530e3277098"}, - {file = "torch-2.2.1-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:0e8bdd4c77ac2584f33ee14c6cd3b12767b4da508ec4eed109520be7212d1069"}, - {file = "torch-2.2.1-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:6a21bcd7076677c97ca7db7506d683e4e9db137e8420eb4a68fb67c3668232a7"}, - {file = "torch-2.2.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f1b90ac61f862634039265cd0f746cc9879feee03ff962c803486301b778714b"}, - {file = "torch-2.2.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:ed9e29eb94cd493b36bca9cb0b1fd7f06a0688215ad1e4b3ab4931726e0ec092"}, - {file = "torch-2.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:c47bc25744c743f3835831a20efdcfd60aeb7c3f9804a213f61e45803d16c2a5"}, - {file = "torch-2.2.1-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:0952549bcb43448c8d860d5e3e947dd18cbab491b14638e21750cb3090d5ad3e"}, - {file = "torch-2.2.1-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:26bd2272ec46fc62dcf7d24b2fb284d44fcb7be9d529ebf336b9860350d674ed"}, + {file = "torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:bc889d311a855dd2dfd164daf8cc903a6b7273a747189cebafdd89106e4ad585"}, + {file = "torch-2.2.2-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:15dffa4cc3261fa73d02f0ed25f5fa49ecc9e12bf1ae0a4c1e7a88bbfaad9030"}, + {file = "torch-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:11e8fe261233aeabd67696d6b993eeb0896faa175c6b41b9a6c9f0334bdad1c5"}, + {file = "torch-2.2.2-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:b2e2200b245bd9f263a0d41b6a2dab69c4aca635a01b30cca78064b0ef5b109e"}, + {file = "torch-2.2.2-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:877b3e6593b5e00b35bbe111b7057464e76a7dd186a287280d941b564b0563c2"}, + {file = "torch-2.2.2-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:ad4c03b786e074f46606f4151c0a1e3740268bcf29fbd2fdf6666d66341c1dcb"}, + {file = "torch-2.2.2-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:32827fa1fbe5da8851686256b4cd94cc7b11be962862c2293811c94eea9457bf"}, + {file = "torch-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:f9ef0a648310435511e76905f9b89612e45ef2c8b023bee294f5e6f7e73a3e7c"}, + {file = "torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl", hash = "sha256:95b9b44f3bcebd8b6cd8d37ec802048c872d9c567ba52c894bba90863a439059"}, + {file = "torch-2.2.2-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:49aa4126ede714c5aeef7ae92969b4b0bbe67f19665106463c39f22e0a1860d1"}, + {file = "torch-2.2.2-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:cf12cdb66c9c940227ad647bc9cf5dba7e8640772ae10dfe7569a0c1e2a28aca"}, + {file = "torch-2.2.2-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:89ddac2a8c1fb6569b90890955de0c34e1724f87431cacff4c1979b5f769203c"}, + {file = "torch-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:451331406b760f4b1ab298ddd536486ab3cfb1312614cfe0532133535be60bea"}, + {file = "torch-2.2.2-cp312-none-macosx_10_9_x86_64.whl", hash = "sha256:eb4d6e9d3663e26cd27dc3ad266b34445a16b54908e74725adb241aa56987533"}, + {file = "torch-2.2.2-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:bf9558da7d2bf7463390b3b2a61a6a3dbb0b45b161ee1dd5ec640bf579d479fc"}, + {file = "torch-2.2.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:cd2bf7697c9e95fb5d97cc1d525486d8cf11a084c6af1345c2c2c22a6b0029d0"}, + {file = "torch-2.2.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:b421448d194496e1114d87a8b8d6506bce949544e513742b097e2ab8f7efef32"}, + {file = "torch-2.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:3dbcd563a9b792161640c0cffe17e3270d85e8f4243b1f1ed19cca43d28d235b"}, + {file = "torch-2.2.2-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:31f4310210e7dda49f1fb52b0ec9e59382cfcb938693f6d5378f25b43d7c1d29"}, + {file = "torch-2.2.2-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:c795feb7e8ce2e0ef63f75f8e1ab52e7fd5e1a4d7d0c31367ade1e3de35c9e95"}, + {file = "torch-2.2.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:a6e5770d68158d07456bfcb5318b173886f579fdfbf747543901ce718ea94782"}, + {file = "torch-2.2.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:67dcd726edff108e2cd6c51ff0e416fd260c869904de95750e80051358680d24"}, + {file = "torch-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:539d5ef6c4ce15bd3bd47a7b4a6e7c10d49d4d21c0baaa87c7d2ef8698632dfb"}, + {file = "torch-2.2.2-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:dff696de90d6f6d1e8200e9892861fd4677306d0ef604cb18f2134186f719f82"}, + {file = "torch-2.2.2-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:3a4dd910663fd7a124c056c878a52c2b0be4a5a424188058fe97109d4436ee42"}, ] [package.dependencies] @@ -3000,13 +3001,13 @@ telegram = ["requests"] [[package]] name = "transformers" -version = "4.39.0" +version = "4.39.3" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" optional = false python-versions = ">=3.8.0" files = [ - {file = "transformers-4.39.0-py3-none-any.whl", hash = "sha256:7801785b1f016d667467e8c372c1c3653c18fe32ba97952059e3bea79ba22b08"}, - {file = "transformers-4.39.0.tar.gz", hash = "sha256:517a13cd633b10bea01c92ab0b3059762872c7c29da3d223db9d28e926fe330d"}, + {file = "transformers-4.39.3-py3-none-any.whl", hash = "sha256:7838034a12cca3168247f9d2d1dba6724c9de3ae0f73a108258c6b8fc5912601"}, + {file = "transformers-4.39.3.tar.gz", hash = "sha256:2586e5ff4150f122716fc40f5530e92871befc051848fbe82600969c535b762d"}, ] [package.dependencies] @@ -3111,13 +3112,13 @@ test = ["black (>=22.3.0,<23.0.0)", "coverage (>=5.2,<6.0)", "isort (>=5.0.6,<6. [[package]] name = "typing-extensions" -version = "4.10.0" +version = "4.11.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.10.0-py3-none-any.whl", hash = "sha256:69b1a937c3a517342112fb4c6df7e72fc39a38e7891a5730ed4985b5214b5475"}, - {file = "typing_extensions-4.10.0.tar.gz", hash = "sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb"}, + {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, + {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, ] [[package]] @@ -3472,4 +3473,4 @@ torch = ["torch"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.13" -content-hash = "b19c9b3f63778f3fc862907c9377d9389b8d0ea8aa02f69bdba628f4829bc62d" +content-hash = "2bbb3d5acafe4bd1a616106ad3956058078a1f54c9a906a0065ee474f5af407d" diff --git a/server/pyproject.toml b/server/pyproject.toml index b5e9c3fd..58c54b94 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -15,7 +15,7 @@ grpcio-status = "^1.51.1" grpcio-reflection = "^1.51.1" grpc-interceptor = "^0.15.0" typer = "^0.6.1" -accelerate = { version = "^0.28.0", optional = true } +accelerate = { version = "^0.29.1", optional = true } bitsandbytes = { version = "^0.43.0", optional = true } safetensors = "^0.4" loguru = "^0.6.0" @@ -26,11 +26,11 @@ hf-transfer = "^0.1.2" sentencepiece = "^0.1.97" tokenizers = "^0.15.0" huggingface-hub = "^0.19.3" -transformers = "^4.38" +transformers = "^4.39" einops = "^0.6.1" texttable = { version = "^1.6.7", optional = true } datasets = { version = "^2.14.0", optional = true } -peft = { version = "^0.9", optional = true } +peft = { version = "^0.10", optional = true } torch = { version = "^2.1.1", optional = true } scipy = "^1.11.1" pillow = "^10.0.0" diff --git a/server/requirements_cuda.txt b/server/requirements_cuda.txt index 4b2fbc24..6ad5235a 100644 --- a/server/requirements_cuda.txt +++ b/server/requirements_cuda.txt @@ -5,7 +5,7 @@ click==8.1.7 ; python_version >= "3.9" and python_version < "3.13" colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") deprecated==1.2.14 ; python_version >= "3.9" and python_version < "3.13" einops==0.6.1 ; python_version >= "3.9" and python_version < "3.13" -filelock==3.13.1 ; python_version >= "3.9" and python_version < "3.13" +filelock==3.13.3 ; python_version >= "3.9" and python_version < "3.13" fsspec==2024.2.0 ; python_version >= "3.9" and python_version < "3.13" googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < "3.13" grpc-interceptor==0.15.4 ; python_version >= "3.9" and python_version < "3.13" @@ -27,20 +27,20 @@ opentelemetry-proto==1.15.0 ; python_version >= "3.9" and python_version < "3.13 opentelemetry-sdk==1.15.0 ; python_version >= "3.9" and python_version < "3.13" opentelemetry-semantic-conventions==0.36b0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.0 ; python_version >= "3.9" and python_version < "3.13" -pillow==10.2.0 ; python_version >= "3.9" and python_version < "3.13" +pillow==10.3.0 ; python_version >= "3.9" and python_version < "3.13" protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.13" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" regex==2023.12.25 ; python_version >= "3.9" and python_version < "3.13" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.13" safetensors==0.4.2 ; python_version >= "3.9" and python_version < "3.13" -scipy==1.12.0 ; python_version >= "3.9" and python_version < "3.13" +scipy==1.13.0 ; python_version >= "3.9" and python_version < "3.13" sentencepiece==0.1.99 ; python_version >= "3.9" and python_version < "3.13" setuptools==69.2.0 ; python_version >= "3.9" and python_version < "3.13" tokenizers==0.15.2 ; python_version >= "3.9" and python_version < "3.13" tqdm==4.66.2 ; python_version >= "3.9" and python_version < "3.13" -transformers==4.39.0 ; python_version >= "3.9" and python_version < "3.13" +transformers==4.39.3 ; python_version >= "3.9" and python_version < "3.13" typer==0.6.1 ; python_version >= "3.9" and python_version < "3.13" -typing-extensions==4.10.0 ; python_version >= "3.9" and python_version < "3.13" +typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.13" win32-setctime==1.1.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" wrapt==1.16.0 ; python_version >= "3.9" and python_version < "3.13" diff --git a/server/requirements_rocm.txt b/server/requirements_rocm.txt index 4b2fbc24..6ad5235a 100644 --- a/server/requirements_rocm.txt +++ b/server/requirements_rocm.txt @@ -5,7 +5,7 @@ click==8.1.7 ; python_version >= "3.9" and python_version < "3.13" colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") deprecated==1.2.14 ; python_version >= "3.9" and python_version < "3.13" einops==0.6.1 ; python_version >= "3.9" and python_version < "3.13" -filelock==3.13.1 ; python_version >= "3.9" and python_version < "3.13" +filelock==3.13.3 ; python_version >= "3.9" and python_version < "3.13" fsspec==2024.2.0 ; python_version >= "3.9" and python_version < "3.13" googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < "3.13" grpc-interceptor==0.15.4 ; python_version >= "3.9" and python_version < "3.13" @@ -27,20 +27,20 @@ opentelemetry-proto==1.15.0 ; python_version >= "3.9" and python_version < "3.13 opentelemetry-sdk==1.15.0 ; python_version >= "3.9" and python_version < "3.13" opentelemetry-semantic-conventions==0.36b0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.0 ; python_version >= "3.9" and python_version < "3.13" -pillow==10.2.0 ; python_version >= "3.9" and python_version < "3.13" +pillow==10.3.0 ; python_version >= "3.9" and python_version < "3.13" protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.13" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" regex==2023.12.25 ; python_version >= "3.9" and python_version < "3.13" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.13" safetensors==0.4.2 ; python_version >= "3.9" and python_version < "3.13" -scipy==1.12.0 ; python_version >= "3.9" and python_version < "3.13" +scipy==1.13.0 ; python_version >= "3.9" and python_version < "3.13" sentencepiece==0.1.99 ; python_version >= "3.9" and python_version < "3.13" setuptools==69.2.0 ; python_version >= "3.9" and python_version < "3.13" tokenizers==0.15.2 ; python_version >= "3.9" and python_version < "3.13" tqdm==4.66.2 ; python_version >= "3.9" and python_version < "3.13" -transformers==4.39.0 ; python_version >= "3.9" and python_version < "3.13" +transformers==4.39.3 ; python_version >= "3.9" and python_version < "3.13" typer==0.6.1 ; python_version >= "3.9" and python_version < "3.13" -typing-extensions==4.10.0 ; python_version >= "3.9" and python_version < "3.13" +typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.13" win32-setctime==1.1.0 ; python_version >= "3.9" and python_version < "3.13" and sys_platform == "win32" wrapt==1.16.0 ; python_version >= "3.9" and python_version < "3.13" From b83aab9bb390c85d6675f00883c29a5aa205a1ca Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Thu, 11 Apr 2024 12:48:39 +0000 Subject: [PATCH 15/74] Easier defaults for models stemmed from configs. --- Cargo.lock | 2 + docs/source/basic_tutorials/launcher.md | 21 ++-- launcher/Cargo.toml | 4 +- launcher/src/main.rs | 154 +++++++++++++++++++----- router/src/main.rs | 16 +-- 5 files changed, 153 insertions(+), 44 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 65b9f8b7..8c1784bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3452,7 +3452,9 @@ dependencies = [ "clap", "ctrlc", "float_eq", + "hf-hub", "nix", + "once_cell", "reqwest", "serde", "serde_json", diff --git a/docs/source/basic_tutorials/launcher.md b/docs/source/basic_tutorials/launcher.md index 86394ff7..4b876e64 100644 --- a/docs/source/basic_tutorials/launcher.md +++ b/docs/source/basic_tutorials/launcher.md @@ -60,9 +60,9 @@ Options: [env: QUANTIZE=] Possible values: - - awq: 4 bit quantization. Requires a specific AWQ quantized model: https://hf.co/models?search=awq. Should replace GPTQ models wherever possible because of the better latency - - eetq: 8 bit quantization, doesn't require specific model. Should be a drop-in replacement to bitsandbytes with much better performance. Kernels are from https://github.com/NetEase-FuXi/EETQ.git - - gptq: 4 bit quantization. Requires a specific GTPQ quantized model: https://hf.co/models?search=gptq. text-generation-inference will use exllama (faster) kernels wherever possible, and use triton kernel (wider support) when it's not. AWQ has faster kernels + - awq: 4 bit quantization. Requires a specific AWQ quantized model: . Should replace GPTQ models wherever possible because of the better latency + - eetq: 8 bit quantization, doesn't require specific model. Should be a drop-in replacement to bitsandbytes with much better performance. Kernels are from + - gptq: 4 bit quantization. Requires a specific GTPQ quantized model: . text-generation-inference will use exllama (faster) kernels wherever possible, and use triton kernel (wider support) when it's not. AWQ has faster kernels - bitsandbytes: Bitsandbytes 8bit. Can be applied on any model, will cut the memory requirement in half, but it is known that the model will be much slower to run than the native f16 - bitsandbytes-nf4: Bitsandbytes 4bit. Can be applied on any model, will cut the memory requirement by 4x, but it is known that the model will be much slower to run than the native f16 - bitsandbytes-fp4: Bitsandbytes 4bit. nf4 should be preferred in most cases but maybe this one has better perplexity performance for you model @@ -128,23 +128,29 @@ Options: [env: MAX_TOP_N_TOKENS=] [default: 5] +``` +## MAX_INPUT_TOKENS +```shell + --max-input-tokens + This is the maximum allowed input length (expressed in number of tokens) for users. The larger this value, the longer prompt users can send which can impact the overall memory required to handle the load. Please note that some models have a finite range of sequence they can handle. Default to min(max_position_embeddings - 1, 13383) + + [env: MAX_INPUT_TOKENS=] + ``` ## MAX_INPUT_LENGTH ```shell --max-input-length - This is the maximum allowed input length (expressed in number of tokens) for users. The larger this value, the longer prompt users can send which can impact the overall memory required to handle the load. Please note that some models have a finite range of sequence they can handle + Legacy version of [`Args::max_input_tokens`] [env: MAX_INPUT_LENGTH=] - [default: 1024] ``` ## MAX_TOTAL_TOKENS ```shell --max-total-tokens - This is the most important value to set as it defines the "memory budget" of running clients requests. Clients will send input sequences and ask to generate `max_new_tokens` on top. with a value of `1512` users can send either a prompt of `1000` and ask for `512` new tokens, or send a prompt of `1` and ask for `1511` max_new_tokens. The larger this value, the larger amount each request will be in your RAM and the less effective batching can be + This is the most important value to set as it defines the "memory budget" of running clients requests. Clients will send input sequences and ask to generate `max_new_tokens` on top. with a value of `1512` users can send either a prompt of `1000` and ask for `512` new tokens, or send a prompt of `1` and ask for `1511` max_new_tokens. The larger this value, the larger amount each request will be in your RAM and the less effective batching can be. Default to min(max_position_embeddings - 1, 16384) [env: MAX_TOTAL_TOKENS=] - [default: 2048] ``` ## WAITING_SERVED_RATIO @@ -164,7 +170,6 @@ Options: Limits the number of tokens for the prefill operation. Since this operation take the most memory and is compute bound, it is interesting to limit the number of requests that can be sent [env: MAX_BATCH_PREFILL_TOKENS=] - [default: 4096] ``` ## MAX_BATCH_TOTAL_TOKENS diff --git a/launcher/Cargo.toml b/launcher/Cargo.toml index 7c598c37..6b6fd58e 100644 --- a/launcher/Cargo.toml +++ b/launcher/Cargo.toml @@ -9,8 +9,10 @@ homepage.workspace = true [dependencies] clap = { version = "4.4.5", features = ["derive", "env"] } ctrlc = { version = "3.4.1", features = ["termination"] } +hf-hub = "0.3.2" nix = { version = "0.28.0", features = ["signal"] } -serde = { version = "1.0.188", features = ["derive"] } +once_cell = "1.19.0" +serde = { version = "1.0.188", features = ["derive"] } serde_json = "1.0.107" tracing = "0.1.37" tracing-subscriber = { version = "0.3.17", features = ["json", "env-filter"] } diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 3f810023..2db55ddc 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -22,14 +22,14 @@ mod env_runtime; #[derive(Clone, Copy, Debug, ValueEnum)] enum Quantization { /// 4 bit quantization. Requires a specific AWQ quantized model: - /// https://hf.co/models?search=awq. + /// . /// Should replace GPTQ models wherever possible because of the better latency Awq, /// 8 bit quantization, doesn't require specific model. /// Should be a drop-in replacement to bitsandbytes with much better performance. - /// Kernels are from https://github.com/NetEase-FuXi/EETQ.git + /// Kernels are from Eetq, - /// 4 bit quantization. Requires a specific GTPQ quantized model: https://hf.co/models?search=gptq. + /// 4 bit quantization. Requires a specific GTPQ quantized model: . /// text-generation-inference will use exllama (faster) kernels wherever possible, and use /// triton kernel (wider support) when it's not. /// AWQ has faster kernels. @@ -206,8 +206,13 @@ struct Args { /// for users. The larger this value, the longer prompt users can send which /// can impact the overall memory required to handle the load. /// Please note that some models have a finite range of sequence they can handle. - #[clap(default_value = "1024", long, env)] - max_input_length: usize, + /// Default to min(max_position_embeddings - 1, 13383) + #[clap(long, env)] + max_input_tokens: Option, + + /// Legacy version of [`Args::max_input_tokens`]. + #[clap(long, env)] + max_input_length: Option, /// This is the most important value to set as it defines the "memory budget" /// of running clients requests. @@ -217,8 +222,9 @@ struct Args { /// `1511` max_new_tokens. /// The larger this value, the larger amount each request will be in your RAM /// and the less effective batching can be. - #[clap(default_value = "2048", long, env)] - max_total_tokens: usize, + /// Default to min(max_position_embeddings - 1, 16384) + #[clap(long, env)] + max_total_tokens: Option, /// This represents the ratio of waiting queries vs running queries where /// you want to start considering pausing the running queries to include the waiting @@ -236,8 +242,8 @@ struct Args { /// Limits the number of tokens for the prefill operation. /// Since this operation take the most memory and is compute bound, it is interesting /// to limit the number of requests that can be sent. - #[clap(default_value = "4096", long, env)] - max_batch_prefill_tokens: u32, + #[clap(long, env)] + max_batch_prefill_tokens: Option, /// **IMPORTANT** This is one critical control to allow maximum usage /// of the available hardware. @@ -1045,6 +1051,9 @@ fn compute_type(num_shard: usize) -> Option { fn spawn_webserver( num_shard: usize, args: Args, + max_input_tokens: usize, + max_total_tokens: usize, + max_batch_prefill_tokens: u32, shutdown: Arc, shutdown_receiver: &mpsc::Receiver<()>, ) -> Result { @@ -1060,12 +1069,12 @@ fn spawn_webserver( args.max_stop_sequences.to_string(), "--max-top-n-tokens".to_string(), args.max_top_n_tokens.to_string(), - "--max-input-length".to_string(), - args.max_input_length.to_string(), + "--max-input-tokens".to_string(), + max_input_tokens.to_string(), "--max-total-tokens".to_string(), - args.max_total_tokens.to_string(), + max_total_tokens.to_string(), "--max-batch-prefill-tokens".to_string(), - args.max_batch_prefill_tokens.to_string(), + max_batch_prefill_tokens.to_string(), "--waiting-served-ratio".to_string(), args.waiting_served_ratio.to_string(), "--max-waiting-tokens".to_string(), @@ -1253,16 +1262,99 @@ fn main() -> Result<(), LauncherError> { tracing::info!("{:?}", args); + use hf_hub::{api::sync::Api, Repo, RepoType}; + + #[derive(Deserialize)] + struct Config { + max_position_embeddings: usize, + } + + let config: Config = { + let model_id = args.model_id.clone(); + let mut path = std::path::Path::new(&args.model_id).to_path_buf(); + let filename = if !path.exists() { + // Assume it's a hub id + let api = Api::new().unwrap(); + let repo = if let Some(ref revision) = args.revision { + api.repo(Repo::with_revision( + model_id, + RepoType::Model, + revision.to_string(), + )) + } else { + api.model(model_id) + }; + repo.get("config.json").unwrap() + } else { + path.push("config.json"); + path + }; + + let content = std::fs::read_to_string(filename).unwrap(); + let config: Config = serde_json::from_str(&content).unwrap(); + + let max_default = 2usize.pow(14); + + let max_position_embeddings = if config.max_position_embeddings > max_default { + let max = config.max_position_embeddings; + tracing::info!("Model supports up to {max} but tgi will now set its default to {max_default} instead. This is to save VRAM by refusing large prompts in order to allow more users on the same hardware. You can increase that size using `--max-batch-prefill-tokens={} --max-total-tokens={max} --max-input-tokens={}`.", max - 1, max - 1); + max_default + } else { + config.max_position_embeddings + }; + + Config { + max_position_embeddings, + } + }; + + let max_input_tokens = { + match (args.max_input_tokens, args.max_input_length) { + (Some(max_input_tokens), Some(max_input_length)) => { + return Err(LauncherError::ArgumentValidation( + format!("Both `max_input_tokens` ({max_input_tokens}) and `max_input_length` ({max_input_length}) are set. Please define only `max_input_tokens` as `max_input_length is deprecated for naming consistency.", + ))); + } + (Some(max_input_tokens), None) | (None, Some(max_input_tokens)) => max_input_tokens, + (None, None) => { + let value = config.max_position_embeddings - 1; + tracing::info!("Default `max_input_tokens` to {value}"); + value + } + } + }; + let max_total_tokens = { + match args.max_total_tokens { + Some(max_total_tokens) => max_total_tokens, + None => { + let value = config.max_position_embeddings; + tracing::info!("Default `max_total_tokens` to {value}"); + value + } + } + }; + let max_batch_prefill_tokens = { + // TODO get config. + match args.max_batch_prefill_tokens { + Some(max_batch_prefill_tokens) => max_batch_prefill_tokens, + None => { + let value = config.max_position_embeddings as u32 - 1; + tracing::info!("Default `max_batch_prefill_tokens` to {value}"); + value + } + } + }; + // Validate args - if args.max_input_length >= args.max_total_tokens { + if max_input_tokens >= max_total_tokens { return Err(LauncherError::ArgumentValidation( - "`max_input_length` must be < `max_total_tokens`".to_string(), + "`max_input_tokens must be < `max_total_tokens`".to_string(), )); } - if args.max_input_length as u32 > args.max_batch_prefill_tokens { + if max_input_tokens as u32 > max_batch_prefill_tokens { return Err(LauncherError::ArgumentValidation(format!( - "`max_batch_prefill_tokens` must be >= `max_input_length`. Given: {} and {}", - args.max_batch_prefill_tokens, args.max_input_length + "`max_batch_prefill_tokens` must be >= `max_input_tokens`. Given: {} and {}", + max_batch_prefill_tokens, max_input_tokens ))); } @@ -1284,16 +1376,16 @@ fn main() -> Result<(), LauncherError> { } if let Some(ref max_batch_total_tokens) = args.max_batch_total_tokens { - if args.max_batch_prefill_tokens > *max_batch_total_tokens { + if max_batch_prefill_tokens > *max_batch_total_tokens { return Err(LauncherError::ArgumentValidation(format!( "`max_batch_prefill_tokens` must be <= `max_batch_total_tokens`. Given: {} and {}", - args.max_batch_prefill_tokens, max_batch_total_tokens + max_batch_prefill_tokens, max_batch_total_tokens ))); } - if args.max_total_tokens as u32 > *max_batch_total_tokens { + if max_total_tokens as u32 > *max_batch_total_tokens { return Err(LauncherError::ArgumentValidation(format!( "`max_total_tokens` must be <= `max_batch_total_tokens`. Given: {} and {}", - args.max_total_tokens, max_batch_total_tokens + max_total_tokens, max_batch_total_tokens ))); } } @@ -1354,11 +1446,19 @@ fn main() -> Result<(), LauncherError> { return Ok(()); } - let mut webserver = spawn_webserver(num_shard, args, shutdown.clone(), &shutdown_receiver) - .map_err(|err| { - shutdown_shards(shutdown.clone(), &shutdown_receiver); - err - })?; + let mut webserver = spawn_webserver( + num_shard, + args, + max_input_tokens, + max_total_tokens, + max_batch_prefill_tokens, + shutdown.clone(), + &shutdown_receiver, + ) + .map_err(|err| { + shutdown_shards(shutdown.clone(), &shutdown_receiver); + err + })?; // Default exit code let mut exit_code = Ok(()); diff --git a/router/src/main.rs b/router/src/main.rs index aace2ff9..16a031ae 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -35,7 +35,7 @@ struct Args { #[clap(default_value = "5", long, env)] max_top_n_tokens: u32, #[clap(default_value = "1024", long, env)] - max_input_length: usize, + max_input_tokens: usize, #[clap(default_value = "2048", long, env)] max_total_tokens: usize, #[clap(default_value = "1.2", long, env)] @@ -90,7 +90,7 @@ async fn main() -> Result<(), RouterError> { max_best_of, max_stop_sequences, max_top_n_tokens, - max_input_length, + max_input_tokens, max_total_tokens, waiting_served_ratio, max_batch_prefill_tokens, @@ -118,13 +118,13 @@ async fn main() -> Result<(), RouterError> { init_logging(otlp_endpoint, json_output); // Validate args - if max_input_length >= max_total_tokens { + if max_input_tokens >= max_total_tokens { return Err(RouterError::ArgumentValidation( - "`max_input_length` must be < `max_total_tokens`".to_string(), + "`max_input_tokens` must be < `max_total_tokens`".to_string(), )); } - if max_input_length as u32 > max_batch_prefill_tokens { - return Err(RouterError::ArgumentValidation(format!("`max_batch_prefill_tokens` must be >= `max_input_length`. Given: {max_batch_prefill_tokens} and {max_input_length}"))); + if max_input_tokens as u32 > max_batch_prefill_tokens { + return Err(RouterError::ArgumentValidation(format!("`max_batch_prefill_tokens` must be >= `max_input_tokens`. Given: {max_batch_prefill_tokens} and {max_input_tokens}"))); } if validation_workers == 0 { @@ -311,7 +311,7 @@ async fn main() -> Result<(), RouterError> { tracing::info!("Warming up model"); let max_supported_batch_total_tokens = match sharded_client .warmup( - max_input_length as u32, + max_input_tokens as u32, max_batch_prefill_tokens, max_total_tokens as u32, max_batch_size, @@ -374,7 +374,7 @@ async fn main() -> Result<(), RouterError> { max_best_of, max_stop_sequences, max_top_n_tokens, - max_input_length, + max_input_tokens, max_total_tokens, waiting_served_ratio, max_batch_prefill_tokens, From 842f6658e286f21f0212ae36ad2114125d81d46a Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Thu, 11 Apr 2024 12:51:57 +0000 Subject: [PATCH 16/74] Revert "Easier defaults for models stemmed from configs." This reverts commit b83aab9bb390c85d6675f00883c29a5aa205a1ca. --- Cargo.lock | 2 - docs/source/basic_tutorials/launcher.md | 21 ++-- launcher/Cargo.toml | 4 +- launcher/src/main.rs | 154 +++++------------------- router/src/main.rs | 16 +-- 5 files changed, 44 insertions(+), 153 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8c1784bf..65b9f8b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3452,9 +3452,7 @@ dependencies = [ "clap", "ctrlc", "float_eq", - "hf-hub", "nix", - "once_cell", "reqwest", "serde", "serde_json", diff --git a/docs/source/basic_tutorials/launcher.md b/docs/source/basic_tutorials/launcher.md index 4b876e64..86394ff7 100644 --- a/docs/source/basic_tutorials/launcher.md +++ b/docs/source/basic_tutorials/launcher.md @@ -60,9 +60,9 @@ Options: [env: QUANTIZE=] Possible values: - - awq: 4 bit quantization. Requires a specific AWQ quantized model: . Should replace GPTQ models wherever possible because of the better latency - - eetq: 8 bit quantization, doesn't require specific model. Should be a drop-in replacement to bitsandbytes with much better performance. Kernels are from - - gptq: 4 bit quantization. Requires a specific GTPQ quantized model: . text-generation-inference will use exllama (faster) kernels wherever possible, and use triton kernel (wider support) when it's not. AWQ has faster kernels + - awq: 4 bit quantization. Requires a specific AWQ quantized model: https://hf.co/models?search=awq. Should replace GPTQ models wherever possible because of the better latency + - eetq: 8 bit quantization, doesn't require specific model. Should be a drop-in replacement to bitsandbytes with much better performance. Kernels are from https://github.com/NetEase-FuXi/EETQ.git + - gptq: 4 bit quantization. Requires a specific GTPQ quantized model: https://hf.co/models?search=gptq. text-generation-inference will use exllama (faster) kernels wherever possible, and use triton kernel (wider support) when it's not. AWQ has faster kernels - bitsandbytes: Bitsandbytes 8bit. Can be applied on any model, will cut the memory requirement in half, but it is known that the model will be much slower to run than the native f16 - bitsandbytes-nf4: Bitsandbytes 4bit. Can be applied on any model, will cut the memory requirement by 4x, but it is known that the model will be much slower to run than the native f16 - bitsandbytes-fp4: Bitsandbytes 4bit. nf4 should be preferred in most cases but maybe this one has better perplexity performance for you model @@ -128,29 +128,23 @@ Options: [env: MAX_TOP_N_TOKENS=] [default: 5] -``` -## MAX_INPUT_TOKENS -```shell - --max-input-tokens - This is the maximum allowed input length (expressed in number of tokens) for users. The larger this value, the longer prompt users can send which can impact the overall memory required to handle the load. Please note that some models have a finite range of sequence they can handle. Default to min(max_position_embeddings - 1, 13383) - - [env: MAX_INPUT_TOKENS=] - ``` ## MAX_INPUT_LENGTH ```shell --max-input-length - Legacy version of [`Args::max_input_tokens`] + This is the maximum allowed input length (expressed in number of tokens) for users. The larger this value, the longer prompt users can send which can impact the overall memory required to handle the load. Please note that some models have a finite range of sequence they can handle [env: MAX_INPUT_LENGTH=] + [default: 1024] ``` ## MAX_TOTAL_TOKENS ```shell --max-total-tokens - This is the most important value to set as it defines the "memory budget" of running clients requests. Clients will send input sequences and ask to generate `max_new_tokens` on top. with a value of `1512` users can send either a prompt of `1000` and ask for `512` new tokens, or send a prompt of `1` and ask for `1511` max_new_tokens. The larger this value, the larger amount each request will be in your RAM and the less effective batching can be. Default to min(max_position_embeddings - 1, 16384) + This is the most important value to set as it defines the "memory budget" of running clients requests. Clients will send input sequences and ask to generate `max_new_tokens` on top. with a value of `1512` users can send either a prompt of `1000` and ask for `512` new tokens, or send a prompt of `1` and ask for `1511` max_new_tokens. The larger this value, the larger amount each request will be in your RAM and the less effective batching can be [env: MAX_TOTAL_TOKENS=] + [default: 2048] ``` ## WAITING_SERVED_RATIO @@ -170,6 +164,7 @@ Options: Limits the number of tokens for the prefill operation. Since this operation take the most memory and is compute bound, it is interesting to limit the number of requests that can be sent [env: MAX_BATCH_PREFILL_TOKENS=] + [default: 4096] ``` ## MAX_BATCH_TOTAL_TOKENS diff --git a/launcher/Cargo.toml b/launcher/Cargo.toml index 6b6fd58e..7c598c37 100644 --- a/launcher/Cargo.toml +++ b/launcher/Cargo.toml @@ -9,10 +9,8 @@ homepage.workspace = true [dependencies] clap = { version = "4.4.5", features = ["derive", "env"] } ctrlc = { version = "3.4.1", features = ["termination"] } -hf-hub = "0.3.2" nix = { version = "0.28.0", features = ["signal"] } -once_cell = "1.19.0" -serde = { version = "1.0.188", features = ["derive"] } +serde = { version = "1.0.188", features = ["derive"] } serde_json = "1.0.107" tracing = "0.1.37" tracing-subscriber = { version = "0.3.17", features = ["json", "env-filter"] } diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 2db55ddc..3f810023 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -22,14 +22,14 @@ mod env_runtime; #[derive(Clone, Copy, Debug, ValueEnum)] enum Quantization { /// 4 bit quantization. Requires a specific AWQ quantized model: - /// . + /// https://hf.co/models?search=awq. /// Should replace GPTQ models wherever possible because of the better latency Awq, /// 8 bit quantization, doesn't require specific model. /// Should be a drop-in replacement to bitsandbytes with much better performance. - /// Kernels are from + /// Kernels are from https://github.com/NetEase-FuXi/EETQ.git Eetq, - /// 4 bit quantization. Requires a specific GTPQ quantized model: . + /// 4 bit quantization. Requires a specific GTPQ quantized model: https://hf.co/models?search=gptq. /// text-generation-inference will use exllama (faster) kernels wherever possible, and use /// triton kernel (wider support) when it's not. /// AWQ has faster kernels. @@ -206,13 +206,8 @@ struct Args { /// for users. The larger this value, the longer prompt users can send which /// can impact the overall memory required to handle the load. /// Please note that some models have a finite range of sequence they can handle. - /// Default to min(max_position_embeddings - 1, 13383) - #[clap(long, env)] - max_input_tokens: Option, - - /// Legacy version of [`Args::max_input_tokens`]. - #[clap(long, env)] - max_input_length: Option, + #[clap(default_value = "1024", long, env)] + max_input_length: usize, /// This is the most important value to set as it defines the "memory budget" /// of running clients requests. @@ -222,9 +217,8 @@ struct Args { /// `1511` max_new_tokens. /// The larger this value, the larger amount each request will be in your RAM /// and the less effective batching can be. - /// Default to min(max_position_embeddings - 1, 16384) - #[clap(long, env)] - max_total_tokens: Option, + #[clap(default_value = "2048", long, env)] + max_total_tokens: usize, /// This represents the ratio of waiting queries vs running queries where /// you want to start considering pausing the running queries to include the waiting @@ -242,8 +236,8 @@ struct Args { /// Limits the number of tokens for the prefill operation. /// Since this operation take the most memory and is compute bound, it is interesting /// to limit the number of requests that can be sent. - #[clap(long, env)] - max_batch_prefill_tokens: Option, + #[clap(default_value = "4096", long, env)] + max_batch_prefill_tokens: u32, /// **IMPORTANT** This is one critical control to allow maximum usage /// of the available hardware. @@ -1051,9 +1045,6 @@ fn compute_type(num_shard: usize) -> Option { fn spawn_webserver( num_shard: usize, args: Args, - max_input_tokens: usize, - max_total_tokens: usize, - max_batch_prefill_tokens: u32, shutdown: Arc, shutdown_receiver: &mpsc::Receiver<()>, ) -> Result { @@ -1069,12 +1060,12 @@ fn spawn_webserver( args.max_stop_sequences.to_string(), "--max-top-n-tokens".to_string(), args.max_top_n_tokens.to_string(), - "--max-input-tokens".to_string(), - max_input_tokens.to_string(), + "--max-input-length".to_string(), + args.max_input_length.to_string(), "--max-total-tokens".to_string(), - max_total_tokens.to_string(), + args.max_total_tokens.to_string(), "--max-batch-prefill-tokens".to_string(), - max_batch_prefill_tokens.to_string(), + args.max_batch_prefill_tokens.to_string(), "--waiting-served-ratio".to_string(), args.waiting_served_ratio.to_string(), "--max-waiting-tokens".to_string(), @@ -1262,99 +1253,16 @@ fn main() -> Result<(), LauncherError> { tracing::info!("{:?}", args); - use hf_hub::{api::sync::Api, Repo, RepoType}; - - #[derive(Deserialize)] - struct Config { - max_position_embeddings: usize, - } - - let config: Config = { - let model_id = args.model_id.clone(); - let mut path = std::path::Path::new(&args.model_id).to_path_buf(); - let filename = if !path.exists() { - // Assume it's a hub id - let api = Api::new().unwrap(); - let repo = if let Some(ref revision) = args.revision { - api.repo(Repo::with_revision( - model_id, - RepoType::Model, - revision.to_string(), - )) - } else { - api.model(model_id) - }; - repo.get("config.json").unwrap() - } else { - path.push("config.json"); - path - }; - - let content = std::fs::read_to_string(filename).unwrap(); - let config: Config = serde_json::from_str(&content).unwrap(); - - let max_default = 2usize.pow(14); - - let max_position_embeddings = if config.max_position_embeddings > max_default { - let max = config.max_position_embeddings; - tracing::info!("Model supports up to {max} but tgi will now set its default to {max_default} instead. This is to save VRAM by refusing large prompts in order to allow more users on the same hardware. You can increase that size using `--max-batch-prefill-tokens={} --max-total-tokens={max} --max-input-tokens={}`.", max - 1, max - 1); - max_default - } else { - config.max_position_embeddings - }; - - Config { - max_position_embeddings, - } - }; - - let max_input_tokens = { - match (args.max_input_tokens, args.max_input_length) { - (Some(max_input_tokens), Some(max_input_length)) => { - return Err(LauncherError::ArgumentValidation( - format!("Both `max_input_tokens` ({max_input_tokens}) and `max_input_length` ({max_input_length}) are set. Please define only `max_input_tokens` as `max_input_length is deprecated for naming consistency.", - ))); - } - (Some(max_input_tokens), None) | (None, Some(max_input_tokens)) => max_input_tokens, - (None, None) => { - let value = config.max_position_embeddings - 1; - tracing::info!("Default `max_input_tokens` to {value}"); - value - } - } - }; - let max_total_tokens = { - match args.max_total_tokens { - Some(max_total_tokens) => max_total_tokens, - None => { - let value = config.max_position_embeddings; - tracing::info!("Default `max_total_tokens` to {value}"); - value - } - } - }; - let max_batch_prefill_tokens = { - // TODO get config. - match args.max_batch_prefill_tokens { - Some(max_batch_prefill_tokens) => max_batch_prefill_tokens, - None => { - let value = config.max_position_embeddings as u32 - 1; - tracing::info!("Default `max_batch_prefill_tokens` to {value}"); - value - } - } - }; - // Validate args - if max_input_tokens >= max_total_tokens { + if args.max_input_length >= args.max_total_tokens { return Err(LauncherError::ArgumentValidation( - "`max_input_tokens must be < `max_total_tokens`".to_string(), + "`max_input_length` must be < `max_total_tokens`".to_string(), )); } - if max_input_tokens as u32 > max_batch_prefill_tokens { + if args.max_input_length as u32 > args.max_batch_prefill_tokens { return Err(LauncherError::ArgumentValidation(format!( - "`max_batch_prefill_tokens` must be >= `max_input_tokens`. Given: {} and {}", - max_batch_prefill_tokens, max_input_tokens + "`max_batch_prefill_tokens` must be >= `max_input_length`. Given: {} and {}", + args.max_batch_prefill_tokens, args.max_input_length ))); } @@ -1376,16 +1284,16 @@ fn main() -> Result<(), LauncherError> { } if let Some(ref max_batch_total_tokens) = args.max_batch_total_tokens { - if max_batch_prefill_tokens > *max_batch_total_tokens { + if args.max_batch_prefill_tokens > *max_batch_total_tokens { return Err(LauncherError::ArgumentValidation(format!( "`max_batch_prefill_tokens` must be <= `max_batch_total_tokens`. Given: {} and {}", - max_batch_prefill_tokens, max_batch_total_tokens + args.max_batch_prefill_tokens, max_batch_total_tokens ))); } - if max_total_tokens as u32 > *max_batch_total_tokens { + if args.max_total_tokens as u32 > *max_batch_total_tokens { return Err(LauncherError::ArgumentValidation(format!( "`max_total_tokens` must be <= `max_batch_total_tokens`. Given: {} and {}", - max_total_tokens, max_batch_total_tokens + args.max_total_tokens, max_batch_total_tokens ))); } } @@ -1446,19 +1354,11 @@ fn main() -> Result<(), LauncherError> { return Ok(()); } - let mut webserver = spawn_webserver( - num_shard, - args, - max_input_tokens, - max_total_tokens, - max_batch_prefill_tokens, - shutdown.clone(), - &shutdown_receiver, - ) - .map_err(|err| { - shutdown_shards(shutdown.clone(), &shutdown_receiver); - err - })?; + let mut webserver = spawn_webserver(num_shard, args, shutdown.clone(), &shutdown_receiver) + .map_err(|err| { + shutdown_shards(shutdown.clone(), &shutdown_receiver); + err + })?; // Default exit code let mut exit_code = Ok(()); diff --git a/router/src/main.rs b/router/src/main.rs index 16a031ae..aace2ff9 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -35,7 +35,7 @@ struct Args { #[clap(default_value = "5", long, env)] max_top_n_tokens: u32, #[clap(default_value = "1024", long, env)] - max_input_tokens: usize, + max_input_length: usize, #[clap(default_value = "2048", long, env)] max_total_tokens: usize, #[clap(default_value = "1.2", long, env)] @@ -90,7 +90,7 @@ async fn main() -> Result<(), RouterError> { max_best_of, max_stop_sequences, max_top_n_tokens, - max_input_tokens, + max_input_length, max_total_tokens, waiting_served_ratio, max_batch_prefill_tokens, @@ -118,13 +118,13 @@ async fn main() -> Result<(), RouterError> { init_logging(otlp_endpoint, json_output); // Validate args - if max_input_tokens >= max_total_tokens { + if max_input_length >= max_total_tokens { return Err(RouterError::ArgumentValidation( - "`max_input_tokens` must be < `max_total_tokens`".to_string(), + "`max_input_length` must be < `max_total_tokens`".to_string(), )); } - if max_input_tokens as u32 > max_batch_prefill_tokens { - return Err(RouterError::ArgumentValidation(format!("`max_batch_prefill_tokens` must be >= `max_input_tokens`. Given: {max_batch_prefill_tokens} and {max_input_tokens}"))); + if max_input_length as u32 > max_batch_prefill_tokens { + return Err(RouterError::ArgumentValidation(format!("`max_batch_prefill_tokens` must be >= `max_input_length`. Given: {max_batch_prefill_tokens} and {max_input_length}"))); } if validation_workers == 0 { @@ -311,7 +311,7 @@ async fn main() -> Result<(), RouterError> { tracing::info!("Warming up model"); let max_supported_batch_total_tokens = match sharded_client .warmup( - max_input_tokens as u32, + max_input_length as u32, max_batch_prefill_tokens, max_total_tokens as u32, max_batch_size, @@ -374,7 +374,7 @@ async fn main() -> Result<(), RouterError> { max_best_of, max_stop_sequences, max_top_n_tokens, - max_input_tokens, + max_input_length, max_total_tokens, waiting_served_ratio, max_batch_prefill_tokens, From c2fd35d875155d858a60542edabb9df59587e1f8 Mon Sep 17 00:00:00 2001 From: oOraph <13552058+oOraph@users.noreply.github.com> Date: Thu, 11 Apr 2024 19:31:48 +0200 Subject: [PATCH 17/74] Dev/mask ldconfig output v2 (#1716) wrap text-generation-launcher in docker image mask ldconfig failures to user (no need in most cases anyway) --------- Signed-off-by: Raphael Glon Co-authored-by: Raphael Glon --- Dockerfile | 4 +++- launcher/src/main.rs | 10 ---------- tgi-entrypoint.sh | 5 +++++ 3 files changed, 8 insertions(+), 11 deletions(-) create mode 100755 tgi-entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 0bc5f8d9..c2ae4c85 100644 --- a/Dockerfile +++ b/Dockerfile @@ -245,5 +245,7 @@ ENTRYPOINT ["./entrypoint.sh"] # Final image FROM base -ENTRYPOINT ["text-generation-launcher"] +COPY ./tgi-entrypoint.sh /tgi-entrypoint.sh + +ENTRYPOINT ["/tgi-entrypoint.sh"] CMD ["--json-output"] diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 3f810023..836b0381 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -1217,16 +1217,6 @@ fn terminate(process_name: &str, mut process: Child, timeout: Duration) -> io::R } fn main() -> Result<(), LauncherError> { - match Command::new("ldconfig").spawn() { - Ok(_) => {} - Err(err) => { - tracing::warn!( - "Unable to refresh ldconfig cache. Skipping (useless in most cases). Details {:?}", - err - ) - } - } - // Pattern match configuration let args: Args = Args::parse(); diff --git a/tgi-entrypoint.sh b/tgi-entrypoint.sh new file mode 100755 index 00000000..ea94dcd9 --- /dev/null +++ b/tgi-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +ldconfig 2>/dev/null || echo 'unable to refresh ld cache, not a big deal in most cases' + +text-generation-launcher $@ From 408dbc485c112e023a97fc959d4cb3721cf89fed Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 12 Apr 2024 08:13:30 +0200 Subject: [PATCH 18/74] Fp8 Support (#1726) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --------- Co-authored-by: Dong Shin --- docs/source/basic_tutorials/launcher.md | 1 + launcher/src/main.rs | 8 ++++ server/text_generation_server/cli.py | 1 + server/text_generation_server/utils/layers.py | 44 +++++++++++++++++++ 4 files changed, 54 insertions(+) diff --git a/docs/source/basic_tutorials/launcher.md b/docs/source/basic_tutorials/launcher.md index 86394ff7..40ee55d7 100644 --- a/docs/source/basic_tutorials/launcher.md +++ b/docs/source/basic_tutorials/launcher.md @@ -66,6 +66,7 @@ Options: - bitsandbytes: Bitsandbytes 8bit. Can be applied on any model, will cut the memory requirement in half, but it is known that the model will be much slower to run than the native f16 - bitsandbytes-nf4: Bitsandbytes 4bit. Can be applied on any model, will cut the memory requirement by 4x, but it is known that the model will be much slower to run than the native f16 - bitsandbytes-fp4: Bitsandbytes 4bit. nf4 should be preferred in most cases but maybe this one has better perplexity performance for you model + - fp8: [FP8](https://developer.nvidia.com/blog/nvidia-arm-and-intel-publish-fp8-specification-for-standardization-as-an-interchange-format-for-ai/) (e4m3) works on H100 and above This dtype has native ops should be the fastest if available. This is currently not the fastest because of local unpacking + padding to satisfy matrix multiplication limitations ``` ## SPECULATE diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 836b0381..cf876fbd 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -47,6 +47,11 @@ enum Quantization { /// Bitsandbytes 4bit. nf4 should be preferred in most cases but maybe this one has better /// perplexity performance for you model BitsandbytesFP4, + /// [FP8](https://developer.nvidia.com/blog/nvidia-arm-and-intel-publish-fp8-specification-for-standardization-as-an-interchange-format-for-ai/) (e4m3) works on H100 and above + /// This dtype has native ops should be the fastest if available. + /// This is currently not the fastest because of local unpacking + padding to satisfy matrix + /// multiplication limitations. + Fp8, } impl std::fmt::Display for Quantization { @@ -73,6 +78,9 @@ impl std::fmt::Display for Quantization { Quantization::Eetq => { write!(f, "eetq") } + Quantization::Fp8 => { + write!(f, "fp8") + } } } } diff --git a/server/text_generation_server/cli.py b/server/text_generation_server/cli.py index e8b126d9..bb0963d4 100644 --- a/server/text_generation_server/cli.py +++ b/server/text_generation_server/cli.py @@ -19,6 +19,7 @@ class Quantization(str, Enum): gptq = "gptq" awq = "awq" eetq = "eetq" + fp8 = "fp8" class Dtype(str, Enum): diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index f29e55c5..2b95bc74 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -182,6 +182,48 @@ class EETQLinear(nn.Module): return output +def fp8_quantize(weight, qdtype=torch.float8_e4m3fn): + device = weight.device + # weight, scale = quant_weights(weight, torch.int8, False) + finfo = torch.finfo(qdtype) + # Calculate the scale as dtype max divided by absmax + scale = finfo.max / weight.abs().max().clamp(min=1e-12) + # scale and clamp the tensor to bring it to + # the representative range of float8 data type + # (as default cast is unsaturated) + qweight = (weight * scale).clamp(min=finfo.min, max=finfo.max) + # Return both float8 data and the inverse scale (as float), + # as both required as inputs to torch._scaled_mm + qweight = qweight.to(qdtype) + scale = scale.float().reciprocal() + return qweight, scale + + +class Fp8Linear(nn.Module): + def __init__( + self, + weight, + bias, + ) -> None: + super().__init__() + self.dtype = weight.dtype + self.qweight, self.scale = fp8_quantize(weight) + + self.bias = bias if bias is not None else None + + def forward(self, input: torch.Tensor) -> torch.Tensor: + qinput, scale = fp8_quantize(input) + output, _ = torch._scaled_mm( + qinput, + self.qweight.t(), + out_dtype=self.dtype, + scale_a=scale, + scale_b=self.scale, + bias=self.bias, + ) + return output + + class Linear8bitLt(nn.Module): def __init__( self, @@ -293,6 +335,8 @@ def get_linear(weight, bias, quantize): raise ImportError( "Please install EETQ from https://github.com/NetEase-FuXi/EETQ" ) + elif quantize == "fp8": + linear = Fp8Linear(weight, bias) elif quantize == "bitsandbytes": warn_deprecate_bnb() linear = Linear8bitLt( From 6c2c44b84c829d2c375e4c647e3fa1ebb5905503 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 12 Apr 2024 08:15:28 +0200 Subject: [PATCH 19/74] Upgrade EETQ (Fixes the cuda graphs). (#1729) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- server/Makefile-eetq | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/Makefile-eetq b/server/Makefile-eetq index 8c060987..726e47b5 100644 --- a/server/Makefile-eetq +++ b/server/Makefile-eetq @@ -1,4 +1,4 @@ -eetq_commit := 71adb5e191bb8290069a580abff0355d7b2dd5c9 +eetq_commit := 1657b1504faa359e2ce0ac02999439d7ac8c74c0 eetq: # Clone eetq From c2c98725f868027bc66366e3cf2cc13dd4ba90b3 Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Fri, 12 Apr 2024 10:59:04 +0200 Subject: [PATCH 20/74] fix(router): fix a possible deadlock in next_batch (#1731) --- router/src/queue.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/router/src/queue.rs b/router/src/queue.rs index 52ea16ca..20f25b09 100644 --- a/router/src/queue.rs +++ b/router/src/queue.rs @@ -200,6 +200,10 @@ impl State { } } + // Pad prefill_token_budget to be a multiple of block size + let prefill_token_budget = + ((prefill_token_budget + self.block_size - 1) / self.block_size) * self.block_size; + // Create span for this batch to add context to inference calls let next_batch_span = info_span!(parent: None, "batch", batch_size = tracing::field::Empty); next_batch_span.follows_from(&Span::current()); From 9d8f21cace66e8593bc559174de0eed3ecdab6a2 Mon Sep 17 00:00:00 2001 From: Christof Weickhardt Date: Fri, 12 Apr 2024 12:34:13 +0200 Subject: [PATCH 21/74] chore(cargo-toml): apply lto fat and codegen-units of one (#1651) # What does this PR do? I have suggested similar changes over at https://github.com/huggingface/text-embeddings-inference/pull/201. Here being my additional question, why `debug` is enabled during release building? (hence I didn't add the flag to script things) Applying the following optimizations: - `lto` (link time optimizations) over all code (including dependencies) - Using a single `codegen-unit` to apply optimizations within 1 code unit at build time ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. @OlivierDehaene OR @Narsil --- Cargo.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 77a30f55..a9e7f1c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,5 +17,7 @@ homepage = "https://github.com/huggingface/text-generation-inference" [profile.release] debug = 1 incremental = true -lto = "off" +lto = "fat" +opt-level = 3 +codegen-units = 1 panic = "abort" From 1b2670c823e5232a4e81c16314ac6d4dc8e59cff Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 12 Apr 2024 14:20:31 +0200 Subject: [PATCH 22/74] Improve the defaults for the launcher (#1727) # What does this PR do? - Renamed `max_input_length` into `max_input_tokens` for consistency (backward compatible change, will yell if both are set.) - Will now use the config for `max_input_tokens` `max_total_token` and `max_batch_total_tokens`. - Capping the values to 16k in order to save VRAM on behalf of users (overriddable by simply setting the values). Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- Cargo.lock | 2 + docs/source/basic_tutorials/launcher.md | 26 ++- integration-tests/models/test_t5_sharded.py | 2 +- launcher/Cargo.toml | 4 +- launcher/src/main.rs | 217 ++++++++++++++++---- router/src/main.rs | 19 +- router/src/queue.rs | 6 + router/src/validation.rs | 18 +- 8 files changed, 226 insertions(+), 68 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 65b9f8b7..8c1784bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3452,7 +3452,9 @@ dependencies = [ "clap", "ctrlc", "float_eq", + "hf-hub", "nix", + "once_cell", "reqwest", "serde", "serde_json", diff --git a/docs/source/basic_tutorials/launcher.md b/docs/source/basic_tutorials/launcher.md index 40ee55d7..d9b272db 100644 --- a/docs/source/basic_tutorials/launcher.md +++ b/docs/source/basic_tutorials/launcher.md @@ -60,9 +60,9 @@ Options: [env: QUANTIZE=] Possible values: - - awq: 4 bit quantization. Requires a specific AWQ quantized model: https://hf.co/models?search=awq. Should replace GPTQ models wherever possible because of the better latency - - eetq: 8 bit quantization, doesn't require specific model. Should be a drop-in replacement to bitsandbytes with much better performance. Kernels are from https://github.com/NetEase-FuXi/EETQ.git - - gptq: 4 bit quantization. Requires a specific GTPQ quantized model: https://hf.co/models?search=gptq. text-generation-inference will use exllama (faster) kernels wherever possible, and use triton kernel (wider support) when it's not. AWQ has faster kernels + - awq: 4 bit quantization. Requires a specific AWQ quantized model: . Should replace GPTQ models wherever possible because of the better latency + - eetq: 8 bit quantization, doesn't require specific model. Should be a drop-in replacement to bitsandbytes with much better performance. Kernels are from + - gptq: 4 bit quantization. Requires a specific GTPQ quantized model: . text-generation-inference will use exllama (faster) kernels wherever possible, and use triton kernel (wider support) when it's not. AWQ has faster kernels - bitsandbytes: Bitsandbytes 8bit. Can be applied on any model, will cut the memory requirement in half, but it is known that the model will be much slower to run than the native f16 - bitsandbytes-nf4: Bitsandbytes 4bit. Can be applied on any model, will cut the memory requirement by 4x, but it is known that the model will be much slower to run than the native f16 - bitsandbytes-fp4: Bitsandbytes 4bit. nf4 should be preferred in most cases but maybe this one has better perplexity performance for you model @@ -129,23 +129,29 @@ Options: [env: MAX_TOP_N_TOKENS=] [default: 5] +``` +## MAX_INPUT_TOKENS +```shell + --max-input-tokens + This is the maximum allowed input length (expressed in number of tokens) for users. The larger this value, the longer prompt users can send which can impact the overall memory required to handle the load. Please note that some models have a finite range of sequence they can handle. Default to min(max_position_embeddings - 1, 4095) + + [env: MAX_INPUT_TOKENS=] + ``` ## MAX_INPUT_LENGTH ```shell --max-input-length - This is the maximum allowed input length (expressed in number of tokens) for users. The larger this value, the longer prompt users can send which can impact the overall memory required to handle the load. Please note that some models have a finite range of sequence they can handle + Legacy version of [`Args::max_input_tokens`] [env: MAX_INPUT_LENGTH=] - [default: 1024] ``` ## MAX_TOTAL_TOKENS ```shell --max-total-tokens - This is the most important value to set as it defines the "memory budget" of running clients requests. Clients will send input sequences and ask to generate `max_new_tokens` on top. with a value of `1512` users can send either a prompt of `1000` and ask for `512` new tokens, or send a prompt of `1` and ask for `1511` max_new_tokens. The larger this value, the larger amount each request will be in your RAM and the less effective batching can be + This is the most important value to set as it defines the "memory budget" of running clients requests. Clients will send input sequences and ask to generate `max_new_tokens` on top. with a value of `1512` users can send either a prompt of `1000` and ask for `512` new tokens, or send a prompt of `1` and ask for `1511` max_new_tokens. The larger this value, the larger amount each request will be in your RAM and the less effective batching can be. Default to min(max_position_embeddings, 4096) [env: MAX_TOTAL_TOKENS=] - [default: 2048] ``` ## WAITING_SERVED_RATIO @@ -162,10 +168,9 @@ Options: ## MAX_BATCH_PREFILL_TOKENS ```shell --max-batch-prefill-tokens - Limits the number of tokens for the prefill operation. Since this operation take the most memory and is compute bound, it is interesting to limit the number of requests that can be sent + Limits the number of tokens for the prefill operation. Since this operation take the most memory and is compute bound, it is interesting to limit the number of requests that can be sent. Default to `max_input_tokens + 50` to give a bit of room [env: MAX_BATCH_PREFILL_TOKENS=] - [default: 4096] ``` ## MAX_BATCH_TOTAL_TOKENS @@ -210,10 +215,9 @@ Options: ## CUDA_GRAPHS ```shell --cuda-graphs - Specify the batch sizes to compute cuda graphs for. Use "0" to disable + Specify the batch sizes to compute cuda graphs for. Use "0" to disable. Default = "1,2,4,8,16,32" [env: CUDA_GRAPHS=] - [default: 1,2,4,8,16,32,64,96,128] ``` ## HOSTNAME diff --git a/integration-tests/models/test_t5_sharded.py b/integration-tests/models/test_t5_sharded.py index 7c288b23..4b4cfd98 100644 --- a/integration-tests/models/test_t5_sharded.py +++ b/integration-tests/models/test_t5_sharded.py @@ -3,7 +3,7 @@ import pytest @pytest.fixture(scope="module") def t5_sharded_handle(launcher): - with launcher("google/flan-t5-xxl", num_shard=2) as handle: + with launcher("google/flan-t5-xxl", num_shard=4) as handle: yield handle diff --git a/launcher/Cargo.toml b/launcher/Cargo.toml index 7c598c37..6b6fd58e 100644 --- a/launcher/Cargo.toml +++ b/launcher/Cargo.toml @@ -9,8 +9,10 @@ homepage.workspace = true [dependencies] clap = { version = "4.4.5", features = ["derive", "env"] } ctrlc = { version = "3.4.1", features = ["termination"] } +hf-hub = "0.3.2" nix = { version = "0.28.0", features = ["signal"] } -serde = { version = "1.0.188", features = ["derive"] } +once_cell = "1.19.0" +serde = { version = "1.0.188", features = ["derive"] } serde_json = "1.0.107" tracing = "0.1.37" tracing-subscriber = { version = "0.3.17", features = ["json", "env-filter"] } diff --git a/launcher/src/main.rs b/launcher/src/main.rs index cf876fbd..be2426ee 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -1,4 +1,5 @@ use clap::{Parser, ValueEnum}; +use hf_hub::{api::sync::Api, Repo, RepoType}; use nix::sys::signal::{self, Signal}; use nix::unistd::Pid; use serde::Deserialize; @@ -19,17 +20,23 @@ use tracing_subscriber::EnvFilter; mod env_runtime; +#[derive(Deserialize)] +struct Config { + max_position_embeddings: Option, + max_seq_len: Option, +} + #[derive(Clone, Copy, Debug, ValueEnum)] enum Quantization { /// 4 bit quantization. Requires a specific AWQ quantized model: - /// https://hf.co/models?search=awq. + /// . /// Should replace GPTQ models wherever possible because of the better latency Awq, /// 8 bit quantization, doesn't require specific model. /// Should be a drop-in replacement to bitsandbytes with much better performance. - /// Kernels are from https://github.com/NetEase-FuXi/EETQ.git + /// Kernels are from Eetq, - /// 4 bit quantization. Requires a specific GTPQ quantized model: https://hf.co/models?search=gptq. + /// 4 bit quantization. Requires a specific GTPQ quantized model: . /// text-generation-inference will use exllama (faster) kernels wherever possible, and use /// triton kernel (wider support) when it's not. /// AWQ has faster kernels. @@ -214,8 +221,13 @@ struct Args { /// for users. The larger this value, the longer prompt users can send which /// can impact the overall memory required to handle the load. /// Please note that some models have a finite range of sequence they can handle. - #[clap(default_value = "1024", long, env)] - max_input_length: usize, + /// Default to min(max_position_embeddings - 1, 4095) + #[clap(long, env)] + max_input_tokens: Option, + + /// Legacy version of [`Args::max_input_tokens`]. + #[clap(long, env)] + max_input_length: Option, /// This is the most important value to set as it defines the "memory budget" /// of running clients requests. @@ -225,8 +237,9 @@ struct Args { /// `1511` max_new_tokens. /// The larger this value, the larger amount each request will be in your RAM /// and the less effective batching can be. - #[clap(default_value = "2048", long, env)] - max_total_tokens: usize, + /// Default to min(max_position_embeddings, 4096) + #[clap(long, env)] + max_total_tokens: Option, /// This represents the ratio of waiting queries vs running queries where /// you want to start considering pausing the running queries to include the waiting @@ -244,8 +257,9 @@ struct Args { /// Limits the number of tokens for the prefill operation. /// Since this operation take the most memory and is compute bound, it is interesting /// to limit the number of requests that can be sent. - #[clap(default_value = "4096", long, env)] - max_batch_prefill_tokens: u32, + /// Default to `max_input_tokens + 50` to give a bit of room. + #[clap(long, env)] + max_batch_prefill_tokens: Option, /// **IMPORTANT** This is one critical control to allow maximum usage /// of the available hardware. @@ -294,13 +308,9 @@ struct Args { /// Specify the batch sizes to compute cuda graphs for. /// Use "0" to disable. - #[clap( - long, - env, - value_delimiter = ',', - default_value = "1,2,4,8,16,32,64,96,128" - )] - cuda_graphs: Vec, + /// Default = "1,2,4,8,16,32" + #[clap(long, env, value_delimiter = ',')] + cuda_graphs: Option>, /// The IP address to listen on #[clap(default_value = "0.0.0.0", long, env)] @@ -808,6 +818,14 @@ enum LauncherError { WebserverCannotStart, } +impl core::fmt::Display for LauncherError { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { + write!(f, "{self:?}") + } +} + +impl std::error::Error for LauncherError {} + fn download_convert_model(args: &Args, running: Arc) -> Result<(), LauncherError> { // Enter download tracing span let _span = tracing::span!(tracing::Level::INFO, "download").entered(); @@ -944,6 +962,7 @@ fn download_convert_model(args: &Args, running: Arc) -> Result<(), L fn spawn_shards( num_shard: usize, args: &Args, + cuda_graphs: Vec, shutdown: Arc, shutdown_receiver: &mpsc::Receiver<()>, shutdown_sender: mpsc::Sender<()>, @@ -971,11 +990,7 @@ fn spawn_shards( let disable_custom_kernels = args.disable_custom_kernels; let watermark_gamma = args.watermark_gamma; let watermark_delta = args.watermark_delta; - let cuda_graphs: Vec = args - .cuda_graphs - .iter() - .filter_map(|&c| if c > 0 { Some(c) } else { None }) - .collect(); + let cuda_graphs_clone = cuda_graphs.clone(); let cuda_memory_fraction = args.cuda_memory_fraction; let rope_scaling = args.rope_scaling; let rope_factor = args.rope_factor; @@ -997,7 +1012,7 @@ fn spawn_shards( disable_custom_kernels, watermark_gamma, watermark_delta, - cuda_graphs, + cuda_graphs_clone, cuda_memory_fraction, rope_scaling, rope_factor, @@ -1053,6 +1068,9 @@ fn compute_type(num_shard: usize) -> Option { fn spawn_webserver( num_shard: usize, args: Args, + max_input_tokens: usize, + max_total_tokens: usize, + max_batch_prefill_tokens: u32, shutdown: Arc, shutdown_receiver: &mpsc::Receiver<()>, ) -> Result { @@ -1068,12 +1086,12 @@ fn spawn_webserver( args.max_stop_sequences.to_string(), "--max-top-n-tokens".to_string(), args.max_top_n_tokens.to_string(), - "--max-input-length".to_string(), - args.max_input_length.to_string(), + "--max-input-tokens".to_string(), + max_input_tokens.to_string(), "--max-total-tokens".to_string(), - args.max_total_tokens.to_string(), + max_total_tokens.to_string(), "--max-batch-prefill-tokens".to_string(), - args.max_batch_prefill_tokens.to_string(), + max_batch_prefill_tokens.to_string(), "--waiting-served-ratio".to_string(), args.waiting_served_ratio.to_string(), "--max-waiting-tokens".to_string(), @@ -1251,19 +1269,129 @@ fn main() -> Result<(), LauncherError> { tracing::info!("{:?}", args); + let get_max_position_embeddings = || -> Result> { + let model_id = args.model_id.clone(); + let mut path = std::path::Path::new(&args.model_id).to_path_buf(); + let filename = if !path.exists() { + // Assume it's a hub id + let api = Api::new()?; + let repo = if let Some(ref revision) = args.revision { + api.repo(Repo::with_revision( + model_id, + RepoType::Model, + revision.to_string(), + )) + } else { + api.model(model_id) + }; + repo.get("config.json")? + } else { + path.push("config.json"); + path + }; + + let content = std::fs::read_to_string(filename)?; + let config: Config = serde_json::from_str(&content)?; + + // Quantization usually means you're even more RAM constrained. + let max_default = 4096; + + let max_position_embeddings = match (config.max_position_embeddings, config.max_seq_len) { + (Some(max_position_embeddings), _) | (None, Some(max_position_embeddings)) => { + if max_position_embeddings > max_default { + let max = max_position_embeddings; + tracing::info!("Model supports up to {max} but tgi will now set its default to {max_default} instead. This is to save VRAM by refusing large prompts in order to allow more users on the same hardware. You can increase that size using `--max-batch-prefill-tokens={} --max-total-tokens={max} --max-input-tokens={}`.", max + 50, max - 1); + max_default + } else { + max_position_embeddings + } + } + _ => { + return Err(Box::new(LauncherError::ArgumentValidation( + "no max defined".to_string(), + ))); + } + }; + Ok(max_position_embeddings) + }; + let max_position_embeddings: usize = get_max_position_embeddings().unwrap_or(4096); + + let max_input_tokens = { + match (args.max_input_tokens, args.max_input_length) { + (Some(max_input_tokens), Some(max_input_length)) => { + return Err(LauncherError::ArgumentValidation( + format!("Both `max_input_tokens` ({max_input_tokens}) and `max_input_length` ({max_input_length}) are set. Please define only `max_input_tokens` as `max_input_length is deprecated for naming consistency.", + ))); + } + (Some(max_input_tokens), None) | (None, Some(max_input_tokens)) => max_input_tokens, + (None, None) => { + let value = max_position_embeddings - 1; + tracing::info!("Default `max_input_tokens` to {value}"); + value + } + } + }; + let max_total_tokens = { + match args.max_total_tokens { + Some(max_total_tokens) => max_total_tokens, + None => { + let value = max_position_embeddings; + tracing::info!("Default `max_total_tokens` to {value}"); + value + } + } + }; + let max_batch_prefill_tokens = { + match args.max_batch_prefill_tokens { + Some(max_batch_prefill_tokens) => max_batch_prefill_tokens, + None => { + let value: u32 = if let Some(max_batch_size) = args.max_batch_size { + max_batch_size * max_input_tokens + } else { + // Adding some edge in order to account for potential block_size alignement + // issue. + max_input_tokens + 50 + } as u32; + tracing::info!("Default `max_batch_prefill_tokens` to {value}"); + value + } + } + }; + // Validate args - if args.max_input_length >= args.max_total_tokens { + if max_input_tokens >= max_total_tokens { return Err(LauncherError::ArgumentValidation( - "`max_input_length` must be < `max_total_tokens`".to_string(), + "`max_input_tokens must be < `max_total_tokens`".to_string(), )); } - if args.max_input_length as u32 > args.max_batch_prefill_tokens { + if max_input_tokens as u32 > max_batch_prefill_tokens { return Err(LauncherError::ArgumentValidation(format!( - "`max_batch_prefill_tokens` must be >= `max_input_length`. Given: {} and {}", - args.max_batch_prefill_tokens, args.max_input_length + "`max_batch_prefill_tokens` must be >= `max_input_tokens`. Given: {} and {}", + max_batch_prefill_tokens, max_input_tokens ))); } + let cuda_graphs = match (&args.cuda_graphs, &args.quantize) { + (Some(cuda_graphs), Some(_q)) => cuda_graphs.clone(), + #[allow(deprecated)] + ( + None, + Some( + Quantization::Bitsandbytes + | Quantization::BitsandbytesNF4 + | Quantization::BitsandbytesFP4, + ), + ) => { + tracing::info!("Bitsandbytes doesn't work with cuda graphs, deactivating them"); + vec![] + } + _ => { + let cuda_graphs = vec![1, 2, 4, 8, 16, 32]; + tracing::info!("Using default cuda graphs {cuda_graphs:?}"); + cuda_graphs + } + }; + if args.validation_workers == 0 { return Err(LauncherError::ArgumentValidation( "`validation_workers` must be > 0".to_string(), @@ -1282,16 +1410,16 @@ fn main() -> Result<(), LauncherError> { } if let Some(ref max_batch_total_tokens) = args.max_batch_total_tokens { - if args.max_batch_prefill_tokens > *max_batch_total_tokens { + if max_batch_prefill_tokens > *max_batch_total_tokens { return Err(LauncherError::ArgumentValidation(format!( "`max_batch_prefill_tokens` must be <= `max_batch_total_tokens`. Given: {} and {}", - args.max_batch_prefill_tokens, max_batch_total_tokens + max_batch_prefill_tokens, max_batch_total_tokens ))); } - if args.max_total_tokens as u32 > *max_batch_total_tokens { + if max_total_tokens as u32 > *max_batch_total_tokens { return Err(LauncherError::ArgumentValidation(format!( "`max_total_tokens` must be <= `max_batch_total_tokens`. Given: {} and {}", - args.max_total_tokens, max_batch_total_tokens + max_total_tokens, max_batch_total_tokens ))); } } @@ -1338,6 +1466,7 @@ fn main() -> Result<(), LauncherError> { spawn_shards( num_shard, &args, + cuda_graphs, shutdown.clone(), &shutdown_receiver, shutdown_sender, @@ -1352,11 +1481,19 @@ fn main() -> Result<(), LauncherError> { return Ok(()); } - let mut webserver = spawn_webserver(num_shard, args, shutdown.clone(), &shutdown_receiver) - .map_err(|err| { - shutdown_shards(shutdown.clone(), &shutdown_receiver); - err - })?; + let mut webserver = spawn_webserver( + num_shard, + args, + max_input_tokens, + max_total_tokens, + max_batch_prefill_tokens, + shutdown.clone(), + &shutdown_receiver, + ) + .map_err(|err| { + shutdown_shards(shutdown.clone(), &shutdown_receiver); + err + })?; // Default exit code let mut exit_code = Ok(()); diff --git a/router/src/main.rs b/router/src/main.rs index aace2ff9..f3a6c46f 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -35,7 +35,7 @@ struct Args { #[clap(default_value = "5", long, env)] max_top_n_tokens: u32, #[clap(default_value = "1024", long, env)] - max_input_length: usize, + max_input_tokens: usize, #[clap(default_value = "2048", long, env)] max_total_tokens: usize, #[clap(default_value = "1.2", long, env)] @@ -90,7 +90,7 @@ async fn main() -> Result<(), RouterError> { max_best_of, max_stop_sequences, max_top_n_tokens, - max_input_length, + max_input_tokens, max_total_tokens, waiting_served_ratio, max_batch_prefill_tokens, @@ -118,13 +118,13 @@ async fn main() -> Result<(), RouterError> { init_logging(otlp_endpoint, json_output); // Validate args - if max_input_length >= max_total_tokens { + if max_input_tokens >= max_total_tokens { return Err(RouterError::ArgumentValidation( - "`max_input_length` must be < `max_total_tokens`".to_string(), + "`max_input_tokens` must be < `max_total_tokens`".to_string(), )); } - if max_input_length as u32 > max_batch_prefill_tokens { - return Err(RouterError::ArgumentValidation(format!("`max_batch_prefill_tokens` must be >= `max_input_length`. Given: {max_batch_prefill_tokens} and {max_input_length}"))); + if max_input_tokens as u32 > max_batch_prefill_tokens { + return Err(RouterError::ArgumentValidation(format!("`max_batch_prefill_tokens` must be >= `max_input_tokens`. Given: {max_batch_prefill_tokens} and {max_input_tokens}"))); } if validation_workers == 0 { @@ -311,7 +311,7 @@ async fn main() -> Result<(), RouterError> { tracing::info!("Warming up model"); let max_supported_batch_total_tokens = match sharded_client .warmup( - max_input_length as u32, + max_input_tokens as u32, max_batch_prefill_tokens, max_total_tokens as u32, max_batch_size, @@ -374,7 +374,7 @@ async fn main() -> Result<(), RouterError> { max_best_of, max_stop_sequences, max_top_n_tokens, - max_input_length, + max_input_tokens, max_total_tokens, waiting_served_ratio, max_batch_prefill_tokens, @@ -402,12 +402,15 @@ async fn main() -> Result<(), RouterError> { /// - otlp_endpoint is an optional URL to an Open Telemetry collector /// - LOG_LEVEL may be TRACE, DEBUG, INFO, WARN or ERROR (default to INFO) /// - LOG_FORMAT may be TEXT or JSON (default to TEXT) +/// - LOG_COLORIZE may be "false" or "true" (default to "true" or ansi supported platforms) fn init_logging(otlp_endpoint: Option, json_output: bool) { let mut layers = Vec::new(); // STDOUT/STDERR layer + let ansi = std::env::var("LOG_COLORIZE") != Ok("1".to_string()); let fmt_layer = tracing_subscriber::fmt::layer() .with_file(true) + .with_ansi(ansi) .with_line_number(true); let fmt_layer = match json_output { diff --git a/router/src/queue.rs b/router/src/queue.rs index 20f25b09..a32673dd 100644 --- a/router/src/queue.rs +++ b/router/src/queue.rs @@ -190,12 +190,14 @@ impl State { token_budget: u32, ) -> Option { if self.entries.is_empty() { + tracing::debug!("No queue"); return None; } // Check if we have enough entries if let Some(min_size) = min_size { if self.entries.len() < min_size { + tracing::debug!("Not enough entries"); return None; } } @@ -222,6 +224,7 @@ impl State { // was dropped by the client) if entry.response_tx.is_closed() { metrics::increment_counter!("tgi_request_failure", "err" => "dropped"); + tracing::debug!("Dropping entry"); continue; } @@ -258,10 +261,12 @@ impl State { { // Entry is over budget // Add it back to the front + tracing::debug!("Over budget: prefill_tokens={prefill_tokens} > {prefill_token_budget} || {prefill_tokens} + {decode_tokens} + {} > {token_budget}", self.speculate); self.entries.push_front((id, entry)); break; } + tracing::debug!("Accepting entry"); // Create a new span to link the batch back to this entry let entry_batch_span = info_span!(parent: &entry.span, "infer"); // Add relationships @@ -292,6 +297,7 @@ impl State { // Empty batch if batch_requests.is_empty() { + tracing::debug!("Filterered out all entries"); return None; } diff --git a/router/src/validation.rs b/router/src/validation.rs index 24bcf191..2029c7e0 100644 --- a/router/src/validation.rs +++ b/router/src/validation.rs @@ -161,14 +161,17 @@ impl Validation { } else { return Err(ValidationError::UnsetMaxNewTokens); }; - let input_length = truncate.unwrap_or(self.max_input_length); + let mut input_length = truncate.unwrap_or(self.max_input_length); + // We don't have a tokenizer, therefore we have no idea how long is the query, let + // them through and hope for the best. // Validate MaxNewTokens if (input_length as u32 + max_new_tokens) > self.max_total_tokens as u32 { - return Err(ValidationError::MaxNewTokens( - self.max_total_tokens - self.max_input_length, - max_new_tokens, - )); + input_length = input_length.saturating_sub(max_new_tokens as usize); + // return Err(ValidationError::MaxNewTokens( + // self.max_total_tokens - self.max_input_length, + // max_new_tokens, + // )); } Ok((inputs, input_length, max_new_tokens)) @@ -664,8 +667,9 @@ mod tests { .validate_input("Hello".to_string(), None, Some(max_new_tokens)) .await { - Err(ValidationError::MaxNewTokens(1, 10)) => (), - _ => panic!("Unexpected not max new tokens"), + // Err(ValidationError::MaxNewTokens(1, 10)) => (), + Ok((_s, 0, 10)) => (), + r => panic!("Unexpected not max new tokens: {r:?}"), } } From eefea5ee3184179b2f440238e403d26e34a17491 Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Fri, 12 Apr 2024 16:24:45 +0200 Subject: [PATCH 23/74] feat: medusa v2 (#1734) --- .../text_generation_server/models/__init__.py | 2 +- .../models/flash_causal_lm.py | 24 +-- server/text_generation_server/utils/layers.py | 165 +++++++++++++++--- 3 files changed, 146 insertions(+), 45 deletions(-) diff --git a/server/text_generation_server/models/__init__.py b/server/text_generation_server/models/__init__.py index 00c8b9a8..06792b0d 100644 --- a/server/text_generation_server/models/__init__.py +++ b/server/text_generation_server/models/__init__.py @@ -145,7 +145,7 @@ def get_model( if speculate is not None: if speculate > speculate_medusa: raise RuntimeError( - "Speculate is set to `{speculate}` but this medusa models only has `{speculate_medusa}` heads, please make them match" + f"Speculate is set to `{speculate}` but this medusa models only has `{speculate_medusa}` heads, please make them match" ) else: set_speculate(speculate) diff --git a/server/text_generation_server/models/flash_causal_lm.py b/server/text_generation_server/models/flash_causal_lm.py index 2a9d3914..2c440083 100644 --- a/server/text_generation_server/models/flash_causal_lm.py +++ b/server/text_generation_server/models/flash_causal_lm.py @@ -814,7 +814,7 @@ class FlashCausalLM(Model): for bs in CUDA_GRAPHS: if self.speculate is None or self.speculate + 1 <= bs: self.cuda_graph_warmup(bs, max_s, max_bt) - except Exception: + except torch.cuda.OutOfMemoryError: logger.exception(f"Decode cuda graph warmup failed") return int(num_blocks * BLOCK_SIZE) @@ -874,22 +874,14 @@ class FlashCausalLM(Model): lm_head_indices = batch.prefill_head_indices bs = input_ids.shape[0] - padded_bs = bs - if bs == 3: - padded_bs = 4 - elif 3 < bs <= 8: - padded_bs = 8 - elif bs > 8: - padded_bs = (bs + 7) // 8 * 8 + sorted_padded_bs = sorted([k for k in self.cuda_graphs.keys() if k >= bs]) + if sorted_padded_bs: + # Get associated cuda graph + cuda_graph = self.cuda_graphs[sorted_padded_bs[0]] + else: + cuda_graph = None - # Try to find an associated cuda graph - cuda_graph = self.cuda_graphs.get(padded_bs, None) - - if ( - cu_seqlen_prefill is not None - or cuda_graph is None - or batch.speculative_ids is not None - ): + if cu_seqlen_prefill is not None or cuda_graph is None: return self.model.forward( input_ids=input_ids, position_ids=position_ids, diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index 2b95bc74..2c12984b 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -432,12 +432,12 @@ class ResBlock(torch.nn.Module): class MedusaModel(torch.nn.Module): - def __init__(self, config, weights): + def __init__(self, config, medusa_config, weights): super().__init__() self.heads = torch.nn.ModuleList( [ - MedusaHead(config, prefix=f"{i}", weights=weights) - for i in range(config["medusa_num_heads"]) + MedusaHead(config, medusa_config, prefix=f"{i}", weights=weights) + for i in range(medusa_config["medusa_num_heads"]) ] ) @@ -447,12 +447,12 @@ class MedusaModel(torch.nn.Module): class MedusaHead(torch.nn.Module): - def __init__(self, config, prefix, weights): + def __init__(self, config, medusa_config, prefix, weights): super().__init__() self.blocks = torch.nn.ModuleList( [ ResBlock(config, prefix=f"{prefix}.{i}", weights=weights) - for i in range(config["medusa_num_layers"]) + for i in range(medusa_config["medusa_num_layers"]) ] ) n = len(self.blocks) @@ -467,7 +467,7 @@ class MedusaHead(torch.nn.Module): return x -class SpeculativeHead(nn.Module): +class MedusaHeadV1(nn.Module): def __init__(self, lm_head, medusa): super().__init__() self.lm_head = lm_head @@ -475,38 +475,147 @@ class SpeculativeHead(nn.Module): @staticmethod def load(config, prefix: str, weights): + from pathlib import Path + from safetensors import safe_open + import json + + use_medusa = config.use_medusa + + medusa_config = str(Path(use_medusa) / "config.json") + filename = str(Path(use_medusa) / "medusa_lm_head.safetensors") + + with open(medusa_config, "r") as f: + medusa_config = json.load(f) + routing = weights.routing + with safe_open(filename, framework="pytorch") as f: + for k in f.keys(): + if k in routing and routing[k] != filename: + raise RuntimeError( + f"Key {k} was found in multiple files: {filename} and {routing[k]}" + ) + routing[k] = filename + + medusa = MedusaModel(config, medusa_config, weights) lm_head = TensorParallelHead.load(config, prefix, weights) + return MedusaHeadV1(lm_head, medusa) + + def forward( + self, input: torch.Tensor + ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: + logits = self.lm_head(input) + speculative_logits = self.medusa(input) + return logits, speculative_logits + + +class MedusaHeadV2(nn.Module): + def __init__(self, config, prefix, weights): + super().__init__() + from pathlib import Path + from safetensors import safe_open + import json + + use_medusa = config.use_medusa + + medusa_config = str(Path(use_medusa) / "config.json") + filename = str(Path(use_medusa) / "medusa_lm_head.safetensors") + + with open(medusa_config, "r") as f: + medusa_config = json.load(f) + routing = weights.routing + with safe_open(filename, framework="pytorch") as f: + for k in f.keys(): + if k in routing and routing[k] != filename: + raise RuntimeError( + f"Key {k} was found in multiple files: {filename} and {routing[k]}" + ) + routing[k] = filename + + self.n_medusa_heads = medusa_config["medusa_num_heads"] + + assert medusa_config["medusa_num_layers"] == 1 + self.linear = TensorParallelColumnLinear.load_multi( + config, + prefixes=[f"{i}.0.linear" for i in range(self.n_medusa_heads)], + dim=0, + weights=weights, + bias=True, + ) + self.process_group = weights.process_group + self.world_size = self.process_group.size() + self.rank = self.process_group.rank() + + self.act = torch.nn.SiLU() + + self.lm_head = TensorParallelHead.load(config, prefix, weights) + + def forward(self, x): + size = x.shape[-1] + block_size = (size + self.world_size - 1) // self.world_size + start = self.rank * block_size + stop = (self.rank + 1) * block_size + + x_block = x[:, start:stop] + + # Compute all medusa heads at the same time, then reshape and move the n_medusa_heads dim to dim 1 + medusa_res = self.act(self.linear(x)).reshape( + *x_block.shape[:-1], self.n_medusa_heads, x_block.shape[-1] + ) + + # Apply all residual medusa heads + output = x[:, start:stop].unsqueeze(-2) + medusa_res + + # Gather medusa heads + world_output = [ + torch.empty_like(output) for _ in range(self.process_group.size()) + ] + torch.distributed.all_gather(world_output, output, group=self.process_group) + world_output = torch.cat(world_output, dim=-1) + + # Stack x and medusa residual x + stacked_x = torch.cat([x.unsqueeze(-2), world_output], dim=-2) + + # Compute lm head on x + medusa residual x + logits = self.lm_head(stacked_x) + + # Finally, split logits from speculative logits + logits, speculative_logits = torch.split( + logits, [1, self.n_medusa_heads], dim=-2 + ) + # Squeeze added dimension + logits = logits.squeeze(-2) + + return logits, speculative_logits + + +class SpeculativeHead(nn.Module): + def __init__(self, lm_head, medusa): + super().__init__() + self.head = lm_head + self.medusa = medusa + + @staticmethod + def load(config, prefix: str, weights): use_medusa = config.use_medusa if use_medusa: - from pathlib import Path - from safetensors import safe_open - import json - - medusa_config = str(Path(use_medusa) / "config.json") - filename = str(Path(use_medusa) / "medusa_lm_head.safetensors") - - with open(medusa_config, "r") as f: - config = json.load(f) - routing = weights.routing - with safe_open(filename, framework="pytorch") as f: - for k in f.keys(): - if k in routing: - raise RuntimeError( - f"Key {k} was found in multiple files: {filename} and {routing[k]}" - ) - weights.routing[k] = filename - - medusa = MedusaModel(config, weights) + lm_head = None + try: + medusa = MedusaHeadV1.load(config, prefix, weights) + except: + medusa = MedusaHeadV2(config, prefix, weights) else: + lm_head = TensorParallelHead.load(config, prefix, weights) medusa = None return SpeculativeHead(lm_head, medusa) def forward( self, input: torch.Tensor ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: - logits = self.lm_head(input) - speculative_logits = self.medusa(input) if self.medusa is not None else None - return logits, speculative_logits + if self.medusa is not None: + return self.medusa(input) + + assert self.head is not None + logits = self.head(input) + return logits, None class TensorParallelHead(SuperLayer): From 275caa04b1ce69e3ea513e9bc7629e410be77b3e Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Fri, 12 Apr 2024 23:51:07 +0900 Subject: [PATCH 24/74] Fix typo in guidance.md (#1735) # What does this PR do? compliation -> compilation ## Before submitting - [x] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- docs/source/conceptual/guidance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conceptual/guidance.md b/docs/source/conceptual/guidance.md index e3e80f22..0a3bbd60 100644 --- a/docs/source/conceptual/guidance.md +++ b/docs/source/conceptual/guidance.md @@ -74,7 +74,7 @@ curl localhost:3000/generate \ A grammar can be defined using Pydantic models, JSON schema, or regular expressions. The AI will then generate a response that conforms to the specified grammar. -> Note: A grammar must compile to a intermediate representation to constrain the output. Grammar compliation is a computationally expensive and may take a few seconds to complete on the first request. Subsequent requests will use the cached grammar and will be much faster. +> Note: A grammar must compile to a intermediate representation to constrain the output. Grammar compilation is a computationally expensive and may take a few seconds to complete on the first request. Subsequent requests will use the cached grammar and will be much faster. ### Constrain with Pydantic From c38a7d7ddd9c612e368adec1ef94583be602fc7e Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Fri, 12 Apr 2024 18:38:34 +0200 Subject: [PATCH 25/74] v2.0.0 (#1736) --- Cargo.lock | 213 ++++++++---------- Cargo.toml | 2 +- README.md | 6 +- docs/openapi.json | 2 +- .../test_flash_llama_grammar_no_tools.json | 2 +- .../test_flash_llama_grammar_tools.json | 2 +- .../test_flash_llama_grammar_tools_auto.json | 2 +- ...test_flash_llama_grammar_tools_choice.json | 2 +- ...test_flash_llama_grammar_tools_stream.json | 2 +- integration-tests/pyproject.toml | 2 +- server/pyproject.toml | 2 +- server/text_generation_server/interceptor.py | 4 + .../models/cache_manager.py | 7 +- server/text_generation_server/utils/layers.py | 9 + 14 files changed, 124 insertions(+), 133 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8c1784bf..fd6baab5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -96,9 +96,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" [[package]] name = "arbitrary" @@ -120,7 +120,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -159,18 +159,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] name = "async-trait" -version = "0.1.79" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -375,15 +375,15 @@ dependencies = [ [[package]] name = "built" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d17f4d6e4dc36d1a02fbedc2753a096848e7c1b0772f7654eab8e2c927dd53" +checksum = "41bfbdb21256b87a8b5e80fab81a8eed158178e812fd7ba451907518b2742f16" [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytecount" @@ -449,9 +449,9 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] name = "cc" -version = "1.0.90" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" dependencies = [ "jobserver", "libc", @@ -459,9 +459,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", "target-lexicon", @@ -498,7 +498,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim 0.11.1", ] [[package]] @@ -510,7 +510,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -812,9 +812,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -1018,7 +1018,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1072,9 +1072,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "js-sys", @@ -1111,9 +1111,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -1198,15 +1198,6 @@ dependencies = [ "ureq", ] -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "hostname" version = "0.3.1" @@ -1432,7 +1423,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1485,9 +1476,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" +checksum = "f08474e32172238f2827bd160c67871cdb2801430f65c3979184dc362e3ca118" dependencies = [ "libc", ] @@ -1574,13 +1565,12 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.5.0", "libc", - "redox_syscall", ] [[package]] @@ -1713,7 +1703,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -1801,14 +1791,14 @@ checksum = "f686d68a09079e63b1d2c64aa305095887ce50565f00a922ebfaeeee0d9ba6ce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] name = "multimap" -version = "0.8.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] name = "muxado" @@ -1991,7 +1981,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -2121,7 +2111,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -2337,14 +2327,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -2396,7 +2386,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" dependencies = [ "proc-macro2", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -2448,7 +2438,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -2463,34 +2453,33 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922" dependencies = [ "bytes", - "prost-derive 0.12.3", + "prost-derive 0.12.4", ] [[package]] name = "prost-build" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" +checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1" dependencies = [ "bytes", - "heck 0.4.1", - "itertools 0.11.0", + "heck 0.5.0", + "itertools 0.12.1", "log", "multimap", "once_cell", "petgraph", "prettyplease", - "prost 0.12.3", + "prost 0.12.4", "prost-types", "regex", - "syn 2.0.55", + "syn 2.0.58", "tempfile", - "which", ] [[package]] @@ -2508,24 +2497,24 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48" dependencies = [ "anyhow", - "itertools 0.11.0", + "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] name = "prost-types" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe" dependencies = [ - "prost 0.12.3", + "prost 0.12.4", ] [[package]] @@ -2561,9 +2550,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -2716,9 +2705,9 @@ dependencies = [ [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", @@ -2875,7 +2864,7 @@ dependencies = [ "quote", "rust-embed-utils", "shellexpand", - "syn 2.0.55", + "syn 2.0.58", "walkdir", ] @@ -2971,9 +2960,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" [[package]] name = "ryu" @@ -3017,9 +3006,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -3030,9 +3019,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ "core-foundation-sys", "libc", @@ -3064,7 +3053,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -3258,9 +3247,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" @@ -3281,7 +3270,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -3303,9 +3292,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.55" +version = "2.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" +checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" dependencies = [ "proc-macro2", "quote", @@ -3320,9 +3309,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sysinfo" -version = "0.30.7" +version = "0.30.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c385888ef380a852a16209afc8cfad22795dd8873d69c9a14d2e2088f118d18" +checksum = "26d7c217777061d5a2d652aea771fb9ba98b6dade657204b08c4b9604d11555b" dependencies = [ "cfg-if", "core-foundation-sys", @@ -3410,7 +3399,7 @@ dependencies = [ [[package]] name = "text-generation-benchmark" -version = "1.4.5" +version = "2.0.0" dependencies = [ "average", "clap", @@ -3431,11 +3420,11 @@ dependencies = [ [[package]] name = "text-generation-client" -version = "1.4.5" +version = "2.0.0" dependencies = [ "futures", "grpc-metadata", - "prost 0.12.3", + "prost 0.12.4", "prost-build", "thiserror", "tokio", @@ -3447,7 +3436,7 @@ dependencies = [ [[package]] name = "text-generation-launcher" -version = "1.4.5" +version = "2.0.0" dependencies = [ "clap", "ctrlc", @@ -3465,7 +3454,7 @@ dependencies = [ [[package]] name = "text-generation-router" -version = "1.4.5" +version = "2.0.0" dependencies = [ "async-stream", "axum", @@ -3522,7 +3511,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -3548,9 +3537,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -3571,9 +3560,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -3699,7 +3688,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -3829,7 +3818,7 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost 0.12.3", + "prost 0.12.4", "tokio", "tokio-stream", "tower", @@ -3848,7 +3837,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -3921,7 +3910,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -4162,7 +4151,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] @@ -4284,7 +4273,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", "wasm-bindgen-shared", ] @@ -4318,7 +4307,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4364,18 +4353,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] - [[package]] name = "winapi" version = "0.3.9" @@ -4626,9 +4603,9 @@ checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352" dependencies = [ "memchr", ] @@ -4660,7 +4637,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.55", + "syn 2.0.58", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index a9e7f1c8..ecb4878f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ members = [ resolver = "2" [workspace.package] -version = "1.4.5" +version = "2.0.0" edition = "2021" authors = ["Olivier Dehaene"] homepage = "https://github.com/huggingface/text-generation-inference" diff --git a/README.md b/README.md index bffe1e8a..ad66e328 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ For a detailed starting guide, please see the [Quick Tour](https://huggingface.c model=HuggingFaceH4/zephyr-7b-beta volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run -docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --model-id $model +docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:2.0 --model-id $model ``` And then you can make requests like @@ -90,7 +90,7 @@ curl 127.0.0.1:8080/generate_stream \ **Note:** To use NVIDIA GPUs, you need to install the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html). We also recommend using NVIDIA drivers with CUDA version 12.2 or higher. For running the Docker container on a machine with no GPUs or CUDA support, it is enough to remove the `--gpus all` flag and add `--disable-custom-kernels`, please note CPU is not the intended platform for this project, so performance might be subpar. -**Note:** TGI supports AMD Instinct MI210 and MI250 GPUs. Details can be found in the [Supported Hardware documentation](https://huggingface.co/docs/text-generation-inference/supported_models#supported-hardware). To use AMD GPUs, please use `docker run --device /dev/kfd --device /dev/dri --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4-rocm --model-id $model` instead of the command above. +**Note:** TGI supports AMD Instinct MI210 and MI250 GPUs. Details can be found in the [Supported Hardware documentation](https://huggingface.co/docs/text-generation-inference/supported_models#supported-hardware). To use AMD GPUs, please use `docker run --device /dev/kfd --device /dev/dri --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:2.0-rocm --model-id $model` instead of the command above. To see all options to serve your models (in the [code](https://github.com/huggingface/text-generation-inference/blob/main/launcher/src/main.rs) or in the cli): ``` @@ -120,7 +120,7 @@ model=meta-llama/Llama-2-7b-chat-hf volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run token= -docker run --gpus all --shm-size 1g -e HUGGING_FACE_HUB_TOKEN=$token -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --model-id $model +docker run --gpus all --shm-size 1g -e HUGGING_FACE_HUB_TOKEN=$token -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:2.0 --model-id $model ``` ### A note on Shared Memory (shm) diff --git a/docs/openapi.json b/docs/openapi.json index fdf1c804..34b030f2 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -10,7 +10,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0" }, - "version": "1.4.5" + "version": "2.0.0" }, "paths": { "/": { diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json index 543be115..153a508d 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json @@ -17,7 +17,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.5-native", + "system_fingerprint": "2.0.0-native", "usage": { "completion_tokens": 100, "prompt_tokens": 60, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json index 728e90a4..56920b3e 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json @@ -31,7 +31,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.5-native", + "system_fingerprint": "2.0.0-native", "usage": { "completion_tokens": 29, "prompt_tokens": 316, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json index 2e0efb86..fe679362 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json @@ -31,7 +31,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.5-native", + "system_fingerprint": "2.0.0-native", "usage": { "completion_tokens": 29, "prompt_tokens": 316, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json index 91854223..e48a1e7d 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json @@ -30,7 +30,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.5-native", + "system_fingerprint": "2.0.0-native", "usage": { "completion_tokens": 21, "prompt_tokens": 187, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json index e0c7aed6..cfebc05f 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json @@ -23,5 +23,5 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "1.4.5-native" + "system_fingerprint": "2.0.0-native" } diff --git a/integration-tests/pyproject.toml b/integration-tests/pyproject.toml index ad217072..6923ff23 100644 --- a/integration-tests/pyproject.toml +++ b/integration-tests/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "text-generation-integration-tests" -version = "1.4.5" +version = "2.0.0" description = "Text Generation Inference integration tests" authors = ["Nicolas Patry "] diff --git a/server/pyproject.toml b/server/pyproject.toml index 58c54b94..e7c576a8 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "text-generation-server" -version = "1.4.5" +version = "2.0.0" description = "Text Generation Inference Python gRPC Server" authors = ["Olivier Dehaene "] diff --git a/server/text_generation_server/interceptor.py b/server/text_generation_server/interceptor.py index 725105f3..57df1725 100644 --- a/server/text_generation_server/interceptor.py +++ b/server/text_generation_server/interceptor.py @@ -23,6 +23,10 @@ class ExceptionInterceptor(AsyncServerInterceptor): method_name = method_name.split("/")[-1] logger.exception(f"Method {method_name} encountered an error.") + # Runtime Error cannot be recovered from + if isinstance(err, RuntimeError): + exit(1) + if torch.cuda.is_available(): torch.cuda.empty_cache() diff --git a/server/text_generation_server/models/cache_manager.py b/server/text_generation_server/models/cache_manager.py index 4be8b1b9..85e1b19b 100644 --- a/server/text_generation_server/models/cache_manager.py +++ b/server/text_generation_server/models/cache_manager.py @@ -55,9 +55,10 @@ class CacheManager: ): # Get free blocks indices by finding values in mask that are not set to 0 free_block_indices = self.free_block_mask.nonzero() - assert ( - len(free_block_indices) >= blocks - ), f"Out of available cache blocks: asked {blocks}, only {len(free_block_indices)} free blocks" + if blocks > len(free_block_indices): + raise RuntimeError( + f"Out of available cache blocks: asked {blocks}, only {len(free_block_indices)} free blocks" + ) # Slice by the number of required blocks block_indices = free_block_indices[:blocks] diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index 2c12984b..9cf5c80f 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -503,6 +503,10 @@ class MedusaHeadV1(nn.Module): self, input: torch.Tensor ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: logits = self.lm_head(input) + # If we have too many tokens, we skip speculative logits + if input.shape[0] > 128: + return logits, None + speculative_logits = self.medusa(input) return logits, speculative_logits @@ -549,6 +553,11 @@ class MedusaHeadV2(nn.Module): self.lm_head = TensorParallelHead.load(config, prefix, weights) def forward(self, x): + # If we have too many tokens, we skip speculative logits + if x.shape[0] > 128: + logits = self.lm_head(x) + return logits, None + size = x.shape[-1] block_size = (size + self.world_size - 1) // self.world_size start = self.rank * block_size From 88702d876383f7200eccf67e28ba00500dc804bb Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Mon, 15 Apr 2024 18:47:36 +0200 Subject: [PATCH 26/74] Fixing CI. (#1748) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- .github/workflows/autodocs.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/autodocs.yml b/.github/workflows/autodocs.yml index 7c5c6eca..c378e177 100644 --- a/.github/workflows/autodocs.yml +++ b/.github/workflows/autodocs.yml @@ -13,7 +13,10 @@ jobs: - name: Install Launcher id: install-launcher - run: cargo install --git https://github.com/${{ github.repository }} --branch ${{ github.head_ref }} text-generation-launcher + env: + REF: ${{ github.head_ref }} + REPO: ${{ github.repository }} + run: cargo install --git "https://github.com/$REPO" --branch "$REF" text-generation-launcher - name: Check launcher Docs are up-to-date run: | From 7276d4349510bdf3198d6b255a140fd7c1dc7216 Mon Sep 17 00:00:00 2001 From: drbh Date: Tue, 16 Apr 2024 09:02:46 -0400 Subject: [PATCH 27/74] feat: improve tools to include name and add tests (#1693) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR makes tool calling aware of the name of the function selected. Fixes: https://github.com/huggingface/text-generation-inference/issues/1657 Thank you @puppetm4st3r for the helpful snippets, large parts of this PR are simply refactors of the code shared 🙏 **opening draft PR because small tweaks are needed before merging --- .../test_flash_llama_simple.json} | 2 +- .../test_flash_llama_grammar_tools.json | 19 +- .../test_flash_llama_grammar_tools_auto.json | 19 +- ...test_flash_llama_grammar_tools_choice.json | 16 +- ...rammar_tools_insufficient_information.json | 38 ++++ ...test_flash_llama_grammar_tools_stream.json | 2 +- integration-tests/models/test_chat_llama.py | 42 ++++ integration-tests/models/test_tools_llama.py | 113 ++++++----- router/src/infer.rs | 191 +++++++++++++++++- router/src/lib.rs | 21 +- router/src/server.rs | 141 ++++++------- 11 files changed, 429 insertions(+), 175 deletions(-) rename integration-tests/models/__snapshots__/{test_tools_llama/test_flash_llama_grammar_no_tools.json => test_chat_llama/test_flash_llama_simple.json} (97%) create mode 100644 integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_insufficient_information.json create mode 100644 integration-tests/models/test_chat_llama.py diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json b/integration-tests/models/__snapshots__/test_chat_llama/test_flash_llama_simple.json similarity index 97% rename from integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json rename to integration-tests/models/__snapshots__/test_chat_llama/test_flash_llama_simple.json index 153a508d..0ff874f1 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_no_tools.json +++ b/integration-tests/models/__snapshots__/test_chat_llama/test_flash_llama_simple.json @@ -13,7 +13,7 @@ "usage": null } ], - "created": 1710795556, + "created": 1712874856, "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json index 56920b3e..45f8ca99 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json @@ -11,13 +11,12 @@ "tool_calls": [ { "function": { - "description": null, - "name": "tools", - "parameters": { + "arguments": { "format": "celsius", - "location": "New York, NY", - "num_days": 14 - } + "location": "Brooklyn" + }, + "description": null, + "name": "get_current_weather" }, "id": 0, "type": "function" @@ -27,14 +26,14 @@ "usage": null } ], - "created": 1710795556, + "created": 1712782670, "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", "system_fingerprint": "2.0.0-native", "usage": { - "completion_tokens": 29, - "prompt_tokens": 316, - "total_tokens": 345 + "completion_tokens": 37, + "prompt_tokens": 524, + "total_tokens": 561 } } diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json index fe679362..e0ed0947 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json @@ -11,13 +11,12 @@ "tool_calls": [ { "function": { - "description": null, - "name": "tools", - "parameters": { + "arguments": { "format": "celsius", - "location": "New York, NY", - "num_days": 14 - } + "location": "Brooklyn" + }, + "description": null, + "name": "get_current_weather" }, "id": 0, "type": "function" @@ -27,14 +26,14 @@ "usage": null } ], - "created": 1710795557, + "created": 1712787937, "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", "system_fingerprint": "2.0.0-native", "usage": { - "completion_tokens": 29, - "prompt_tokens": 316, - "total_tokens": 345 + "completion_tokens": 37, + "prompt_tokens": 524, + "total_tokens": 561 } } diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json index e48a1e7d..b70c2d6f 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json @@ -11,12 +11,12 @@ "tool_calls": [ { "function": { - "description": null, - "name": "tools", - "parameters": { + "arguments": { "format": "celsius", "location": "New York, NY" - } + }, + "description": null, + "name": "get_current_weather" }, "id": 0, "type": "function" @@ -26,14 +26,14 @@ "usage": null } ], - "created": 1710795557, + "created": 1712852394, "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", "system_fingerprint": "2.0.0-native", "usage": { - "completion_tokens": 21, - "prompt_tokens": 187, - "total_tokens": 208 + "completion_tokens": 48, + "prompt_tokens": 320, + "total_tokens": 368 } } diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_insufficient_information.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_insufficient_information.json new file mode 100644 index 00000000..0cd3c67f --- /dev/null +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_insufficient_information.json @@ -0,0 +1,38 @@ +{ + "choices": [ + { + "finish_reason": "eos_token", + "index": 0, + "logprobs": null, + "message": { + "content": null, + "name": null, + "role": "assistant", + "tool_calls": [ + { + "function": { + "arguments": { + "error": "Cannot get current weather forecast from specified location and temperature unit. Please try again with different options." + }, + "description": null, + "name": "notify_error" + }, + "id": 0, + "type": "function" + } + ] + }, + "usage": null + } + ], + "created": 1712852597, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "1.4.5-native", + "usage": { + "completion_tokens": 39, + "prompt_tokens": 496, + "total_tokens": 535 + } +} diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json index cfebc05f..6787b39b 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json @@ -19,7 +19,7 @@ "logprobs": null } ], - "created": 1710795499, + "created": 1712788218, "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", diff --git a/integration-tests/models/test_chat_llama.py b/integration-tests/models/test_chat_llama.py new file mode 100644 index 00000000..11419a0e --- /dev/null +++ b/integration-tests/models/test_chat_llama.py @@ -0,0 +1,42 @@ +import pytest +import json + +from text_generation.types import GrammarType + + +@pytest.fixture(scope="module") +def flash_llama_chat_handle(launcher): + with launcher( + "TinyLlama/TinyLlama-1.1B-Chat-v1.0", num_shard=2, disable_grammar_support=False + ) as handle: + yield handle + + +@pytest.fixture(scope="module") +async def flash_llama_chat(flash_llama_chat_handle): + await flash_llama_chat_handle.health(300) + return flash_llama_chat_handle.client + + +@pytest.mark.private +async def test_flash_llama_simple(flash_llama_chat, response_snapshot): + response = await flash_llama_chat.chat( + max_tokens=100, + seed=1, + messages=[ + { + "role": "system", + "content": "Youre a helpful assistant! Answer the users question best you can.", + }, + { + "role": "user", + "content": "What is the weather like in Brooklyn, New York?", + }, + ], + ) + + assert ( + response.choices[0].message.content + == "As of today, there is a Update available for the Brooklyn, New York, area. According to the latest forecast, it's warm with high temperatures throughout the day. It's forecasted at 75°F for today and 77°F for tomorrow. However, in autumn, the weather typically changes drastically, becoming cooler and wetter. You can find the current weather forecast for the area through your local weather service. Additionally" + ) + assert response == response_snapshot diff --git a/integration-tests/models/test_tools_llama.py b/integration-tests/models/test_tools_llama.py index d0ae331f..0af3f66a 100644 --- a/integration-tests/models/test_tools_llama.py +++ b/integration-tests/models/test_tools_llama.py @@ -71,34 +71,7 @@ tools = [ ] -@pytest.mark.asyncio -@pytest.mark.private -async def test_flash_llama_grammar_no_tools( - flash_llama_grammar_tools, response_snapshot -): - response = await flash_llama_grammar_tools.chat( - max_tokens=100, - seed=1, - messages=[ - { - "role": "system", - "content": "Youre a helpful assistant! Answer the users question best you can.", - }, - { - "role": "user", - "content": "What is the weather like in Brooklyn, New York?", - }, - ], - ) - - assert ( - response.choices[0].message.content - == "As of today, there is a Update available for the Brooklyn, New York, area. According to the latest forecast, it's warm with high temperatures throughout the day. It's forecasted at 75°F for today and 77°F for tomorrow. However, in autumn, the weather typically changes drastically, becoming cooler and wetter. You can find the current weather forecast for the area through your local weather service. Additionally" - ) - assert response == response_snapshot - - -@pytest.mark.skip +@pytest.mark.skip(reason="Takes too long to run") @pytest.mark.asyncio @pytest.mark.private async def test_flash_llama_grammar_tools(flash_llama_grammar_tools, response_snapshot): @@ -121,23 +94,19 @@ async def test_flash_llama_grammar_tools(flash_llama_grammar_tools, response_sna assert response.choices[0].message.content == None assert response.choices[0].message.tool_calls == [ { - "function": { - "description": None, - "name": "tools", - "parameters": { - "format": "celsius", - "location": "New York, NY", - "num_days": 14, - }, - }, "id": 0, "type": "function", + "function": { + "description": None, + "name": "get_current_weather", + "arguments": {"format": "celsius", "location": "New York, NY"}, + }, } ] assert response == response_snapshot -@pytest.mark.skip +@pytest.mark.skip(reason="Takes too long to run") @pytest.mark.asyncio @pytest.mark.private async def test_flash_llama_grammar_tools_auto( @@ -163,23 +132,20 @@ async def test_flash_llama_grammar_tools_auto( assert response.choices[0].message.content == None assert response.choices[0].message.tool_calls == [ { - "function": { - "description": None, - "name": "tools", - "parameters": { - "format": "celsius", - "location": "New York, NY", - "num_days": 14, - }, - }, "id": 0, "type": "function", + "function": { + "description": None, + "name": "get_current_weather", + "arguments": {"format": "celsius", "location": "New York, NY"}, + }, } ] + assert response == response_snapshot -@pytest.mark.skip +@pytest.mark.skip(reason="Takes too long to run") @pytest.mark.asyncio @pytest.mark.private async def test_flash_llama_grammar_tools_choice( @@ -209,15 +175,16 @@ async def test_flash_llama_grammar_tools_choice( "type": "function", "function": { "description": None, - "name": "tools", - "parameters": {"format": "celsius", "location": "New York, NY"}, + "name": "get_current_weather", + "arguments": {"format": "celsius", "location": "New York, NY"}, }, } ] + assert response == response_snapshot -@pytest.mark.skip +@pytest.mark.skip(reason="Takes too long to run") @pytest.mark.asyncio @pytest.mark.private async def test_flash_llama_grammar_tools_stream( @@ -246,5 +213,47 @@ async def test_flash_llama_grammar_tools_stream( async for response in responses: count += 1 - assert count == 20 + assert count == 38 assert response == response_snapshot + + +@pytest.mark.skip(reason="Takes too long to run") +@pytest.mark.asyncio +@pytest.mark.private +async def test_flash_llama_grammar_tools_insufficient_information( + flash_llama_grammar_tools, response_snapshot +): + responses = await flash_llama_grammar_tools.chat( + max_tokens=100, + seed=8, + tools=tools, + tool_choice="auto", + messages=[ + { + "role": "system", + "content": "ONLY RESPOND IF THE USER ASKS A WEATHER RELATED QUESTION", + }, + { + "role": "user", + "content": "Tell me a story about 3 sea creatures", + }, + ], + stream=False, + ) + + assert responses.choices[0].message.content == None + assert responses.choices[0].message.tool_calls == [ + { + "function": { + "arguments": { + "error": "Cannot get current weather forecast from specified location and temperature unit. Please try again with different options." + }, + "description": None, + "name": "notify_error", + }, + "id": 0, + "type": "function", + } + ] + + assert responses == response_snapshot diff --git a/router/src/infer.rs b/router/src/infer.rs index 075e76d8..da0db072 100644 --- a/router/src/infer.rs +++ b/router/src/infer.rs @@ -4,9 +4,12 @@ use crate::{ ChatTemplateInputs, ChatTemplateVersions, Entry, GenerateRequest, GenerateStreamResponse, HubTokenizerConfig, Message, PrefillToken, Queue, Token, }; +use crate::{FunctionRef, FunctionsMap, GrammarType, Properties, Tool, ToolType, Tools}; use futures::future::try_join_all; use minijinja::{Environment, ErrorKind, Template}; use nohash_hasher::IntMap; +use serde_json::{json, Map, Value}; +use std::collections::HashMap; use std::sync::{ atomic::{AtomicBool, Ordering}, Arc, @@ -185,11 +188,15 @@ impl Infer { /// Apply the chat template to the chat request #[instrument(skip_all)] - pub(crate) fn apply_chat_template(&self, messages: Vec) -> Result { + pub(crate) fn apply_chat_template( + &self, + messages: Vec, + grammar_with_prompt: Option<(GrammarType, String)>, + ) -> Result { self.chat_template .as_ref() .ok_or_else(|| InferError::TemplateError(ErrorKind::TemplateNotFound.into()))? - .apply(messages) + .apply(messages, grammar_with_prompt) .map_err(|e| { metrics::increment_counter!("tgi_request_failure", "err" => "template"); tracing::error!("{e}"); @@ -322,6 +329,7 @@ struct ChatTemplate { template: Template<'static, 'static>, bos_token: Option, eos_token: Option, + use_default_tool_template: bool, } impl ChatTemplate { @@ -329,6 +337,10 @@ impl ChatTemplate { let mut env = Box::new(Environment::new()); let template_str = template.into_boxed_str(); env.add_function("raise_exception", raise_exception); + + // check if contains the tools variable within the template + let use_default_tool_template = + !template_str.as_ref().replace(' ', "").contains("{{tools}}"); // leaking env and template_str as read-only, static resources for performance. let template = Box::leak(env) .template_from_str(Box::leak(template_str)) @@ -338,21 +350,159 @@ impl ChatTemplate { template, bos_token, eos_token, + use_default_tool_template, } } - fn apply(&self, messages: Vec) -> Result { + fn apply( + &self, + mut messages: Vec, + grammar_with_prompt: Option<(GrammarType, String)>, + ) -> Result { + if self.use_default_tool_template { + if let Some(last_message) = messages.last_mut() { + if let Some((GrammarType::Json(tools), tool_prompt)) = grammar_with_prompt { + last_message.content = Some(format!( + "{}\n---\n{}\n{}", + last_message.content.as_deref().unwrap_or_default(), + tool_prompt, + tools + )); + } + } + } + self.template .render(ChatTemplateInputs { messages, bos_token: self.bos_token.as_deref(), eos_token: self.eos_token.as_deref(), add_generation_prompt: true, + tools: None, + tools_prompt: None, }) .map_err(InferError::TemplateError) } } +pub struct ToolGrammar {} + +impl ToolGrammar { + pub fn apply( + tools: Option>, + tool_choice: Option, + ) -> Result, InferError> { + if let Some((req_tools, tool_choice)) = tools.zip(tool_choice) { + // let tool_prompt = tool_prompt.unwrap_or_default(); + let tools_to_use = match tool_choice { + ToolType::FunctionName(name) => { + vec![req_tools + .iter() + .find(|tool| tool.function.name == *name) + .unwrap_or_else(|| panic!("Tool with name {} not found", name)) + .clone()] + } + ToolType::OneOf => req_tools.to_owned(), + }; + + // adds the error notification function for LLM feedback if required + let mut text_response_properties = Map::new(); + text_response_properties.insert( + "error".to_string(), + serde_json::json!({ + "type": "string", + "description": "The error or issue to notify" + }), + ); + text_response_properties.insert( + "_name".to_string(), + serde_json::json!({ + "type": "string", + "const": "notify_error" + }), + ); + + let functions: HashMap = tools_to_use + .iter() + .map(|tool| { + let func = tool.function.clone(); + + // Clone the existing parameters, which are expected to be a JSON object + let mut params = if let Value::Object(params) = &func.arguments { + params.clone() + } else { + Map::new() + }; + + // Insert the function's description at the top level, outside of properties + params.insert( + "description".to_string(), + Value::String(func.description.clone().unwrap_or_default()), + ); + + // Ensure 'properties' exists and is an object + let properties = params + .entry("properties".to_string()) + .or_insert_with(|| json!({})) + .as_object_mut() + .unwrap(); + + // Insert the constant for the function name inside 'properties' + properties.insert( + "_name".to_string(), + json!({ + "type": "string", + "const": func.name.clone(), + // "description": "The name of the function" + }), + ); + + // Check if 'required' exists, and it is an array. If not, create an empty array. + let required = params + .entry("required".to_string()) + .or_insert_with(|| json!([])) + .as_array_mut() + .unwrap(); + + // Add 'name' to the 'required' array if it is not already present + if !required.iter().any(|r| r == "_name") { + required.push(json!("_name")); + } + + (func.name, Value::Object(params)) + }) + .chain([( + "notify_error".to_string(), + serde_json::json!({ + "properties": text_response_properties, + "required": ["error", "_name"], + "type": "object" + }), + )]) + .collect(); + + let tools = Tools { + functions_map: FunctionsMap { functions }, + properties: Properties { + function: tools_to_use + .iter() + .map(|tool| FunctionRef { + ref_path: format!("#/$functions/{}", tool.function.name.clone()), + }) + .chain(std::iter::once(FunctionRef { + ref_path: "#/$functions/notify_error".to_string(), + })) + .collect(), + }, + }; + + return Ok(Some(tools)); + } + // Err(InferError::ToolError("No tools provided".to_string())) + Ok(None) + } +} + /// Batching logic /// Will be launched in a background Tokio task /// @@ -768,6 +918,8 @@ pub enum InferError { IncompleteGeneration, #[error("Template error: {0}")] TemplateError(#[from] minijinja::Error), + #[error("Tool error: {0}")] + ToolError(String), } impl InferError { @@ -778,6 +930,7 @@ impl InferError { InferError::ValidationError(_) => "validation", InferError::IncompleteGeneration => "incomplete_generation", InferError::TemplateError(_) => "template_error", + InferError::ToolError(_) => "tool_error", } } } @@ -849,6 +1002,7 @@ mod tests { bos_token: Some("[BOS]"), eos_token: Some("[EOS]"), add_generation_prompt: true, + ..Default::default() }; let result = tmpl.unwrap().render(chat_template_inputs).unwrap(); @@ -924,6 +1078,7 @@ mod tests { bos_token: Some("[BOS]"), eos_token: Some("[EOS]"), add_generation_prompt: true, + ..Default::default() }; let result = tmpl.unwrap().render(chat_template_inputs); //.err().unwrap(); @@ -998,6 +1153,7 @@ mod tests { bos_token: Some("[BOS]"), eos_token: Some("[EOS]"), add_generation_prompt: true, + ..Default::default() }; let result = tmpl.unwrap().render(chat_template_inputs).unwrap(); @@ -1056,6 +1212,7 @@ mod tests { bos_token: Some("[BOS]"), eos_token: Some("[EOS]"), add_generation_prompt: true, + ..Default::default() }; let result = tmpl.unwrap().render(chat_template_inputs).unwrap(); @@ -1115,6 +1272,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "<|im_start|>user\nHello, how are you?<|im_end|>\n<|im_start|>assistant\nI'm doing great. How can I help you today?<|im_end|>\n<|im_start|>user\nI'd like to show off how chat templating works!<|im_end|>\n", }, @@ -1126,6 +1284,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: " Hello, how are you? I'm doing great. How can I help you today? I'd like to show off how chat templating works!", }, @@ -1137,6 +1296,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: " Hello, how are you? I'm doing great. How can I help you today? I'd like to show off how chat templating works!", }, @@ -1148,6 +1308,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "Hello, how are you?I'm doing great. How can I help you today?I'd like to show off how chat templating works!", }, @@ -1159,6 +1320,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some("<|endoftext|>"), + ..Default::default() }, target: "Hello, how are you?<|endoftext|>I'm doing great. How can I help you today?<|endoftext|>I'd like to show off how chat templating works!<|endoftext|>", }, @@ -1170,6 +1332,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some("<|endoftext|>"), + ..Default::default() }, target: "Hello, how are you?<|endoftext|>I'm doing great. How can I help you today?<|endoftext|>I'd like to show off how chat templating works!<|endoftext|>", }, @@ -1182,6 +1345,7 @@ mod tests { add_generation_prompt: true, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "[INST] <>\nYou are a friendly chatbot who always responds in the style of a pirate\n<>\n\nHello, how are you? [/INST] I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]", }, @@ -1193,6 +1357,7 @@ mod tests { add_generation_prompt: true, bos_token: Some(""), eos_token: Some("<|endoftext|>"), + ..Default::default() }, target: "Hello, how are you?<|endoftext|>I'm doing great. How can I help you today?<|endoftext|>I'd like to show off how chat templating works!<|endoftext|>", }, @@ -1222,6 +1387,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "<|system|>\nYou are a friendly chatbot who always responds in the style of a pirate<|user|>\nHello, how are you?<|assistant|>\nI'm doing great. How can I help you today?<|user|>\nI'd like to show off how chat templating works!", }, @@ -1246,6 +1412,7 @@ mod tests { add_generation_prompt: true, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "<|system|>\nYou are a friendly chatbot who always responds in the style of a pirate<|user|>\nHow many helicopters can a human eat in one sitting?<|assistant|>", }, @@ -1257,6 +1424,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "<|im_start|>user\nHello, how are you?<|im_end|>\n<|im_start|>assistant\nI'm doing great. How can I help you today?<|im_end|>\n<|im_start|>user\nI'd like to show off how chat templating works!<|im_end|>\n", }, @@ -1268,6 +1436,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "[INST] Hello, how are you? [/INST]I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]", }, @@ -1279,6 +1448,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "[INST] Hello, how are you? [/INST]I'm doing great. How can I help you today?[INST] I'd like to show off how chat templating works! [/INST]", }, @@ -1290,6 +1460,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "<|im_start|>user\nHello, how are you?<|im_end|>\n<|im_start|>assistant\nI'm doing great. How can I help you today?<|im_end|>\n<|im_start|>user\nI'd like to show off how chat templating works!<|im_end|>\n", }, @@ -1302,6 +1473,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "GPT4 Correct User: Hello, how are you?<|end_of_turn|>GPT4 Correct Assistant: I'm doing great. How can I help you today?<|end_of_turn|>GPT4 Correct User: I'd like to show off how chat templating works!<|end_of_turn|>", }, @@ -1313,6 +1485,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "Hello, how are you?I'm doing great. How can I help you today?I'd like to show off how chat templating works!", }, @@ -1325,6 +1498,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "Source: user\n\n Hello, how are you? Source: assistant\n\n I'm doing great. How can I help you today? Source: user\n\n I'd like to show off how chat templating works! Source: assistant\nDestination: user\n\n ", }, @@ -1336,6 +1510,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "### User:\nHello, how are you?### Assistant:\nI'm doing great. How can I help you today?### User:\nI'd like to show off how chat templating works!", }, @@ -1347,6 +1522,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "<|im_start|>system\nYou are a helpful assistant<|im_end|>\n<|im_start|>user\nHello, how are you?<|im_end|>\n<|im_start|>assistant\nI'm doing great. How can I help you today?<|im_end|>\n<|im_start|>user\nI'd like to show off how chat templating works!", }, @@ -1358,6 +1534,7 @@ mod tests { add_generation_prompt: false, bos_token: Some("<|begin▁of▁sentence|>"), eos_token: Some("<|end▁of▁sentence|>"), + ..Default::default() }, target: "<|begin▁of▁sentence|>User: Hello, how are you?\n\nAssistant: I'm doing great. How can I help you today?<|end▁of▁sentence|>User: I'd like to show off how chat templating works!\n\n", }, @@ -1369,6 +1546,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "<|prompt|>Hello, how are you?<|answer|>I'm doing great. How can I help you today?<|prompt|>I'd like to show off how chat templating works!", }, @@ -1380,6 +1558,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "<|im_start|>user\nHello, how are you?<|im_end|>\n<|im_start|>assistant\nI'm doing great. How can I help you today?<|im_end|>\n<|im_start|>user\nI'd like to show off how chat templating works!<|im_end|>\n", }, @@ -1391,6 +1570,7 @@ mod tests { add_generation_prompt: false, bos_token: Some("<|begin▁of▁sentence|>"), eos_token: Some("<|EOT|>"), + ..Default::default() }, target: "You are an AI programming assistant, utilizing the Deepseek Coder model, developed by Deepseek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer.\n### Instruction:\nHello, how are you?\n### Response:\nI'm doing great. How can I help you today?\n<|EOT|>\n### Instruction:\nI'd like to show off how chat templating works!\n### Response:\n", }, @@ -1403,6 +1583,7 @@ mod tests { add_generation_prompt: false, bos_token: Some("<|endoftext|>"), eos_token: Some("<|endoftext|>"), + ..Default::default() }, target: "[INST] Hello, how are you? [RESP] I'm doing great. How can I help you today?<|endoftext|>[INST] I'd like to show off how chat templating works!", }, @@ -1414,6 +1595,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "Hello, how are you? [/INST] I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]", }, @@ -1425,6 +1607,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "Below is an instruction that describes a task. Write a response that appropriately completes the request.### Instruction:Hello, how are you?### Response:I'm doing great. How can I help you today?### Instruction:I'd like to show off how chat templating works!", }, @@ -1436,6 +1619,7 @@ mod tests { add_generation_prompt: false, bos_token: Some("<|begin▁of▁sentence|>"), eos_token: Some(""), + ..Default::default() }, target: "<|begin▁of▁sentence|>You are an AI programming assistant, utilizing the Deepseek Coder model, developed by Deepseek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer\n### Instruction:\nHello, how are you?\n### Response:\nI'm doing great. How can I help you today?\n<|EOT|>\n### Instruction:\nI'd like to show off how chat templating works!\n", }, @@ -1451,6 +1635,7 @@ mod tests { add_generation_prompt: false, bos_token: Some(""), eos_token: Some(""), + ..Default::default() }, target: "You are a friendly chatbot who always responds in the style of a pirateYou are a friendly chatbot who always responds in the style of a pirate### Instruction: Hello, how are you?### Response: I'm doing great. How can I help you today?### Instruction: I'd like to show off how chat templating works!", }, diff --git a/router/src/lib.rs b/router/src/lib.rs index 2e412f1a..ddb28848 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -79,7 +79,7 @@ impl HubTokenizerConfig { } } -#[derive(Clone, Debug, Deserialize, ToSchema)] +#[derive(Clone, Debug, Deserialize, ToSchema, Serialize)] #[serde(tag = "type", content = "value")] pub(crate) enum GrammarType { /// A string that represents a [JSON Schema](https://json-schema.org/). @@ -669,7 +669,7 @@ pub(crate) struct ChatRequest { #[serde(default = "default_tool_prompt")] #[schema( nullable = true, - example = "\"Based on the conversation, please choose the most appropriate tool to use: \"" + example = "\"You will be presented with a JSON schema representing a set of tools.\nIf the user request lacks of sufficient information to make a precise tool selection: Do not invent any tool's properties, instead notify with an error message.\n\nJSON Schema:\n\"" )] pub tool_prompt: Option, @@ -682,7 +682,7 @@ pub(crate) struct ChatRequest { fn default_tool_prompt() -> Option { Some( - "\nBased on the conversation, please choose the most appropriate tool to use: ".to_string(), + "\nYou will be presented with a JSON schema representing a set of tools.\nIf the user request lacks of sufficient information to make a precise tool selection: Do not invent any tool's properties, instead notify with an error message.\n\nJSON Schema:\n".to_string(), ) } #[derive(Clone, Deserialize, ToSchema, Serialize)] @@ -727,26 +727,26 @@ mod deserialize_tool_choice { } } -#[derive(Debug, Deserialize, Serialize, ToSchema)] +#[derive(Debug, Deserialize, Serialize, ToSchema, PartialEq)] pub struct Tools { #[serde(flatten)] functions_map: FunctionsMap, properties: Properties, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, PartialEq)] struct FunctionsMap { #[serde(rename = "$functions")] functions: std::collections::HashMap, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, PartialEq)] struct FunctionRef { #[serde(rename = "$ref")] ref_path: String, } -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, PartialEq)] struct Properties { #[serde(serialize_with = "serialize_function")] function: Vec, @@ -767,7 +767,8 @@ pub(crate) struct FunctionDefinition { #[serde(default)] pub description: Option, pub name: String, - pub parameters: serde_json::Value, + #[serde(alias = "parameters")] + pub arguments: serde_json::Value, } #[derive(Clone, Debug, Deserialize, Serialize, ToSchema)] @@ -779,12 +780,14 @@ pub(crate) struct Tool { pub function: FunctionDefinition, } -#[derive(Clone, Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize, Default)] pub(crate) struct ChatTemplateInputs<'a> { messages: Vec, bos_token: Option<&'a str>, eos_token: Option<&'a str>, add_generation_prompt: bool, + tools: Option<&'a str>, + tools_prompt: Option<&'a str>, } #[derive(Clone, Deserialize, Serialize, ToSchema, Default, Debug)] diff --git a/router/src/server.rs b/router/src/server.rs index b8f93514..c1648f9e 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -1,7 +1,7 @@ use crate::config::Config; /// HTTP Server logic use crate::health::Health; -use crate::infer::{InferError, InferResponse, InferStreamResponse}; +use crate::infer::{InferError, InferResponse, InferStreamResponse, ToolGrammar}; use crate::validation::ValidationError; use crate::{ BestOfSequence, Details, ErrorResponse, FinishReason, GenerateParameters, GenerateRequest, @@ -15,7 +15,7 @@ use crate::{ ChatRequest, CompatGenerateRequest, Completion, CompletionComplete, CompletionCompleteChunk, CompletionRequest, DeltaToolCall, Function, Tool, VertexRequest, VertexResponse, }; -use crate::{FunctionDefinition, FunctionRef, FunctionsMap, Properties, ToolCall, ToolType, Tools}; +use crate::{FunctionDefinition, ToolCall, ToolType}; use axum::extract::Extension; use axum::http::{HeaderMap, Method, StatusCode}; use axum::response::sse::{Event, KeepAlive, Sse}; @@ -29,7 +29,6 @@ use futures::Stream; use futures::TryStreamExt; use metrics_exporter_prometheus::{Matcher, PrometheusBuilder, PrometheusHandle}; use serde_json::Value; -use std::collections::HashMap; use std::convert::Infallible; use std::net::SocketAddr; use std::sync::atomic::AtomicBool; @@ -757,19 +756,29 @@ async fn chat_completions( ) -> Result)> { metrics::increment_counter!("tgi_request_count"); - let stream = req.stream; - let max_new_tokens = req.max_tokens.or(Some(100)); - let repetition_penalty = req - .presence_penalty - // rescale repetition_penalty from (-2.0, 2.0) to (0.0, 4.0) - .map(|x| x + 2.0); - let logprobs = req.logprobs.unwrap_or(false); - let seed = req.seed; - let stop = req.stop.unwrap_or_default(); + let ChatRequest { + logprobs, + max_tokens, + messages, + presence_penalty, + seed, + stop, + stream, + tools, + tool_choice, + tool_prompt, + .. + } = req; - // apply chat template to flatten the request into a single input - let mut inputs = match infer.apply_chat_template(req.messages) { - Ok(inputs) => inputs, + let repetition_penalty = presence_penalty.map(|x| x + 2.0); + let max_new_tokens = max_tokens.or(Some(100)); + let logprobs = logprobs.unwrap_or(false); + let tool_prompt = tool_prompt.unwrap_or_default(); + let stop = stop.unwrap_or_default(); + + // extract tool grammar if present + let tool_grammar = match ToolGrammar::apply(tools, tool_choice) { + Ok(grammar) => grammar, Err(err) => { metrics::increment_counter!("tgi_request_failure", "err" => "validation"); tracing::error!("{err}"); @@ -783,60 +792,28 @@ async fn chat_completions( } }; - let tool_grammar = if let Some((req_tools, tool_choice)) = req.tools.zip(req.tool_choice) { - let tool_prompt = req.tool_prompt.unwrap_or_default(); - let tools_to_use = match tool_choice { - ToolType::FunctionName(name) => { - vec![req_tools - .iter() - .find(|tool| tool.function.name == *name) - .ok_or_else(|| { - ( - StatusCode::UNPROCESSABLE_ENTITY, - Json(ErrorResponse { - error: "Tool choice not found in tool names".to_string(), - error_type: "Tool not found".to_string(), - }), - ) - })? - .clone()] - } - ToolType::OneOf => req_tools.to_owned(), - }; + let grammar_with_prompt = tool_grammar + .as_ref() + .map(|t| (GrammarType::Json(serde_json::json!(t)), tool_prompt)); - let functions: HashMap = tools_to_use - .iter() - .map(|tool| { - let func = tool.function.clone(); - (func.name, func.parameters) - }) - .collect(); + let typed_grammar = grammar_with_prompt + .as_ref() + .map(|(grammar, _)| grammar.clone()); - let tools = Tools { - functions_map: FunctionsMap { functions }, - properties: Properties { - function: tools_to_use - .iter() - .map(|tool| FunctionRef { - ref_path: format!("#/$functions/{}", tool.function.name.clone()), - }) - .collect(), - }, - }; - - let tools_str = serde_json::to_string(&tools).map_err(|e| { - ( + // apply chat template to flatten the request into a single input + let inputs = match infer.apply_chat_template(messages, grammar_with_prompt) { + Ok(inputs) => inputs, + Err(err) => { + metrics::increment_counter!("tgi_request_failure", "err" => "validation"); + tracing::error!("{err}"); + return Err(( StatusCode::UNPROCESSABLE_ENTITY, Json(ErrorResponse { - error: e.to_string(), - error_type: "Input validation error".to_string(), + error: err.to_string(), + error_type: err.error_type().to_string(), }), - ) - })?; - inputs = format!("{inputs}{tool_prompt}{tools_str}"); - Some(GrammarType::Json(serde_json::json!(tools))) - } else { - None + )); + } }; // build the request passing some parameters @@ -860,7 +837,7 @@ async fn chat_completions( decoder_input_details: !stream, seed, top_n_tokens: req.top_logprobs, - grammar: tool_grammar.clone(), + grammar: typed_grammar, }, }; @@ -943,27 +920,28 @@ async fn chat_completions( }), ) })?; - let tool_calls = vec![ToolCall { id: 0, r#type: "function".to_string(), function: FunctionDefinition { description: None, - name: "tools".to_string(), - parameters: gen_text_value.get("function").map_or_else( - || { - serde_json::from_str(&generation.generated_text).map_err(|e| { - ( - StatusCode::UNPROCESSABLE_ENTITY, - Json(ErrorResponse { - error: e.to_string(), - error_type: "Input validation error".to_string(), - }), - ) - }) - }, - |f| Ok(f.clone()), - )?, + name: gen_text_value + .get("function") + .and_then(|f| f.get("_name")) + .and_then(|name| name.as_str()) + .unwrap_or("default_function_name") + .to_string(), + // Serialize the JSON object obtained from "function" to an escaped JSON string + arguments: gen_text_value + .get("function") + .map(|f| { + let mut f_cloned = f.clone(); + if let Value::Object(ref mut props) = f_cloned { + props.remove("_name"); + } + f_cloned + }) + .unwrap_or_default(), }, }]; (Some(tool_calls), None) @@ -1539,6 +1517,7 @@ impl From for (StatusCode, Json) { InferError::ValidationError(_) => StatusCode::UNPROCESSABLE_ENTITY, InferError::IncompleteGeneration => StatusCode::INTERNAL_SERVER_ERROR, InferError::TemplateError(_) => StatusCode::UNPROCESSABLE_ENTITY, + InferError::ToolError(_) => StatusCode::UNPROCESSABLE_ENTITY, }; ( From 00f365353ea5cf29438ba1d51baadaab79ae4674 Mon Sep 17 00:00:00 2001 From: Lucain Date: Tue, 16 Apr 2024 19:26:32 +0200 Subject: [PATCH 28/74] Update response type for `/v1/chat/completions` and `/v1/completions` (#1747) `/v1/chat/completions` and `/v1/completions` have different output types depending on the `stream` parameter. This PR aims at fixing the inconsistency in the auto-generated [openapi.json](https://huggingface.github.io/text-generation-inference/openapi.json) specs. cc @OlivierDehaene @drbh I reused what had been done for the `/` endpoint but haven't tested anything myself. Could you confirm this is the correct way of handling things? Also, should I update the openapi.json file manually? If yes, how can I do it? --- router/src/server.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/router/src/server.rs b/router/src/server.rs index c1648f9e..3f033a9d 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -548,7 +548,11 @@ async fn generate_stream_internal( path = "/v1/completions", request_body = CompletionRequest, responses( - (status = 200, description = "Generated Text", body = ChatCompletionChunk), + (status = 200, description = "Generated Chat Completion", + content( + ("application/json" = Completion), + ("text/event-stream" = CompletionCompleteChunk), + )), (status = 424, description = "Generation Error", body = ErrorResponse, example = json ! ({"error": "Request failed during generation"})), (status = 429, description = "Model is overloaded", body = ErrorResponse, @@ -652,7 +656,7 @@ async fn completions( }) .map_or_else( |e| { - println!("Failed to serialize ChatCompletionChunk: {:?}", e); + println!("Failed to serialize CompletionCompleteChunk: {:?}", e); Event::default() }, |data| data, @@ -725,7 +729,11 @@ async fn completions( path = "/v1/chat/completions", request_body = ChatRequest, responses( - (status = 200, description = "Generated Text", body = ChatCompletionChunk), + (status = 200, description = "Generated Chat Completion", + content( + ("application/json" = ChatCompletion), + ("text/event-stream" = ChatCompletionChunk), + )), (status = 424, description = "Generation Error", body = ErrorResponse, example = json ! ({"error": "Request failed during generation"})), (status = 429, description = "Model is overloaded", body = ErrorResponse, From e4d31a40db0721a9b1bc9c9121f0a712d87bce1f Mon Sep 17 00:00:00 2001 From: drbh Date: Tue, 16 Apr 2024 16:56:47 -0400 Subject: [PATCH 29/74] fix: bump clients test base url to llama (#1751) This PR bumps the client tests from `google/flan-t5-xxl` to `meta-llama/Llama-2-7b-chat-hf` to resolve issues when calling the endpoint and `google/flan-t5-xxl` is not available run with ```bash make python-client-tests clients/python/tests/test_client.py .............. [ 43%] clients/python/tests/test_errors.py .......... [ 75%] clients/python/tests/test_inference_api.py ...... [ 93%] clients/python/tests/test_types.py .. [100%] ``` **note `google/flan-t5-xxl` function is currently unused but still included in the `conftest.py` --- clients/python/tests/conftest.py | 10 +++++ clients/python/tests/test_client.py | 67 +++++++++++++++-------------- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/clients/python/tests/conftest.py b/clients/python/tests/conftest.py index 48734f0d..17bb73b5 100644 --- a/clients/python/tests/conftest.py +++ b/clients/python/tests/conftest.py @@ -9,6 +9,11 @@ def flan_t5_xxl(): return "google/flan-t5-xxl" +@pytest.fixture +def llama_7b(): + return "meta-llama/Llama-2-7b-chat-hf" + + @pytest.fixture def fake_model(): return "fake/model" @@ -34,6 +39,11 @@ def flan_t5_xxl_url(base_url, flan_t5_xxl): return f"{base_url}/{flan_t5_xxl}" +@pytest.fixture +def llama_7b_url(base_url, llama_7b): + return f"{base_url}/{llama_7b}" + + @pytest.fixture def fake_url(base_url, fake_model): return f"{base_url}/{fake_model}" diff --git a/clients/python/tests/test_client.py b/clients/python/tests/test_client.py index 1e25e1b1..8aed865b 100644 --- a/clients/python/tests/test_client.py +++ b/clients/python/tests/test_client.py @@ -5,24 +5,24 @@ from text_generation.errors import NotFoundError, ValidationError from text_generation.types import FinishReason, InputToken -def test_generate(flan_t5_xxl_url, hf_headers): - client = Client(flan_t5_xxl_url, hf_headers) +def test_generate(llama_7b_url, hf_headers): + client = Client(llama_7b_url, hf_headers) response = client.generate("test", max_new_tokens=1, decoder_input_details=True) - assert response.generated_text == "" + assert response.generated_text == "_" assert response.details.finish_reason == FinishReason.Length assert response.details.generated_tokens == 1 assert response.details.seed is None - assert len(response.details.prefill) == 1 - assert response.details.prefill[0] == InputToken(id=0, text="", logprob=None) + assert len(response.details.prefill) == 2 + assert response.details.prefill[0] == InputToken(id=1, text="", logprob=None) assert len(response.details.tokens) == 1 - assert response.details.tokens[0].id == 3 - assert response.details.tokens[0].text == " " + assert response.details.tokens[0].id == 29918 + assert response.details.tokens[0].text == "_" assert not response.details.tokens[0].special -def test_generate_best_of(flan_t5_xxl_url, hf_headers): - client = Client(flan_t5_xxl_url, hf_headers) +def test_generate_best_of(llama_7b_url, hf_headers): + client = Client(llama_7b_url, hf_headers) response = client.generate( "test", max_new_tokens=1, best_of=2, do_sample=True, decoder_input_details=True ) @@ -39,14 +39,14 @@ def test_generate_not_found(fake_url, hf_headers): client.generate("test") -def test_generate_validation_error(flan_t5_xxl_url, hf_headers): - client = Client(flan_t5_xxl_url, hf_headers) +def test_generate_validation_error(llama_7b_url, hf_headers): + client = Client(llama_7b_url, hf_headers) with pytest.raises(ValidationError): client.generate("test", max_new_tokens=10_000) -def test_generate_stream(flan_t5_xxl_url, hf_headers): - client = Client(flan_t5_xxl_url, hf_headers) +def test_generate_stream(llama_7b_url, hf_headers): + client = Client(llama_7b_url, hf_headers) responses = [ response for response in client.generate_stream("test", max_new_tokens=1) ] @@ -54,7 +54,7 @@ def test_generate_stream(flan_t5_xxl_url, hf_headers): assert len(responses) == 1 response = responses[0] - assert response.generated_text == "" + assert response.generated_text == "_" assert response.details.finish_reason == FinishReason.Length assert response.details.generated_tokens == 1 assert response.details.seed is None @@ -66,34 +66,37 @@ def test_generate_stream_not_found(fake_url, hf_headers): list(client.generate_stream("test")) -def test_generate_stream_validation_error(flan_t5_xxl_url, hf_headers): - client = Client(flan_t5_xxl_url, hf_headers) +def test_generate_stream_validation_error(llama_7b_url, hf_headers): + client = Client(llama_7b_url, hf_headers) with pytest.raises(ValidationError): list(client.generate_stream("test", max_new_tokens=10_000)) @pytest.mark.asyncio -async def test_generate_async(flan_t5_xxl_url, hf_headers): - client = AsyncClient(flan_t5_xxl_url, hf_headers) +async def test_generate_async(llama_7b_url, hf_headers): + client = AsyncClient(llama_7b_url, hf_headers) response = await client.generate( "test", max_new_tokens=1, decoder_input_details=True ) - assert response.generated_text == "" + assert response.generated_text == "_" assert response.details.finish_reason == FinishReason.Length assert response.details.generated_tokens == 1 assert response.details.seed is None - assert len(response.details.prefill) == 1 - assert response.details.prefill[0] == InputToken(id=0, text="", logprob=None) + assert len(response.details.prefill) == 2 + assert response.details.prefill[0] == InputToken(id=1, text="", logprob=None) + assert response.details.prefill[1] == InputToken( + id=1243, text="test", logprob=-10.96875 + ) assert len(response.details.tokens) == 1 - assert response.details.tokens[0].id == 3 - assert response.details.tokens[0].text == " " + assert response.details.tokens[0].id == 29918 + assert response.details.tokens[0].text == "_" assert not response.details.tokens[0].special @pytest.mark.asyncio -async def test_generate_async_best_of(flan_t5_xxl_url, hf_headers): - client = AsyncClient(flan_t5_xxl_url, hf_headers) +async def test_generate_async_best_of(llama_7b_url, hf_headers): + client = AsyncClient(llama_7b_url, hf_headers) response = await client.generate( "test", max_new_tokens=1, best_of=2, do_sample=True, decoder_input_details=True ) @@ -112,15 +115,15 @@ async def test_generate_async_not_found(fake_url, hf_headers): @pytest.mark.asyncio -async def test_generate_async_validation_error(flan_t5_xxl_url, hf_headers): - client = AsyncClient(flan_t5_xxl_url, hf_headers) +async def test_generate_async_validation_error(llama_7b_url, hf_headers): + client = AsyncClient(llama_7b_url, hf_headers) with pytest.raises(ValidationError): await client.generate("test", max_new_tokens=10_000) @pytest.mark.asyncio -async def test_generate_stream_async(flan_t5_xxl_url, hf_headers): - client = AsyncClient(flan_t5_xxl_url, hf_headers) +async def test_generate_stream_async(llama_7b_url, hf_headers): + client = AsyncClient(llama_7b_url, hf_headers) responses = [ response async for response in client.generate_stream("test", max_new_tokens=1) ] @@ -128,7 +131,7 @@ async def test_generate_stream_async(flan_t5_xxl_url, hf_headers): assert len(responses) == 1 response = responses[0] - assert response.generated_text == "" + assert response.generated_text == "_" assert response.details.finish_reason == FinishReason.Length assert response.details.generated_tokens == 1 assert response.details.seed is None @@ -143,8 +146,8 @@ async def test_generate_stream_async_not_found(fake_url, hf_headers): @pytest.mark.asyncio -async def test_generate_stream_async_validation_error(flan_t5_xxl_url, hf_headers): - client = AsyncClient(flan_t5_xxl_url, hf_headers) +async def test_generate_stream_async_validation_error(llama_7b_url, hf_headers): + client = AsyncClient(llama_7b_url, hf_headers) with pytest.raises(ValidationError): async for _ in client.generate_stream("test", max_new_tokens=10_000): pass From 06c3d4b1eccbfa9134082d45bc69afa6c43a3e2f Mon Sep 17 00:00:00 2001 From: drbh Date: Wed, 17 Apr 2024 04:41:12 -0400 Subject: [PATCH 30/74] feat: accept list as prompt and use first string (#1702) This PR allows the `CompletionRequest.prompt` to be sent as a string or array of strings. When an array is sent the first value will be used if it's a string; otherwise the according error will be thrown Fixes: https://github.com/huggingface/text-generation-inference/issues/1690 Similar to: https://github.com/vllm-project/vllm/pull/323/files --- clients/python/text_generation/types.py | 21 + docs/source/basic_tutorials/launcher.md | 9 + integration-tests/conftest.py | 27 +- ...t_flash_llama_completion_many_prompts.json | 38 ++ ..._llama_completion_many_prompts_stream.json | 602 ++++++++++++++++++ ..._flash_llama_completion_single_prompt.json | 20 + .../models/test_completion_prompts.py | 109 ++++ launcher/src/main.rs | 6 + router/src/lib.rs | 33 +- router/src/main.rs | 4 + router/src/server.rs | 422 +++++++++--- 11 files changed, 1186 insertions(+), 105 deletions(-) create mode 100644 integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts.json create mode 100644 integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts_stream.json create mode 100644 integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_single_prompt.json create mode 100644 integration-tests/models/test_completion_prompts.py diff --git a/clients/python/text_generation/types.py b/clients/python/text_generation/types.py index deb987c5..cfa2a9ed 100644 --- a/clients/python/text_generation/types.py +++ b/clients/python/text_generation/types.py @@ -59,6 +59,17 @@ class ChatCompletionComplete(BaseModel): usage: Optional[Any] = None +class CompletionComplete(BaseModel): + # Index of the chat completion + index: int + # Message associated with the chat completion + text: str + # Log probabilities for the chat completion + logprobs: Optional[Any] + # Reason for completion + finish_reason: str + + class Function(BaseModel): name: Optional[str] arguments: str @@ -104,6 +115,16 @@ class ChatComplete(BaseModel): usage: Any +class Completion(BaseModel): + # Completion details + id: str + object: str + created: int + model: str + system_fingerprint: str + choices: List[CompletionComplete] + + class ChatRequest(BaseModel): # Model identifier model: str diff --git a/docs/source/basic_tutorials/launcher.md b/docs/source/basic_tutorials/launcher.md index d9b272db..de7c995d 100644 --- a/docs/source/basic_tutorials/launcher.md +++ b/docs/source/basic_tutorials/launcher.md @@ -398,6 +398,15 @@ Options: -e, --env Display a lot of information about your runtime environment +``` +## MAX_CLIENT_BATCH_SIZE +```shell + --max-client-batch-size + Control the maximum number of inputs that a client can send in a single request + + [env: MAX_CLIENT_BATCH_SIZE=] + [default: 4] + ``` ## HELP ```shell diff --git a/integration-tests/conftest.py b/integration-tests/conftest.py index e8ce0d84..cf0f498d 100644 --- a/integration-tests/conftest.py +++ b/integration-tests/conftest.py @@ -9,6 +9,7 @@ import json import math import time import random +import re from docker.errors import NotFound from typing import Optional, List, Dict @@ -26,6 +27,7 @@ from text_generation.types import ( ChatComplete, ChatCompletionChunk, ChatCompletionComplete, + Completion, ) DOCKER_IMAGE = os.getenv("DOCKER_IMAGE", None) @@ -69,17 +71,22 @@ class ResponseComparator(JSONSnapshotExtension): data = json.loads(data) if isinstance(data, Dict) and "choices" in data: choices = data["choices"] - if ( - isinstance(choices, List) - and len(choices) >= 1 - and "delta" in choices[0] - ): - return ChatCompletionChunk(**data) + if isinstance(choices, List) and len(choices) >= 1: + if "delta" in choices[0]: + return ChatCompletionChunk(**data) + if "text" in choices[0]: + return Completion(**data) return ChatComplete(**data) if isinstance(data, Dict): return Response(**data) if isinstance(data, List): + if ( + len(data) > 0 + and "object" in data[0] + and data[0]["object"] == "text_completion" + ): + return [Completion(**d) for d in data] return [Response(**d) for d in data] raise NotImplementedError @@ -161,6 +168,9 @@ class ResponseComparator(JSONSnapshotExtension): ) ) + def eq_completion(response: Completion, other: Completion) -> bool: + return response.choices[0].text == other.choices[0].text + def eq_chat_complete(response: ChatComplete, other: ChatComplete) -> bool: return ( response.choices[0].message.content == other.choices[0].message.content @@ -184,6 +194,11 @@ class ResponseComparator(JSONSnapshotExtension): if not isinstance(snapshot_data, List): snapshot_data = [snapshot_data] + if isinstance(serialized_data[0], Completion): + return len(snapshot_data) == len(serialized_data) and all( + [eq_completion(r, o) for r, o in zip(serialized_data, snapshot_data)] + ) + if isinstance(serialized_data[0], ChatComplete): return len(snapshot_data) == len(serialized_data) and all( [eq_chat_complete(r, o) for r, o in zip(serialized_data, snapshot_data)] diff --git a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts.json b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts.json new file mode 100644 index 00000000..3fe0a482 --- /dev/null +++ b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts.json @@ -0,0 +1,38 @@ +{ + "choices": [ + { + "finish_reason": "eos_token", + "index": 1, + "logprobs": null, + "text": " PR for more information?" + }, + { + "finish_reason": "length", + "index": 0, + "logprobs": null, + "text": "le Business Incubator is providing a workspace" + }, + { + "finish_reason": "length", + "index": 2, + "logprobs": null, + "text": " severely flawed and often has a substandard" + }, + { + "finish_reason": "length", + "index": 3, + "logprobs": null, + "text": "hd20220811-" + } + ], + "created": 1713284455, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native", + "usage": { + "completion_tokens": 36, + "prompt_tokens": 8, + "total_tokens": 44 + } +} diff --git a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts_stream.json b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts_stream.json new file mode 100644 index 00000000..702d48f4 --- /dev/null +++ b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts_stream.json @@ -0,0 +1,602 @@ +[ + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": "\n" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": "\n" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": "\n" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": "hd" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": "\n" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": "\n" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": "\n" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": "aho" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": "2" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": "2" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": "2" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": "ima" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": "." + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": "." + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": "." + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": "\n" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": " Sarah" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": " Yes" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": " And" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": "i" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": "'" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": "," + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": " what" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": "'" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": "s" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": " Moh" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": " is" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": "m" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": " Room" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": "s" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": " the" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": " tired" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": ":" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": "'" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": " capital" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": " of" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 0, + "logprobs": null, + "text": " She" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 1, + "logprobs": null, + "text": " scale" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 2, + "logprobs": null, + "text": " of" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + }, + { + "choices": [ + { + "finish_reason": "", + "index": 3, + "logprobs": null, + "text": " being" + } + ], + "created": 1713284431, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native" + } +] diff --git a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_single_prompt.json b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_single_prompt.json new file mode 100644 index 00000000..8b001a09 --- /dev/null +++ b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_single_prompt.json @@ -0,0 +1,20 @@ +{ + "choices": [ + { + "finish_reason": "length", + "index": 0, + "logprobs": null, + "text": " PR for flake8" + } + ], + "created": 1713284454, + "id": "", + "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + "object": "text_completion", + "system_fingerprint": "2.0.0-native", + "usage": { + "completion_tokens": 5, + "prompt_tokens": 6, + "total_tokens": 11 + } +} diff --git a/integration-tests/models/test_completion_prompts.py b/integration-tests/models/test_completion_prompts.py new file mode 100644 index 00000000..cafa8ea6 --- /dev/null +++ b/integration-tests/models/test_completion_prompts.py @@ -0,0 +1,109 @@ +import pytest +import requests +import json +from aiohttp import ClientSession + +from text_generation.types import ( + Completion, +) + + +@pytest.fixture(scope="module") +def flash_llama_completion_handle(launcher): + with launcher( + "TinyLlama/TinyLlama-1.1B-Chat-v1.0", + ) as handle: + yield handle + + +@pytest.fixture(scope="module") +async def flash_llama_completion(flash_llama_completion_handle): + await flash_llama_completion_handle.health(300) + return flash_llama_completion_handle.client + + +# NOTE: since `v1/completions` is a deprecated inferface/endpoint we do not provide a convience +# method for it. Instead, we use the `requests` library to make the HTTP request directly. + + +def test_flash_llama_completion_single_prompt( + flash_llama_completion, response_snapshot +): + response = requests.post( + f"{flash_llama_completion.base_url}/v1/completions", + json={ + "model": "tgi", + "prompt": "Say this is a test", + "max_tokens": 5, + "seed": 0, + }, + headers=flash_llama_completion.headers, + stream=False, + ) + response = response.json() + assert len(response["choices"]) == 1 + + assert response == response_snapshot + + +def test_flash_llama_completion_many_prompts(flash_llama_completion, response_snapshot): + response = requests.post( + f"{flash_llama_completion.base_url}/v1/completions", + json={ + "model": "tgi", + "prompt": ["Say", "this", "is", "a"], + "max_tokens": 10, + "seed": 0, + }, + headers=flash_llama_completion.headers, + stream=False, + ) + response = response.json() + assert len(response["choices"]) == 4 + + all_indexes = [choice["index"] for choice in response["choices"]] + all_indexes.sort() + assert all_indexes == [0, 1, 2, 3] + + assert response == response_snapshot + + +async def test_flash_llama_completion_many_prompts_stream( + flash_llama_completion, response_snapshot +): + request = { + "model": "tgi", + "prompt": [ + "What color is the sky?", + "Is water wet?", + "What is the capital of France?", + "def mai", + ], + "max_tokens": 10, + "seed": 0, + "stream": True, + } + + url = f"{flash_llama_completion.base_url}/v1/completions" + + chunks = [] + async with ClientSession(headers=flash_llama_completion.headers) as session: + async with session.post(url, json=request) as response: + # iterate over the stream + async for chunk in response.content.iter_any(): + # remove "data:" + chunk = chunk.decode().split("\n\n") + # remove "data:" if present + chunk = [c.replace("data:", "") for c in chunk] + # remove empty strings + chunk = [c for c in chunk if c] + # parse json + chunk = [json.loads(c) for c in chunk] + + for c in chunk: + chunks.append(Completion(**c)) + assert "choices" in c + assert 0 <= c["choices"][0]["index"] <= 4 + + assert response.status == 200 + assert chunks == response_snapshot diff --git a/launcher/src/main.rs b/launcher/src/main.rs index be2426ee..d904f91b 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -414,6 +414,10 @@ struct Args { /// Display a lot of information about your runtime environment #[clap(long, short, action)] env: bool, + + /// Control the maximum number of inputs that a client can send in a single request + #[clap(default_value = "4", long, env)] + max_client_batch_size: usize, } #[derive(Debug)] @@ -1078,6 +1082,8 @@ fn spawn_webserver( // Start webserver tracing::info!("Starting Webserver"); let mut router_args = vec![ + "--max-client-batch-size".to_string(), + args.max_client_batch_size.to_string(), "--max-concurrent-requests".to_string(), args.max_concurrent_requests.to_string(), "--max-best-of".to_string(), diff --git a/router/src/lib.rs b/router/src/lib.rs index ddb28848..2395e3e2 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -155,6 +155,8 @@ pub struct Info { pub max_batch_size: Option, #[schema(example = "2")] pub validation_workers: usize, + #[schema(example = "32")] + pub max_client_batch_size: usize, /// Router Info #[schema(example = "0.5.0")] pub version: &'static str, @@ -280,6 +282,34 @@ fn default_parameters() -> GenerateParameters { } } +mod prompt_serde { + use serde::{self, Deserialize, Deserializer}; + use serde_json::Value; + + pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> + where + D: Deserializer<'de>, + { + let value = Value::deserialize(deserializer)?; + match value { + Value::String(s) => Ok(vec![s]), + Value::Array(arr) if arr.is_empty() => Err(serde::de::Error::custom( + "Empty array detected. Do not use an empty array for the prompt.", + )), + Value::Array(arr) => arr + .iter() + .map(|v| match v { + Value::String(s) => Ok(s.to_owned()), + _ => Err(serde::de::Error::custom("Expected a string")), + }) + .collect(), + _ => Err(serde::de::Error::custom( + "Expected a string or an array of strings", + )), + } + } +} + #[derive(Clone, Deserialize, Serialize, ToSchema, Debug)] pub struct CompletionRequest { /// UNUSED @@ -289,7 +319,8 @@ pub struct CompletionRequest { /// The prompt to generate completions for. #[schema(example = "What is Deep Learning?")] - pub prompt: String, + #[serde(deserialize_with = "prompt_serde::deserialize")] + pub prompt: Vec, /// The maximum number of tokens that can be generated in the chat completion. #[serde(default)] diff --git a/router/src/main.rs b/router/src/main.rs index f3a6c46f..b77117a1 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -78,6 +78,8 @@ struct Args { messages_api_enabled: bool, #[clap(long, env, default_value_t = false)] disable_grammar_support: bool, + #[clap(default_value = "4", long, env)] + max_client_batch_size: usize, } #[tokio::main] @@ -112,6 +114,7 @@ async fn main() -> Result<(), RouterError> { ngrok_edge, messages_api_enabled, disable_grammar_support, + max_client_batch_size, } = args; // Launch Tokio runtime @@ -393,6 +396,7 @@ async fn main() -> Result<(), RouterError> { tokenizer_config, messages_api_enabled, disable_grammar_support, + max_client_batch_size, ) .await?; Ok(()) diff --git a/router/src/server.rs b/router/src/server.rs index 3f033a9d..302a4753 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -16,6 +16,7 @@ use crate::{ CompletionRequest, DeltaToolCall, Function, Tool, VertexRequest, VertexResponse, }; use crate::{FunctionDefinition, ToolCall, ToolType}; +use async_stream::__private::AsyncStream; use axum::extract::Extension; use axum::http::{HeaderMap, Method, StatusCode}; use axum::response::sse::{Event, KeepAlive, Sse}; @@ -23,8 +24,8 @@ use axum::response::{IntoResponse, Response}; use axum::routing::{get, post}; use axum::{http, Json, Router}; use axum_tracing_opentelemetry::middleware::OtelAxumLayer; -use futures::stream::FuturesUnordered; use futures::stream::StreamExt; +use futures::stream::{FuturesOrdered, FuturesUnordered}; use futures::Stream; use futures::TryStreamExt; use metrics_exporter_prometheus::{Matcher, PrometheusBuilder, PrometheusHandle}; @@ -35,7 +36,9 @@ use std::sync::atomic::AtomicBool; use std::sync::Arc; use text_generation_client::{ShardInfo, ShardedClient}; use tokenizers::Tokenizer; +use tokio::select; use tokio::signal; +use tokio::sync::oneshot; use tokio::time::Instant; use tower_http::cors::{AllowOrigin, CorsLayer}; use tracing::{info_span, instrument, Instrument}; @@ -161,6 +164,15 @@ async fn generate( Json(req): Json, ) -> Result<(HeaderMap, Json), (StatusCode, Json)> { let span = tracing::Span::current(); + generate_internal(infer, ComputeType(compute_type), Json(req), span).await +} + +async fn generate_internal( + infer: Extension, + ComputeType(compute_type): ComputeType, + Json(req): Json, + span: tracing::Span, +) -> Result<(HeaderMap, Json), (StatusCode, Json)> { let start_time = Instant::now(); metrics::increment_counter!("tgi_request_count"); @@ -359,12 +371,13 @@ async fn generate_stream( HeaderMap, Sse>>, ) { + let span = tracing::Span::current(); let on_message_callback = |stream_token: StreamResponse| { let event = Event::default(); event.json_data(stream_token).unwrap() }; let (headers, response_stream) = - generate_stream_internal(infer, compute_type, Json(req), on_message_callback).await; + generate_stream_internal(infer, compute_type, Json(req), on_message_callback, span).await; let sse = Sse::new(response_stream).keep_alive(KeepAlive::default()); (headers, sse) } @@ -374,8 +387,8 @@ async fn generate_stream_internal( ComputeType(compute_type): ComputeType, Json(req): Json, on_message_callback: impl Fn(StreamResponse) -> Event, + span: tracing::Span, ) -> (HeaderMap, impl Stream>) { - let span = tracing::Span::current(); let start_time = Instant::now(); metrics::increment_counter!("tgi_request_count"); @@ -581,6 +594,7 @@ async fn completions( Extension(info): Extension, Json(req): Json, ) -> Result)> { + let span = tracing::Span::current(); metrics::increment_counter!("tgi_request_count"); let stream = req.stream; @@ -600,100 +614,299 @@ async fn completions( )); } - // build the request passing some parameters - let generate_request = GenerateRequest { - inputs: req.prompt.to_string(), - parameters: GenerateParameters { - best_of: None, - temperature: req.temperature, - repetition_penalty: req.repetition_penalty, - frequency_penalty: req.frequency_penalty, - top_k: None, - top_p: req.top_p, - typical_p: None, - do_sample: true, - max_new_tokens, - return_full_text: None, - stop: Vec::new(), - truncate: None, - watermark: false, - details: true, - decoder_input_details: !stream, - seed, - top_n_tokens: None, - grammar: None, - }, - }; + if req.prompt.len() > info.max_client_batch_size { + metrics::increment_counter!("tgi_request_failure", "err" => "validation"); + return Err(( + StatusCode::UNPROCESSABLE_ENTITY, + Json(ErrorResponse { + error: format!( + "Number of prompts exceeds the maximum allowed batch size of {}", + info.max_client_batch_size + ), + error_type: "batch size exceeded".to_string(), + }), + )); + } + + let generate_requests: Vec = req + .prompt + .iter() + .map(|prompt| GenerateRequest { + inputs: prompt.to_string(), + parameters: GenerateParameters { + best_of: None, + temperature: req.temperature, + repetition_penalty: req.repetition_penalty, + frequency_penalty: req.frequency_penalty, + top_k: None, + top_p: req.top_p, + typical_p: None, + do_sample: true, + max_new_tokens, + return_full_text: None, + stop: Vec::new(), + truncate: None, + watermark: false, + details: true, + decoder_input_details: !stream, + seed, + top_n_tokens: None, + grammar: None, + }, + }) + .collect(); + + let mut x_compute_type = None; + let mut x_compute_characters = 0u32; + let mut x_accel_buffering = None; if stream { - let on_message_callback = move |stream_token: StreamResponse| { - let event = Event::default(); + let mut response_streams = FuturesOrdered::new(); + for (index, generate_request) in generate_requests.into_iter().enumerate() { + let model_id = info.model_id.clone(); + let system_fingerprint = + format!("{}-{}", info.version, info.docker_label.unwrap_or("native")); + let infer_clone = infer.clone(); + let compute_type_clone = compute_type.clone(); + let span_clone = span.clone(); - let current_time = std::time::SystemTime::now() - .duration_since(std::time::UNIX_EPOCH) - .unwrap_or_else(|_| std::time::Duration::from_secs(0)) - .as_secs(); + // Create a future for each generate_stream_internal call. + let generate_future = async move { + let on_message_callback = move |stream_token: StreamResponse| { + let event = Event::default(); - event - .json_data(CompletionCompleteChunk { - id: "".to_string(), - object: "text_completion".to_string(), - created: current_time, + let current_time = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_else(|_| std::time::Duration::from_secs(0)) + .as_secs(); - choices: vec![CompletionComplete { - finish_reason: "".to_string(), - index: 0, - logprobs: None, - text: stream_token.token.text, - }], + event + .json_data(CompletionCompleteChunk { + id: "".to_string(), + object: "text_completion".to_string(), + created: current_time, - model: info.model_id.clone(), - system_fingerprint: format!( - "{}-{}", - info.version, - info.docker_label.unwrap_or("native") - ), - }) - .map_or_else( - |e| { - println!("Failed to serialize CompletionCompleteChunk: {:?}", e); - Event::default() - }, - |data| data, + choices: vec![CompletionComplete { + finish_reason: "".to_string(), + index: index as u32, + logprobs: None, + text: stream_token.token.text, + }], + + model: model_id.clone(), + system_fingerprint: system_fingerprint.clone(), + }) + .map_or_else(|_e| Event::default(), |data| data) + }; + + let (header_tx, header_rx) = oneshot::channel(); + let (sse_tx, sse_rx) = tokio::sync::mpsc::unbounded_channel(); + + tokio::spawn(async move { + let (header_map, sse) = generate_stream_internal( + infer_clone.clone(), + compute_type_clone.clone(), + Json(generate_request), + on_message_callback, + span_clone.clone(), + ) + .await; + + // send and dont wait for response + let _ = header_tx.send(header_map); + + // pin an emit messages to the sse_tx + let mut sse = Box::pin(sse); + while let Some(event) = sse.next().await { + if sse_tx.send(event).is_err() { + tracing::error!("Failed to send event. Receiver dropped."); + break; + } + } + }); + + (header_rx, sse_rx) + }; + response_streams.push_back(generate_future); + } + + let mut all_rxs = vec![]; + + while let Some((header_rx, sse_rx)) = response_streams.next().await { + all_rxs.push(sse_rx); + + // get the headers from the first response of each stream + let headers = header_rx.await.map_err(|e| { + tracing::error!("Failed to get headers: {:?}", e); + ( + StatusCode::INTERNAL_SERVER_ERROR, + Json(ErrorResponse { + error: "Failed to get headers".to_string(), + error_type: "headers".to_string(), + }), ) + })?; + if x_compute_type.is_none() { + x_compute_type = headers + .get("x-compute-type") + .and_then(|v| v.to_str().ok()) + .map(|v| v.to_string()); + + x_accel_buffering = headers + .get("x-accel-buffering") + .and_then(|v| v.to_str().ok()) + .map(|v| v.to_string()); + } + x_compute_characters += headers + .get("x-compute-characters") + .and_then(|v| v.to_str().ok()) + .and_then(|v| v.parse().ok()) + .unwrap_or(0); + } + + let mut headers = HeaderMap::new(); + if let Some(x_compute_type) = x_compute_type { + headers.insert("x-compute-type", x_compute_type.parse().unwrap()); + } + headers.insert("x-compute-characters", x_compute_characters.into()); + if let Some(x_accel_buffering) = x_accel_buffering { + headers.insert("x-accel-buffering", x_accel_buffering.parse().unwrap()); + } + + // now sink the sse streams into a single stream and remove the ones that are done + let stream: AsyncStream, _> = async_stream::stream! { + loop { + let mut i = 0; + while i < all_rxs.len() { + let rx = &mut all_rxs[i]; + select! { + Some(event) = rx.recv() => { + yield event; + } + else => { + all_rxs.remove(i); + continue; // skip the increment to handle the next element at the same index + } + } + i += 1; // only increment when no element was removed + } + + if all_rxs.is_empty() { + break; + } + } }; - let (headers, response_stream) = generate_stream_internal( - infer, - compute_type, - Json(generate_request), - on_message_callback, - ) - .await; - - let sse = Sse::new(response_stream).keep_alive(KeepAlive::default()); + let sse = Sse::new(stream).keep_alive(KeepAlive::default()); Ok((headers, sse).into_response()) } else { - let (headers, Json(generation)) = generate( - Extension(infer), - Extension(compute_type), - Json(generate_request), - ) - .await?; - let current_time = std::time::SystemTime::now() .duration_since(std::time::UNIX_EPOCH) .unwrap_or_else(|_| std::time::Duration::from_secs(0)) .as_secs(); - let details = generation.details.ok_or(( - // this should never happen but handle if details are missing unexpectedly - StatusCode::INTERNAL_SERVER_ERROR, - Json(ErrorResponse { - error: "No details in generation".to_string(), - error_type: "no details".to_string(), - }), - ))?; + let responses = FuturesUnordered::new(); + for (index, generate_request) in generate_requests.into_iter().enumerate() { + let infer_clone = infer.clone(); + let compute_type_clone = compute_type.clone(); + let span_clone = span.clone(); + let response_future = async move { + let result = generate_internal( + Extension(infer_clone), + compute_type_clone, + Json(generate_request), + span_clone, + ) + .await; + result.map(|(headers, generation)| (index, headers, generation)) + }; + responses.push(response_future); + } + let generate_responses = responses.try_collect::>().await?; + + let mut prompt_tokens = 0u32; + let mut completion_tokens = 0u32; + let mut total_tokens = 0u32; + + let mut x_compute_time = 0u32; + let mut x_total_time = 0u32; + let mut x_validation_time = 0u32; + let mut x_queue_time = 0u32; + let mut x_inference_time = 0u32; + let mut x_time_per_token = 0u32; + let mut x_prompt_tokens = 0u32; + let mut x_generated_tokens = 0u32; + + let choices = generate_responses + .into_iter() + .map(|(index, headers, Json(generation))| { + let details = generation.details.ok_or(( + // this should never happen but handle if details are missing unexpectedly + StatusCode::INTERNAL_SERVER_ERROR, + Json(ErrorResponse { + error: "No details in generation".to_string(), + error_type: "no details".to_string(), + }), + ))?; + + if x_compute_type.is_none() { + x_compute_type = headers + .get("x-compute-type") + .and_then(|v| v.to_str().ok()) + .map(|v| v.to_string()); + } + + // accumulate headers and usage from each response + x_compute_time += headers + .get("x-compute-time") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + x_compute_characters += headers + .get("x-compute-characters") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + x_total_time += headers + .get("x-total-time") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + x_validation_time += headers + .get("x-validation-time") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + x_queue_time += headers + .get("x-queue-time") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + x_inference_time += headers + .get("x-inference-time") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + x_time_per_token += headers + .get("x-time-per-token") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + x_prompt_tokens += headers + .get("x-prompt-tokens") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + x_generated_tokens += headers + .get("x-generated-tokens") + .and_then(|v| v.to_str().ok()?.parse().ok()) + .unwrap_or(0); + + prompt_tokens += details.prefill.len() as u32; + completion_tokens += details.generated_tokens; + total_tokens += details.prefill.len() as u32 + details.generated_tokens; + + Ok(CompletionComplete { + finish_reason: details.finish_reason.to_string(), + index: index as u32, + logprobs: None, + text: generation.generated_text, + }) + }) + .collect::, _>>() + .map_err(|(status, Json(err))| (status, Json(err)))?; let response = Completion { id: "".to_string(), @@ -705,19 +918,30 @@ async fn completions( info.version, info.docker_label.unwrap_or("native") ), - choices: vec![CompletionComplete { - finish_reason: details.finish_reason.to_string(), - index: 0, - logprobs: None, - text: generation.generated_text, - }], + choices, usage: Usage { - prompt_tokens: details.prefill.len() as u32, - completion_tokens: details.generated_tokens, - total_tokens: details.prefill.len() as u32 + details.generated_tokens, + prompt_tokens, + completion_tokens, + total_tokens, }, }; + // headers similar to `generate` but aggregated + let mut headers = HeaderMap::new(); + if let Some(x_compute_type) = x_compute_type { + headers.insert("x-compute-type", x_compute_type.parse().unwrap()); + } + headers.insert("x-compute-characters", x_compute_characters.into()); + headers.insert("x-total-time", x_total_time.into()); + headers.insert("x-validation-time", x_validation_time.into()); + headers.insert("x-queue-time", x_queue_time.into()); + headers.insert("x-inference-time", x_inference_time.into()); + headers.insert("x-time-per-token", x_time_per_token.into()); + headers.insert("x-prompt-tokens", x_prompt_tokens.into()); + headers.insert("x-generated-tokens", x_generated_tokens.into()); + if let Some(x_accel_buffering) = x_accel_buffering { + headers.insert("x-accel-buffering", x_accel_buffering.parse().unwrap()); + } Ok((headers, Json(response)).into_response()) } } @@ -762,6 +986,7 @@ async fn chat_completions( Extension(info): Extension, Json(req): Json, ) -> Result)> { + let span = tracing::Span::current(); metrics::increment_counter!("tgi_request_count"); let ChatRequest { @@ -899,17 +1124,14 @@ async fn chat_completions( compute_type, Json(generate_request), on_message_callback, + span, ) .await; let sse = Sse::new(response_stream).keep_alive(KeepAlive::default()); Ok((headers, sse).into_response()) } else { - let (headers, Json(generation)) = generate( - Extension(infer), - Extension(compute_type), - Json(generate_request), - ) - .await?; + let (headers, Json(generation)) = + generate_internal(Extension(infer), compute_type, Json(generate_request), span).await?; let current_time = std::time::SystemTime::now() .duration_since(std::time::UNIX_EPOCH) @@ -1006,6 +1228,7 @@ async fn vertex_compatibility( Extension(compute_type): Extension, Json(req): Json, ) -> Result)> { + let span = tracing::Span::current(); metrics::increment_counter!("tgi_request_count"); // check that theres at least one instance @@ -1037,10 +1260,11 @@ async fn vertex_compatibility( }; async { - generate( + generate_internal( Extension(infer.clone()), - Extension(compute_type.clone()), + compute_type.clone(), Json(generate_request), + span.clone(), ) .await .map(|(_, Json(generation))| generation.generated_text) @@ -1152,6 +1376,7 @@ pub async fn run( tokenizer_config: HubTokenizerConfig, messages_api_enabled: bool, grammar_support: bool, + max_client_batch_size: usize, ) -> Result<(), axum::BoxError> { // OpenAPI documentation #[derive(OpenApi)] @@ -1326,6 +1551,7 @@ pub async fn run( max_waiting_tokens, max_batch_size, validation_workers, + max_client_batch_size, version: env!("CARGO_PKG_VERSION"), sha: option_env!("VERGEN_GIT_SHA"), docker_label: option_env!("DOCKER_LABEL"), From f9ee2c41b9664ad299f593ecdb500eba29373d63 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Thu, 18 Apr 2024 17:17:40 +0200 Subject: [PATCH 31/74] Upgrading all versions. (#1759) --- Cargo.lock | 240 ++-- Cargo.toml | 4 + benchmark/Cargo.toml | 4 +- docs/openapi.json | 38 +- router/Cargo.toml | 4 +- router/src/lib.rs | 3 +- server/poetry.lock | 1081 ++++++++--------- server/pyproject.toml | 4 +- server/requirements_cuda.txt | 14 +- server/requirements_rocm.txt | 14 +- .../utils/paged_attention.py | 129 +- 11 files changed, 781 insertions(+), 754 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fd6baab5..6088d7b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -120,7 +120,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -159,7 +159,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -170,7 +170,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -449,9 +449,9 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] name = "cc" -version = "1.0.92" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" +checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" dependencies = [ "jobserver", "libc", @@ -510,7 +510,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -665,9 +665,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.14.4" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" dependencies = [ "darling_core", "darling_macro", @@ -675,27 +675,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim 0.10.0", - "syn 1.0.109", + "syn 2.0.60", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 2.0.60", ] [[package]] @@ -709,33 +709,33 @@ dependencies = [ [[package]] name = "derive_builder" -version = "0.12.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +checksum = "0350b5cb0331628a5916d6c5c0b72e97393b8b6b03b47a9284f4e7f5a405ffd7" dependencies = [ "derive_builder_macro", ] [[package]] name = "derive_builder_core" -version = "0.12.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +checksum = "d48cda787f839151732d396ac69e3473923d54312c070ee21e9effcaa8ca0b1d" dependencies = [ "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.60", ] [[package]] name = "derive_builder_macro" -version = "0.12.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" dependencies = [ "derive_builder_core", - "syn 1.0.109", + "syn 2.0.60", ] [[package]] @@ -800,9 +800,9 @@ dependencies = [ [[package]] name = "either" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" [[package]] name = "encode_unicode" @@ -1018,7 +1018,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -1423,7 +1423,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -1476,9 +1476,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f08474e32172238f2827bd160c67871cdb2801430f65c3979184dc362e3ca118" +checksum = "685a7d121ee3f65ae4fddd72b25a04bb36b6af81bc0828f7d5434c0fe60fa3a2" dependencies = [ "libc", ] @@ -1703,7 +1703,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -1775,9 +1775,9 @@ dependencies = [ [[package]] name = "monostate" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878c2a1f1c70e5724fa28f101ca787b6a7e8ad5c5e4ae4ca3b0fa4a419fa9075" +checksum = "a20fffcd8ca4c69d31e036a71abc400147b41f90895df4edcb36497a1f8af8bf" dependencies = [ "monostate-impl", "serde", @@ -1785,13 +1785,13 @@ dependencies = [ [[package]] name = "monostate-impl" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f686d68a09079e63b1d2c64aa305095887ce50565f00a922ebfaeeee0d9ba6ce" +checksum = "bf307cbbbd777a9c10cec88ddafee572b3484caad5cce0c9236523c3803105a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -1929,9 +1929,9 @@ dependencies = [ [[package]] name = "num" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +checksum = "3135b08af27d103b0a51f2ae0f8632117b7b185ccf931445affa8df530576a41" dependencies = [ "num-bigint", "num-complex", @@ -1981,7 +1981,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -2111,7 +2111,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -2327,7 +2327,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -2381,12 +2381,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" +checksum = "5ac2cf0f2e4f42b49f5ffd07dae8d746508ef7526c13940e5f524012ae6c6550" dependencies = [ "proc-macro2", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -2415,9 +2415,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" dependencies = [ "unicode-ident", ] @@ -2438,7 +2438,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -2478,7 +2478,7 @@ dependencies = [ "prost 0.12.4", "prost-types", "regex", - "syn 2.0.58", + "syn 2.0.60", "tempfile", ] @@ -2505,7 +2505,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -2752,12 +2752,6 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - [[package]] name = "regex-syntax" version = "0.8.3" @@ -2864,7 +2858,7 @@ dependencies = [ "quote", "rust-embed-utils", "shellexpand", - "syn 2.0.58", + "syn 2.0.60", "walkdir", ] @@ -3038,29 +3032,29 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] name = "serde_json" -version = "1.0.115" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" dependencies = [ "itoa", "ryu", @@ -3270,7 +3264,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -3292,9 +3286,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.58" +version = "2.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" dependencies = [ "proc-macro2", "quote", @@ -3412,7 +3406,7 @@ dependencies = [ "tabled", "text-generation-client", "thiserror", - "tokenizers 0.14.1", + "tokenizers", "tokio", "tracing", "tracing-subscriber", @@ -3482,7 +3476,7 @@ dependencies = [ "serde_json", "text-generation-client", "thiserror", - "tokenizers 0.15.2", + "tokenizers", "tokio", "tokio-stream", "tower-http", @@ -3511,7 +3505,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -3585,46 +3579,11 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokenizers" -version = "0.14.1" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9be88c795d8b9f9c4002b3a8f26a6d0876103a6f523b32ea3bac52d8560c17c" +checksum = "e500fad1dd3af3d626327e6a3fe5050e664a6eaa4708b8ca92f1794aaf73e6fd" dependencies = [ "aho-corasick", - "clap", - "derive_builder", - "esaxx-rs", - "getrandom", - "hf-hub", - "indicatif", - "itertools 0.11.0", - "lazy_static", - "log", - "macro_rules_attribute", - "monostate", - "onig", - "paste", - "rand", - "rayon", - "rayon-cond", - "regex", - "regex-syntax 0.7.5", - "serde", - "serde_json", - "spm_precompiled", - "thiserror", - "unicode-normalization-alignments", - "unicode-segmentation", - "unicode_categories", -] - -[[package]] -name = "tokenizers" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dd47962b0ba36e7fd33518fbf1754d136fd1474000162bbf2a8b5fcb2d3654d" -dependencies = [ - "aho-corasick", - "clap", "derive_builder", "esaxx-rs", "getrandom", @@ -3688,7 +3647,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -3837,7 +3796,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -3910,7 +3869,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -4151,7 +4110,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -4273,7 +4232,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", "wasm-bindgen-shared", ] @@ -4307,7 +4266,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4391,7 +4350,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ "windows-core", - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -4400,7 +4359,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -4427,7 +4386,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -4462,17 +4421,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -4489,9 +4449,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -4507,9 +4467,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -4525,9 +4485,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -4543,9 +4509,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -4561,9 +4527,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -4579,9 +4545,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -4597,9 +4563,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" @@ -4637,7 +4603,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index ecb4878f..fffe4ef7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,10 @@ edition = "2021" authors = ["Olivier Dehaene"] homepage = "https://github.com/huggingface/text-generation-inference" +[workspace.dependencies] +tokenizers = { version = "0.19.1", features = ["http"] } +hf-hub = { version = "0.3.1", features = ["tokio"] } + [profile.release] debug = 1 incremental = true diff --git a/benchmark/Cargo.toml b/benchmark/Cargo.toml index 40738c4d..756460e0 100644 --- a/benchmark/Cargo.toml +++ b/benchmark/Cargo.toml @@ -23,9 +23,9 @@ serde_json = "1.0" tabled = "0.14.0" text-generation-client = { path = "../router/client" } thiserror = "1.0.48" -tokenizers = { version = "0.14.0", features = ["http"] } +tokenizers = { workspace = true } tokio = { version = "1.32.0", features = ["rt", "rt-multi-thread", "parking_lot", "signal", "sync", "macros"] } tui = {package = "ratatui", version = "0.23", default-features = false, features = ["crossterm"]} tracing = "0.1.37" tracing-subscriber = { version = "0.3.17", features = ["json", "env-filter"] } -hf-hub = "0.3.1" +hf-hub = { workspace = true } diff --git a/docs/openapi.json b/docs/openapi.json index 34b030f2..3093e7e2 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -408,9 +408,14 @@ }, "responses": { "200": { - "description": "Generated Text", + "description": "Generated Chat Completion", "content": { "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatCompletion" + } + }, + "text/event-stream": { "schema": { "$ref": "#/components/schemas/ChatCompletionChunk" } @@ -492,11 +497,16 @@ }, "responses": { "200": { - "description": "Generated Text", + "description": "Generated Chat Completion", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ChatCompletionChunk" + "$ref": "#/components/schemas/Completion" + } + }, + "text/event-stream": { + "schema": { + "$ref": "#/components/schemas/CompletionCompleteChunk" } } } @@ -930,7 +940,7 @@ "tool_prompt": { "type": "string", "description": "A prompt to be appended before the tools", - "example": "\"Based on the conversation, please choose the most appropriate tool to use: \"", + "example": "\"You will be presented with a JSON schema representing a set of tools.\nIf the user request lacks of sufficient information to make a precise tool selection: Do not invent any tool's properties, instead notify with an error message.\n\nJSON Schema:\n\"", "nullable": true }, "tools": { @@ -1071,7 +1081,10 @@ "example": "mistralai/Mistral-7B-Instruct-v0.2" }, "prompt": { - "type": "string", + "type": "array", + "items": { + "type": "string" + }, "description": "The prompt to generate completions for.", "example": "What is Deep Learning?" }, @@ -1234,17 +1247,17 @@ "type": "object", "required": [ "name", - "parameters" + "arguments" ], "properties": { + "arguments": {}, "description": { "type": "string", "nullable": true }, "name": { "type": "string" - }, - "parameters": {} + } } }, "GenerateParameters": { @@ -1260,7 +1273,7 @@ }, "decoder_input_details": { "type": "boolean", - "default": "true" + "default": "false" }, "details": { "type": "boolean", @@ -1285,6 +1298,7 @@ "$ref": "#/components/schemas/GrammarType" } ], + "default": "null", "nullable": true }, "max_new_tokens": { @@ -1478,6 +1492,7 @@ "max_batch_total_tokens", "max_waiting_tokens", "validation_workers", + "max_client_batch_size", "version" ], "properties": { @@ -1503,6 +1518,11 @@ "example": "2", "minimum": 0 }, + "max_client_batch_size": { + "type": "integer", + "example": "32", + "minimum": 0 + }, "max_concurrent_requests": { "type": "integer", "description": "Router Parameters", diff --git a/router/Cargo.toml b/router/Cargo.toml index 582bbdfb..d164183e 100644 --- a/router/Cargo.toml +++ b/router/Cargo.toml @@ -21,7 +21,7 @@ axum-tracing-opentelemetry = "0.14.1" text-generation-client = { path = "client" } clap = { version = "4.4.5", features = ["derive", "env"] } futures = "0.3.28" -hf-hub = { version = "0.3.0", features = ["tokio"] } +hf-hub = { workspace = true } jsonschema = { version = "0.17.1", features = ["draft202012"] } metrics = "0.21.1" metrics-exporter-prometheus = { version = "0.12.1", features = [] } @@ -33,7 +33,7 @@ reqwest = { version = "0.11.20", features = [] } serde = "1.0.188" serde_json = "1.0.107" thiserror = "1.0.48" -tokenizers = { version = "0.15.1", features = ["http"] } +tokenizers = { workspace = true} tokio = { version = "1.32.0", features = ["rt", "rt-multi-thread", "parking_lot", "signal", "sync"] } tokio-stream = "0.1.14" tower-http = { version = "0.4.4", features = ["cors"] } diff --git a/router/src/lib.rs b/router/src/lib.rs index 2395e3e2..53982c36 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -238,7 +238,7 @@ pub(crate) struct GenerateParameters { #[schema(default = "true")] pub details: bool, #[serde(default)] - #[schema(default = "true")] + #[schema(default = "false")] pub decoder_input_details: bool, #[serde(default)] #[schema( @@ -252,6 +252,7 @@ pub(crate) struct GenerateParameters { #[schema(exclusive_minimum = 0, nullable = true, default = "null", example = 5)] pub top_n_tokens: Option, #[serde(default)] + #[schema(nullable = true, default = "null", example = "null")] pub grammar: Option, } diff --git a/server/poetry.lock b/server/poetry.lock index f6768565..aea9c4c2 100644 --- a/server/poetry.lock +++ b/server/poetry.lock @@ -1,14 +1,14 @@ -# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "accelerate" -version = "0.29.1" +version = "0.29.3" description = "Accelerate" optional = true python-versions = ">=3.8.0" files = [ - {file = "accelerate-0.29.1-py3-none-any.whl", hash = "sha256:7eda0c8bc62bc59129103310f1272a0fb7b3ebc55fc8920cfe1c102db30aca58"}, - {file = "accelerate-0.29.1.tar.gz", hash = "sha256:d1d0e5a591177891812fd6d1bc843af191e1192c80e5180258f52fefcb653a9f"}, + {file = "accelerate-0.29.3-py3-none-any.whl", hash = "sha256:99d633d4b6126817c5e554487406748be95c8d1d1e659dd2fd60657e35f532dd"}, + {file = "accelerate-0.29.3.tar.gz", hash = "sha256:1a5a845b06b24b41736b219b2b20fd021ca5dff4070a252445fd6de736e347ac"}, ] [package.dependencies] @@ -32,87 +32,87 @@ testing = ["bitsandbytes", "datasets", "deepspeed", "evaluate", "parameterized", [[package]] name = "aiohttp" -version = "3.9.3" +version = "3.9.5" description = "Async http client/server framework (asyncio)" optional = true python-versions = ">=3.8" files = [ - {file = "aiohttp-3.9.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:939677b61f9d72a4fa2a042a5eee2a99a24001a67c13da113b2e30396567db54"}, - {file = "aiohttp-3.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f5cd333fcf7590a18334c90f8c9147c837a6ec8a178e88d90a9b96ea03194cc"}, - {file = "aiohttp-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:82e6aa28dd46374f72093eda8bcd142f7771ee1eb9d1e223ff0fa7177a96b4a5"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f56455b0c2c7cc3b0c584815264461d07b177f903a04481dfc33e08a89f0c26b"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bca77a198bb6e69795ef2f09a5f4c12758487f83f33d63acde5f0d4919815768"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e083c285857b78ee21a96ba1eb1b5339733c3563f72980728ca2b08b53826ca5"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab40e6251c3873d86ea9b30a1ac6d7478c09277b32e14745d0d3c6e76e3c7e29"}, - {file = "aiohttp-3.9.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df822ee7feaaeffb99c1a9e5e608800bd8eda6e5f18f5cfb0dc7eeb2eaa6bbec"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:acef0899fea7492145d2bbaaaec7b345c87753168589cc7faf0afec9afe9b747"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cd73265a9e5ea618014802ab01babf1940cecb90c9762d8b9e7d2cc1e1969ec6"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a78ed8a53a1221393d9637c01870248a6f4ea5b214a59a92a36f18151739452c"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:6b0e029353361f1746bac2e4cc19b32f972ec03f0f943b390c4ab3371840aabf"}, - {file = "aiohttp-3.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7cf5c9458e1e90e3c390c2639f1017a0379a99a94fdfad3a1fd966a2874bba52"}, - {file = "aiohttp-3.9.3-cp310-cp310-win32.whl", hash = "sha256:3e59c23c52765951b69ec45ddbbc9403a8761ee6f57253250c6e1536cacc758b"}, - {file = "aiohttp-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:055ce4f74b82551678291473f66dc9fb9048a50d8324278751926ff0ae7715e5"}, - {file = "aiohttp-3.9.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6b88f9386ff1ad91ace19d2a1c0225896e28815ee09fc6a8932fded8cda97c3d"}, - {file = "aiohttp-3.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c46956ed82961e31557b6857a5ca153c67e5476972e5f7190015018760938da2"}, - {file = "aiohttp-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:07b837ef0d2f252f96009e9b8435ec1fef68ef8b1461933253d318748ec1acdc"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad46e6f620574b3b4801c68255492e0159d1712271cc99d8bdf35f2043ec266"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ed3e046ea7b14938112ccd53d91c1539af3e6679b222f9469981e3dac7ba1ce"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:039df344b45ae0b34ac885ab5b53940b174530d4dd8a14ed8b0e2155b9dddccb"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7943c414d3a8d9235f5f15c22ace69787c140c80b718dcd57caaade95f7cd93b"}, - {file = "aiohttp-3.9.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84871a243359bb42c12728f04d181a389718710129b36b6aad0fc4655a7647d4"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5eafe2c065df5401ba06821b9a054d9cb2848867f3c59801b5d07a0be3a380ae"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:9d3c9b50f19704552f23b4eaea1fc082fdd82c63429a6506446cbd8737823da3"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:f033d80bc6283092613882dfe40419c6a6a1527e04fc69350e87a9df02bbc283"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:2c895a656dd7e061b2fd6bb77d971cc38f2afc277229ce7dd3552de8313a483e"}, - {file = "aiohttp-3.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1f5a71d25cd8106eab05f8704cd9167b6e5187bcdf8f090a66c6d88b634802b4"}, - {file = "aiohttp-3.9.3-cp311-cp311-win32.whl", hash = "sha256:50fca156d718f8ced687a373f9e140c1bb765ca16e3d6f4fe116e3df7c05b2c5"}, - {file = "aiohttp-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:5fe9ce6c09668063b8447f85d43b8d1c4e5d3d7e92c63173e6180b2ac5d46dd8"}, - {file = "aiohttp-3.9.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:38a19bc3b686ad55804ae931012f78f7a534cce165d089a2059f658f6c91fa60"}, - {file = "aiohttp-3.9.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:770d015888c2a598b377bd2f663adfd947d78c0124cfe7b959e1ef39f5b13869"}, - {file = "aiohttp-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee43080e75fc92bf36219926c8e6de497f9b247301bbf88c5c7593d931426679"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52df73f14ed99cee84865b95a3d9e044f226320a87af208f068ecc33e0c35b96"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc9b311743a78043b26ffaeeb9715dc360335e5517832f5a8e339f8a43581e4d"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b955ed993491f1a5da7f92e98d5dad3c1e14dc175f74517c4e610b1f2456fb11"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:504b6981675ace64c28bf4a05a508af5cde526e36492c98916127f5a02354d53"}, - {file = "aiohttp-3.9.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a6fe5571784af92b6bc2fda8d1925cccdf24642d49546d3144948a6a1ed58ca5"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ba39e9c8627edc56544c8628cc180d88605df3892beeb2b94c9bc857774848ca"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:e5e46b578c0e9db71d04c4b506a2121c0cb371dd89af17a0586ff6769d4c58c1"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:938a9653e1e0c592053f815f7028e41a3062e902095e5a7dc84617c87267ebd5"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:c3452ea726c76e92f3b9fae4b34a151981a9ec0a4847a627c43d71a15ac32aa6"}, - {file = "aiohttp-3.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ff30218887e62209942f91ac1be902cc80cddb86bf00fbc6783b7a43b2bea26f"}, - {file = "aiohttp-3.9.3-cp312-cp312-win32.whl", hash = "sha256:38f307b41e0bea3294a9a2a87833191e4bcf89bb0365e83a8be3a58b31fb7f38"}, - {file = "aiohttp-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:b791a3143681a520c0a17e26ae7465f1b6f99461a28019d1a2f425236e6eedb5"}, - {file = "aiohttp-3.9.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0ed621426d961df79aa3b963ac7af0d40392956ffa9be022024cd16297b30c8c"}, - {file = "aiohttp-3.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7f46acd6a194287b7e41e87957bfe2ad1ad88318d447caf5b090012f2c5bb528"}, - {file = "aiohttp-3.9.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:feeb18a801aacb098220e2c3eea59a512362eb408d4afd0c242044c33ad6d542"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f734e38fd8666f53da904c52a23ce517f1b07722118d750405af7e4123933511"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b40670ec7e2156d8e57f70aec34a7216407848dfe6c693ef131ddf6e76feb672"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fdd215b7b7fd4a53994f238d0f46b7ba4ac4c0adb12452beee724ddd0743ae5d"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:017a21b0df49039c8f46ca0971b3a7fdc1f56741ab1240cb90ca408049766168"}, - {file = "aiohttp-3.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e99abf0bba688259a496f966211c49a514e65afa9b3073a1fcee08856e04425b"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:648056db9a9fa565d3fa851880f99f45e3f9a771dd3ff3bb0c048ea83fb28194"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8aacb477dc26797ee089721536a292a664846489c49d3ef9725f992449eda5a8"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:522a11c934ea660ff8953eda090dcd2154d367dec1ae3c540aff9f8a5c109ab4"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5bce0dc147ca85caa5d33debc4f4d65e8e8b5c97c7f9f660f215fa74fc49a321"}, - {file = "aiohttp-3.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b4af9f25b49a7be47c0972139e59ec0e8285c371049df1a63b6ca81fdd216a2"}, - {file = "aiohttp-3.9.3-cp38-cp38-win32.whl", hash = "sha256:298abd678033b8571995650ccee753d9458dfa0377be4dba91e4491da3f2be63"}, - {file = "aiohttp-3.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:69361bfdca5468c0488d7017b9b1e5ce769d40b46a9f4a2eed26b78619e9396c"}, - {file = "aiohttp-3.9.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:0fa43c32d1643f518491d9d3a730f85f5bbaedcbd7fbcae27435bb8b7a061b29"}, - {file = "aiohttp-3.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:835a55b7ca49468aaaac0b217092dfdff370e6c215c9224c52f30daaa735c1c1"}, - {file = "aiohttp-3.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06a9b2c8837d9a94fae16c6223acc14b4dfdff216ab9b7202e07a9a09541168f"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abf151955990d23f84205286938796c55ff11bbfb4ccfada8c9c83ae6b3c89a3"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59c26c95975f26e662ca78fdf543d4eeaef70e533a672b4113dd888bd2423caa"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f95511dd5d0e05fd9728bac4096319f80615aaef4acbecb35a990afebe953b0e"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:595f105710293e76b9dc09f52e0dd896bd064a79346234b521f6b968ffdd8e58"}, - {file = "aiohttp-3.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7c8b816c2b5af5c8a436df44ca08258fc1a13b449393a91484225fcb7545533"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f1088fa100bf46e7b398ffd9904f4808a0612e1d966b4aa43baa535d1b6341eb"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f59dfe57bb1ec82ac0698ebfcdb7bcd0e99c255bd637ff613760d5f33e7c81b3"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:361a1026c9dd4aba0109e4040e2aecf9884f5cfe1b1b1bd3d09419c205e2e53d"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:363afe77cfcbe3a36353d8ea133e904b108feea505aa4792dad6585a8192c55a"}, - {file = "aiohttp-3.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e2c45c208c62e955e8256949eb225bd8b66a4c9b6865729a786f2aa79b72e9d"}, - {file = "aiohttp-3.9.3-cp39-cp39-win32.whl", hash = "sha256:f7217af2e14da0856e082e96ff637f14ae45c10a5714b63c77f26d8884cf1051"}, - {file = "aiohttp-3.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:27468897f628c627230dba07ec65dc8d0db566923c48f29e084ce382119802bc"}, - {file = "aiohttp-3.9.3.tar.gz", hash = "sha256:90842933e5d1ff760fae6caca4b2b3edba53ba8f4b71e95dacf2818a2aca06f7"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fcde4c397f673fdec23e6b05ebf8d4751314fa7c24f93334bf1f1364c1c69ac7"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d6b3f1fabe465e819aed2c421a6743d8debbde79b6a8600739300630a01bf2c"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ae79c1bc12c34082d92bf9422764f799aee4746fd7a392db46b7fd357d4a17a"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d3ebb9e1316ec74277d19c5f482f98cc65a73ccd5430540d6d11682cd857430"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84dabd95154f43a2ea80deffec9cb44d2e301e38a0c9d331cc4aa0166fe28ae3"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a02fbeca6f63cb1f0475c799679057fc9268b77075ab7cf3f1c600e81dd46b"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c26959ca7b75ff768e2776d8055bf9582a6267e24556bb7f7bd29e677932be72"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:714d4e5231fed4ba2762ed489b4aec07b2b9953cf4ee31e9871caac895a839c0"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7a6a8354f1b62e15d48e04350f13e726fa08b62c3d7b8401c0a1314f02e3558"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c413016880e03e69d166efb5a1a95d40f83d5a3a648d16486592c49ffb76d0db"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ff84aeb864e0fac81f676be9f4685f0527b660f1efdc40dcede3c251ef1e867f"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ad7f2919d7dac062f24d6f5fe95d401597fbb015a25771f85e692d043c9d7832"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:702e2c7c187c1a498a4e2b03155d52658fdd6fda882d3d7fbb891a5cf108bb10"}, + {file = "aiohttp-3.9.5-cp310-cp310-win32.whl", hash = "sha256:67c3119f5ddc7261d47163ed86d760ddf0e625cd6246b4ed852e82159617b5fb"}, + {file = "aiohttp-3.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:471f0ef53ccedec9995287f02caf0c068732f026455f07db3f01a46e49d76bbb"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ae53e33ee7476dd3d1132f932eeb39bf6125083820049d06edcdca4381f342"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c088c4d70d21f8ca5c0b8b5403fe84a7bc8e024161febdd4ef04575ef35d474d"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:639d0042b7670222f33b0028de6b4e2fad6451462ce7df2af8aee37dcac55424"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26383adb94da5e7fb388d441bf09c61e5e35f455a3217bfd790c6b6bc64b2ee"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66331d00fb28dc90aa606d9a54304af76b335ae204d1836f65797d6fe27f1ca2"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff550491f5492ab5ed3533e76b8567f4b37bd2995e780a1f46bca2024223233"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f22eb3a6c1080d862befa0a89c380b4dafce29dc6cd56083f630073d102eb595"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a81b1143d42b66ffc40a441379387076243ef7b51019204fd3ec36b9f69e77d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f64fd07515dad67f24b6ea4a66ae2876c01031de91c93075b8093f07c0a2d93d"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:93e22add827447d2e26d67c9ac0161756007f152fdc5210277d00a85f6c92323"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:55b39c8684a46e56ef8c8d24faf02de4a2b2ac60d26cee93bc595651ff545de9"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4715a9b778f4293b9f8ae7a0a7cef9829f02ff8d6277a39d7f40565c737d3771"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afc52b8d969eff14e069a710057d15ab9ac17cd4b6753042c407dcea0e40bf75"}, + {file = "aiohttp-3.9.5-cp311-cp311-win32.whl", hash = "sha256:b3df71da99c98534be076196791adca8819761f0bf6e08e07fd7da25127150d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:88e311d98cc0bf45b62fc46c66753a83445f5ab20038bcc1b8a1cc05666f428a"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c7a4b7a6cf5b6eb11e109a9755fd4fda7d57395f8c575e166d363b9fc3ec4678"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0a158704edf0abcac8ac371fbb54044f3270bdbc93e254a82b6c82be1ef08f3c"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d153f652a687a8e95ad367a86a61e8d53d528b0530ef382ec5aaf533140ed00f"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82a6a97d9771cb48ae16979c3a3a9a18b600a8505b1115cfe354dfb2054468b4"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60cdbd56f4cad9f69c35eaac0fbbdf1f77b0ff9456cebd4902f3dd1cf096464c"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8676e8fd73141ded15ea586de0b7cda1542960a7b9ad89b2b06428e97125d4fa"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da00da442a0e31f1c69d26d224e1efd3a1ca5bcbf210978a2ca7426dfcae9f58"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18f634d540dd099c262e9f887c8bbacc959847cfe5da7a0e2e1cf3f14dbf2daf"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:320e8618eda64e19d11bdb3bd04ccc0a816c17eaecb7e4945d01deee2a22f95f"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2faa61a904b83142747fc6a6d7ad8fccff898c849123030f8e75d5d967fd4a81"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:8c64a6dc3fe5db7b1b4d2b5cb84c4f677768bdc340611eca673afb7cf416ef5a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:393c7aba2b55559ef7ab791c94b44f7482a07bf7640d17b341b79081f5e5cd1a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c671dc117c2c21a1ca10c116cfcd6e3e44da7fcde37bf83b2be485ab377b25da"}, + {file = "aiohttp-3.9.5-cp312-cp312-win32.whl", hash = "sha256:5a7ee16aab26e76add4afc45e8f8206c95d1d75540f1039b84a03c3b3800dd59"}, + {file = "aiohttp-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:5ca51eadbd67045396bc92a4345d1790b7301c14d1848feaac1d6a6c9289e888"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:694d828b5c41255e54bc2dddb51a9f5150b4eefa9886e38b52605a05d96566e8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0605cc2c0088fcaae79f01c913a38611ad09ba68ff482402d3410bf59039bfb8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4558e5012ee03d2638c681e156461d37b7a113fe13970d438d95d10173d25f78"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbc053ac75ccc63dc3a3cc547b98c7258ec35a215a92bd9f983e0aac95d3d5b"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4109adee842b90671f1b689901b948f347325045c15f46b39797ae1bf17019de"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6ea1a5b409a85477fd8e5ee6ad8f0e40bf2844c270955e09360418cfd09abac"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3c2890ca8c59ee683fd09adf32321a40fe1cf164e3387799efb2acebf090c11"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3916c8692dbd9d55c523374a3b8213e628424d19116ac4308e434dbf6d95bbdd"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8d1964eb7617907c792ca00b341b5ec3e01ae8c280825deadbbd678447b127e1"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d5ab8e1f6bee051a4bf6195e38a5c13e5e161cb7bad83d8854524798bd9fcd6e"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:52c27110f3862a1afbcb2af4281fc9fdc40327fa286c4625dfee247c3ba90156"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:7f64cbd44443e80094309875d4f9c71d0401e966d191c3d469cde4642bc2e031"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8b4f72fbb66279624bfe83fd5eb6aea0022dad8eec62b71e7bf63ee1caadeafe"}, + {file = "aiohttp-3.9.5-cp38-cp38-win32.whl", hash = "sha256:6380c039ec52866c06d69b5c7aad5478b24ed11696f0e72f6b807cfb261453da"}, + {file = "aiohttp-3.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:da22dab31d7180f8c3ac7c7635f3bcd53808f374f6aa333fe0b0b9e14b01f91a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1732102949ff6087589408d76cd6dea656b93c896b011ecafff418c9661dc4ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c6021d296318cb6f9414b48e6a439a7f5d1f665464da507e8ff640848ee2a58a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:239f975589a944eeb1bad26b8b140a59a3a320067fb3cd10b75c3092405a1372"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b7b30258348082826d274504fbc7c849959f1989d86c29bc355107accec6cfb"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2adf5c87ff6d8b277814a28a535b59e20bfea40a101db6b3bdca7e9926bc24"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a3d838441bebcf5cf442700e3963f58b5c33f015341f9ea86dcd7d503c07e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3a1ae66e3d0c17cf65c08968a5ee3180c5a95920ec2731f53343fac9bad106"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c69e77370cce2d6df5d12b4e12bdcca60c47ba13d1cbbc8645dd005a20b738b"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf56238f4bbf49dab8c2dc2e6b1b68502b1e88d335bea59b3f5b9f4c001475"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d1469f228cd9ffddd396d9948b8c9cd8022b6d1bf1e40c6f25b0fb90b4f893ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:45731330e754f5811c314901cebdf19dd776a44b31927fa4b4dbecab9e457b0c"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3fcb4046d2904378e3aeea1df51f697b0467f2aac55d232c87ba162709478c46"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8cf142aa6c1a751fcb364158fd710b8a9be874b81889c2bd13aa8893197455e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-win32.whl", hash = "sha256:7b179eea70833c8dee51ec42f3b4097bd6370892fa93f510f76762105568cf09"}, + {file = "aiohttp-3.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:38d80498e2e169bc61418ff36170e0aad0cd268da8b38a17c4cf29d254a8b3f1"}, + {file = "aiohttp-3.9.5.tar.gz", hash = "sha256:edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551"}, ] [package.dependencies] @@ -194,13 +194,13 @@ files = [ [[package]] name = "bitsandbytes" -version = "0.43.0" +version = "0.43.1" description = "k-bit optimizers and matrix multiplication routines." optional = true python-versions = "*" files = [ - {file = "bitsandbytes-0.43.0-py3-none-manylinux_2_24_x86_64.whl", hash = "sha256:b2626ada0ae447ae0cf3dd0be8f5b0abad7abdec7056c7fb738aa13a5a862007"}, - {file = "bitsandbytes-0.43.0-py3-none-win_amd64.whl", hash = "sha256:6fa7f3255fe9f3e549fb110bc60794079761a4e608b5fb86ebe7b4047467dd99"}, + {file = "bitsandbytes-0.43.1-py3-none-manylinux_2_24_x86_64.whl", hash = "sha256:a81c826d576d6d691c7b4a7491c8fdc0f37f769795d6ca2e54afa605d2c260a3"}, + {file = "bitsandbytes-0.43.1-py3-none-win_amd64.whl", hash = "sha256:52c1c7189a6ca006555a9663e544e75f40520a97a26e075411f9f9aca0771fcd"}, ] [package.dependencies] @@ -471,13 +471,13 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.13.3" +version = "3.13.4" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.3-py3-none-any.whl", hash = "sha256:5ffa845303983e7a0b7ae17636509bc97997d58afeafa72fb141a17b152284cb"}, - {file = "filelock-3.13.3.tar.gz", hash = "sha256:a79895a25bbefdf55d1a2a0a80968f7dbb28edcd6d4234a0afb3f37ecde4b546"}, + {file = "filelock-3.13.4-py3-none-any.whl", hash = "sha256:404e5e9253aa60ad457cae1be07c0f0ca90a63931200a47d9b6a6af84fd7b45f"}, + {file = "filelock-3.13.4.tar.gz", hash = "sha256:d13f466618bfde72bd2c18255e269f72542c6e70e7bac83a0232d6b1cc5c8cf4"}, ] [package.extras] @@ -915,13 +915,13 @@ typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "t [[package]] name = "idna" -version = "3.6" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, - {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -965,13 +965,13 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "joblib" -version = "1.3.2" +version = "1.4.0" description = "Lightweight pipelining with Python functions" optional = true -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "joblib-1.3.2-py3-none-any.whl", hash = "sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9"}, - {file = "joblib-1.3.2.tar.gz", hash = "sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1"}, + {file = "joblib-1.4.0-py3-none-any.whl", hash = "sha256:42942470d4062537be4d54c83511186da1fc14ba354961a2114da91efa9a4ed7"}, + {file = "joblib-1.4.0.tar.gz", hash = "sha256:1eb0dc091919cd384490de890cb5dfd538410a6d4b3b54eef09fb8c50b409b1c"}, ] [[package]] @@ -1732,47 +1732,47 @@ files = [ [[package]] name = "pandas" -version = "2.2.1" +version = "2.2.2" description = "Powerful data structures for data analysis, time series, and statistics" optional = true python-versions = ">=3.9" files = [ - {file = "pandas-2.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8df8612be9cd1c7797c93e1c5df861b2ddda0b48b08f2c3eaa0702cf88fb5f88"}, - {file = "pandas-2.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0f573ab277252ed9aaf38240f3b54cfc90fff8e5cab70411ee1d03f5d51f3944"}, - {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f02a3a6c83df4026e55b63c1f06476c9aa3ed6af3d89b4f04ea656ccdaaaa359"}, - {file = "pandas-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c38ce92cb22a4bea4e3929429aa1067a454dcc9c335799af93ba9be21b6beb51"}, - {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c2ce852e1cf2509a69e98358e8458775f89599566ac3775e70419b98615f4b06"}, - {file = "pandas-2.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53680dc9b2519cbf609c62db3ed7c0b499077c7fefda564e330286e619ff0dd9"}, - {file = "pandas-2.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:94e714a1cca63e4f5939cdce5f29ba8d415d85166be3441165edd427dc9f6bc0"}, - {file = "pandas-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f821213d48f4ab353d20ebc24e4faf94ba40d76680642fb7ce2ea31a3ad94f9b"}, - {file = "pandas-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70e00c2d894cb230e5c15e4b1e1e6b2b478e09cf27cc593a11ef955b9ecc81a"}, - {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97fbb5387c69209f134893abc788a6486dbf2f9e511070ca05eed4b930b1b02"}, - {file = "pandas-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101d0eb9c5361aa0146f500773395a03839a5e6ecde4d4b6ced88b7e5a1a6403"}, - {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7d2ed41c319c9fb4fd454fe25372028dfa417aacb9790f68171b2e3f06eae8cd"}, - {file = "pandas-2.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5d3c00557d657c8773ef9ee702c61dd13b9d7426794c9dfeb1dc4a0bf0ebc7"}, - {file = "pandas-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:06cf591dbaefb6da9de8472535b185cba556d0ce2e6ed28e21d919704fef1a9e"}, - {file = "pandas-2.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:88ecb5c01bb9ca927ebc4098136038519aa5d66b44671861ffab754cae75102c"}, - {file = "pandas-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:04f6ec3baec203c13e3f8b139fb0f9f86cd8c0b94603ae3ae8ce9a422e9f5bee"}, - {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a935a90a76c44fe170d01e90a3594beef9e9a6220021acfb26053d01426f7dc2"}, - {file = "pandas-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c391f594aae2fd9f679d419e9a4d5ba4bce5bb13f6a989195656e7dc4b95c8f0"}, - {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9d1265545f579edf3f8f0cb6f89f234f5e44ba725a34d86535b1a1d38decbccc"}, - {file = "pandas-2.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11940e9e3056576ac3244baef2fedade891977bcc1cb7e5cc8f8cc7d603edc89"}, - {file = "pandas-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:4acf681325ee1c7f950d058b05a820441075b0dd9a2adf5c4835b9bc056bf4fb"}, - {file = "pandas-2.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9bd8a40f47080825af4317d0340c656744f2bfdb6819f818e6ba3cd24c0e1397"}, - {file = "pandas-2.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:df0c37ebd19e11d089ceba66eba59a168242fc6b7155cba4ffffa6eccdfb8f16"}, - {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739cc70eaf17d57608639e74d63387b0d8594ce02f69e7a0b046f117974b3019"}, - {file = "pandas-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9d3558d263073ed95e46f4650becff0c5e1ffe0fc3a015de3c79283dfbdb3df"}, - {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4aa1d8707812a658debf03824016bf5ea0d516afdea29b7dc14cf687bc4d4ec6"}, - {file = "pandas-2.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:76f27a809cda87e07f192f001d11adc2b930e93a2b0c4a236fde5429527423be"}, - {file = "pandas-2.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:1ba21b1d5c0e43416218db63037dbe1a01fc101dc6e6024bcad08123e48004ab"}, - {file = "pandas-2.2.1.tar.gz", hash = "sha256:0ab90f87093c13f3e8fa45b48ba9f39181046e8f3317d3aadb2fffbb1b978572"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, ] [package.dependencies] numpy = [ - {version = ">=1.22.4,<2", markers = "python_version < \"3.11\""}, - {version = ">=1.23.2,<2", markers = "python_version == \"3.11\""}, - {version = ">=1.26.0,<2", markers = "python_version >= \"3.12\""}, + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" pytz = ">=2020.1" @@ -2042,18 +2042,18 @@ files = [ [[package]] name = "pydantic" -version = "2.6.4" +version = "2.7.0" description = "Data validation using Python type hints" optional = true python-versions = ">=3.8" files = [ - {file = "pydantic-2.6.4-py3-none-any.whl", hash = "sha256:cc46fce86607580867bdc3361ad462bab9c222ef042d3da86f2fb333e1d916c5"}, - {file = "pydantic-2.6.4.tar.gz", hash = "sha256:b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"}, + {file = "pydantic-2.7.0-py3-none-any.whl", hash = "sha256:9dee74a271705f14f9a1567671d144a851c675b072736f0a7b2608fd9e495352"}, + {file = "pydantic-2.7.0.tar.gz", hash = "sha256:b5ecdd42262ca2462e2624793551e80911a1e989f462910bb81aef974b4bb383"}, ] [package.dependencies] annotated-types = ">=0.4.0" -pydantic-core = "2.16.3" +pydantic-core = "2.18.1" typing-extensions = ">=4.6.1" [package.extras] @@ -2061,90 +2061,90 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.16.3" -description = "" +version = "2.18.1" +description = "Core functionality for Pydantic validation and serialization" optional = true python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.16.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:75b81e678d1c1ede0785c7f46690621e4c6e63ccd9192af1f0bd9d504bbb6bf4"}, - {file = "pydantic_core-2.16.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9c865a7ee6f93783bd5d781af5a4c43dadc37053a5b42f7d18dc019f8c9d2bd1"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:162e498303d2b1c036b957a1278fa0899d02b2842f1ff901b6395104c5554a45"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f583bd01bbfbff4eaee0868e6fc607efdfcc2b03c1c766b06a707abbc856187"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b926dd38db1519ed3043a4de50214e0d600d404099c3392f098a7f9d75029ff8"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:716b542728d4c742353448765aa7cdaa519a7b82f9564130e2b3f6766018c9ec"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc4ad7f7ee1a13d9cb49d8198cd7d7e3aa93e425f371a68235f784e99741561f"}, - {file = "pydantic_core-2.16.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bd87f48924f360e5d1c5f770d6155ce0e7d83f7b4e10c2f9ec001c73cf475c99"}, - {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0df446663464884297c793874573549229f9eca73b59360878f382a0fc085979"}, - {file = "pydantic_core-2.16.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4df8a199d9f6afc5ae9a65f8f95ee52cae389a8c6b20163762bde0426275b7db"}, - {file = "pydantic_core-2.16.3-cp310-none-win32.whl", hash = "sha256:456855f57b413f077dff513a5a28ed838dbbb15082ba00f80750377eed23d132"}, - {file = "pydantic_core-2.16.3-cp310-none-win_amd64.whl", hash = "sha256:732da3243e1b8d3eab8c6ae23ae6a58548849d2e4a4e03a1924c8ddf71a387cb"}, - {file = "pydantic_core-2.16.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:519ae0312616026bf4cedc0fe459e982734f3ca82ee8c7246c19b650b60a5ee4"}, - {file = "pydantic_core-2.16.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b3992a322a5617ded0a9f23fd06dbc1e4bd7cf39bc4ccf344b10f80af58beacd"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d62da299c6ecb04df729e4b5c52dc0d53f4f8430b4492b93aa8de1f541c4aac"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2acca2be4bb2f2147ada8cac612f8a98fc09f41c89f87add7256ad27332c2fda"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b662180108c55dfbf1280d865b2d116633d436cfc0bba82323554873967b340"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e7c6ed0dc9d8e65f24f5824291550139fe6f37fac03788d4580da0d33bc00c97"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b1bb0827f56654b4437955555dc3aeeebeddc47c2d7ed575477f082622c49e"}, - {file = "pydantic_core-2.16.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e56f8186d6210ac7ece503193ec84104da7ceb98f68ce18c07282fcc2452e76f"}, - {file = "pydantic_core-2.16.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:936e5db01dd49476fa8f4383c259b8b1303d5dd5fb34c97de194560698cc2c5e"}, - {file = "pydantic_core-2.16.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:33809aebac276089b78db106ee692bdc9044710e26f24a9a2eaa35a0f9fa70ba"}, - {file = "pydantic_core-2.16.3-cp311-none-win32.whl", hash = "sha256:ded1c35f15c9dea16ead9bffcde9bb5c7c031bff076355dc58dcb1cb436c4721"}, - {file = "pydantic_core-2.16.3-cp311-none-win_amd64.whl", hash = "sha256:d89ca19cdd0dd5f31606a9329e309d4fcbb3df860960acec32630297d61820df"}, - {file = "pydantic_core-2.16.3-cp311-none-win_arm64.whl", hash = "sha256:6162f8d2dc27ba21027f261e4fa26f8bcb3cf9784b7f9499466a311ac284b5b9"}, - {file = "pydantic_core-2.16.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:0f56ae86b60ea987ae8bcd6654a887238fd53d1384f9b222ac457070b7ac4cff"}, - {file = "pydantic_core-2.16.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9bd22a2a639e26171068f8ebb5400ce2c1bc7d17959f60a3b753ae13c632975"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4204e773b4b408062960e65468d5346bdfe139247ee5f1ca2a378983e11388a2"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f651dd19363c632f4abe3480a7c87a9773be27cfe1341aef06e8759599454120"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aaf09e615a0bf98d406657e0008e4a8701b11481840be7d31755dc9f97c44053"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8e47755d8152c1ab5b55928ab422a76e2e7b22b5ed8e90a7d584268dd49e9c6b"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:500960cb3a0543a724a81ba859da816e8cf01b0e6aaeedf2c3775d12ee49cade"}, - {file = "pydantic_core-2.16.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf6204fe865da605285c34cf1172879d0314ff267b1c35ff59de7154f35fdc2e"}, - {file = "pydantic_core-2.16.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d33dd21f572545649f90c38c227cc8631268ba25c460b5569abebdd0ec5974ca"}, - {file = "pydantic_core-2.16.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:49d5d58abd4b83fb8ce763be7794d09b2f50f10aa65c0f0c1696c677edeb7cbf"}, - {file = "pydantic_core-2.16.3-cp312-none-win32.whl", hash = "sha256:f53aace168a2a10582e570b7736cc5bef12cae9cf21775e3eafac597e8551fbe"}, - {file = "pydantic_core-2.16.3-cp312-none-win_amd64.whl", hash = "sha256:0d32576b1de5a30d9a97f300cc6a3f4694c428d956adbc7e6e2f9cad279e45ed"}, - {file = "pydantic_core-2.16.3-cp312-none-win_arm64.whl", hash = "sha256:ec08be75bb268473677edb83ba71e7e74b43c008e4a7b1907c6d57e940bf34b6"}, - {file = "pydantic_core-2.16.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:b1f6f5938d63c6139860f044e2538baeee6f0b251a1816e7adb6cbce106a1f01"}, - {file = "pydantic_core-2.16.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2a1ef6a36fdbf71538142ed604ad19b82f67b05749512e47f247a6ddd06afdc7"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:704d35ecc7e9c31d48926150afada60401c55efa3b46cd1ded5a01bdffaf1d48"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d937653a696465677ed583124b94a4b2d79f5e30b2c46115a68e482c6a591c8a"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9803edf8e29bd825f43481f19c37f50d2b01899448273b3a7758441b512acf8"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:72282ad4892a9fb2da25defeac8c2e84352c108705c972db82ab121d15f14e6d"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f752826b5b8361193df55afcdf8ca6a57d0232653494ba473630a83ba50d8c9"}, - {file = "pydantic_core-2.16.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4384a8f68ddb31a0b0c3deae88765f5868a1b9148939c3f4121233314ad5532c"}, - {file = "pydantic_core-2.16.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:a4b2bf78342c40b3dc830880106f54328928ff03e357935ad26c7128bbd66ce8"}, - {file = "pydantic_core-2.16.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:13dcc4802961b5f843a9385fc821a0b0135e8c07fc3d9949fd49627c1a5e6ae5"}, - {file = "pydantic_core-2.16.3-cp38-none-win32.whl", hash = "sha256:e3e70c94a0c3841e6aa831edab1619ad5c511199be94d0c11ba75fe06efe107a"}, - {file = "pydantic_core-2.16.3-cp38-none-win_amd64.whl", hash = "sha256:ecdf6bf5f578615f2e985a5e1f6572e23aa632c4bd1dc67f8f406d445ac115ed"}, - {file = "pydantic_core-2.16.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:bda1ee3e08252b8d41fa5537413ffdddd58fa73107171a126d3b9ff001b9b820"}, - {file = "pydantic_core-2.16.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:21b888c973e4f26b7a96491c0965a8a312e13be108022ee510248fe379a5fa23"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be0ec334369316fa73448cc8c982c01e5d2a81c95969d58b8f6e272884df0074"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5b6079cc452a7c53dd378c6f881ac528246b3ac9aae0f8eef98498a75657805"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ee8d5f878dccb6d499ba4d30d757111847b6849ae07acdd1205fffa1fc1253c"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7233d65d9d651242a68801159763d09e9ec96e8a158dbf118dc090cd77a104c9"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6119dc90483a5cb50a1306adb8d52c66e447da88ea44f323e0ae1a5fcb14256"}, - {file = "pydantic_core-2.16.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:578114bc803a4c1ff9946d977c221e4376620a46cf78da267d946397dc9514a8"}, - {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d8f99b147ff3fcf6b3cc60cb0c39ea443884d5559a30b1481e92495f2310ff2b"}, - {file = "pydantic_core-2.16.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4ac6b4ce1e7283d715c4b729d8f9dab9627586dafce81d9eaa009dd7f25dd972"}, - {file = "pydantic_core-2.16.3-cp39-none-win32.whl", hash = "sha256:e7774b570e61cb998490c5235740d475413a1f6de823169b4cf94e2fe9e9f6b2"}, - {file = "pydantic_core-2.16.3-cp39-none-win_amd64.whl", hash = "sha256:9091632a25b8b87b9a605ec0e61f241c456e9248bfdcf7abdf344fdb169c81cf"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:36fa178aacbc277bc6b62a2c3da95226520da4f4e9e206fdf076484363895d2c"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:dcca5d2bf65c6fb591fff92da03f94cd4f315972f97c21975398bd4bd046854a"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a72fb9963cba4cd5793854fd12f4cfee731e86df140f59ff52a49b3552db241"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b60cc1a081f80a2105a59385b92d82278b15d80ebb3adb200542ae165cd7d183"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cbcc558401de90a746d02ef330c528f2e668c83350f045833543cd57ecead1ad"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:fee427241c2d9fb7192b658190f9f5fd6dfe41e02f3c1489d2ec1e6a5ab1e04a"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f4cb85f693044e0f71f394ff76c98ddc1bc0953e48c061725e540396d5c8a2e1"}, - {file = "pydantic_core-2.16.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:b29eeb887aa931c2fcef5aa515d9d176d25006794610c264ddc114c053bf96fe"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a425479ee40ff021f8216c9d07a6a3b54b31c8267c6e17aa88b70d7ebd0e5e5b"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5c5cbc703168d1b7a838668998308018a2718c2130595e8e190220238addc96f"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99b6add4c0b39a513d323d3b93bc173dac663c27b99860dd5bf491b240d26137"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f76ee558751746d6a38f89d60b6228fa174e5172d143886af0f85aa306fd89"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:00ee1c97b5364b84cb0bd82e9bbf645d5e2871fb8c58059d158412fee2d33d8a"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:287073c66748f624be4cef893ef9174e3eb88fe0b8a78dc22e88eca4bc357ca6"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ed25e1835c00a332cb10c683cd39da96a719ab1dfc08427d476bce41b92531fc"}, - {file = "pydantic_core-2.16.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:86b3d0033580bd6bbe07590152007275bd7af95f98eaa5bd36f3da219dcd93da"}, - {file = "pydantic_core-2.16.3.tar.gz", hash = "sha256:1cac689f80a3abab2d3c0048b29eea5751114054f032a941a32de4c852c59cad"}, + {file = "pydantic_core-2.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ee9cf33e7fe14243f5ca6977658eb7d1042caaa66847daacbd2117adb258b226"}, + {file = "pydantic_core-2.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b7bbb97d82659ac8b37450c60ff2e9f97e4eb0f8a8a3645a5568b9334b08b50"}, + {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df4249b579e75094f7e9bb4bd28231acf55e308bf686b952f43100a5a0be394c"}, + {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d0491006a6ad20507aec2be72e7831a42efc93193d2402018007ff827dc62926"}, + {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ae80f72bb7a3e397ab37b53a2b49c62cc5496412e71bc4f1277620a7ce3f52b"}, + {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58aca931bef83217fca7a390e0486ae327c4af9c3e941adb75f8772f8eeb03a1"}, + {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1be91ad664fc9245404a789d60cba1e91c26b1454ba136d2a1bf0c2ac0c0505a"}, + {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:667880321e916a8920ef49f5d50e7983792cf59f3b6079f3c9dac2b88a311d17"}, + {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f7054fdc556f5421f01e39cbb767d5ec5c1139ea98c3e5b350e02e62201740c7"}, + {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:030e4f9516f9947f38179249778709a460a3adb516bf39b5eb9066fcfe43d0e6"}, + {file = "pydantic_core-2.18.1-cp310-none-win32.whl", hash = "sha256:2e91711e36e229978d92642bfc3546333a9127ecebb3f2761372e096395fc649"}, + {file = "pydantic_core-2.18.1-cp310-none-win_amd64.whl", hash = "sha256:9a29726f91c6cb390b3c2338f0df5cd3e216ad7a938762d11c994bb37552edb0"}, + {file = "pydantic_core-2.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ece8a49696669d483d206b4474c367852c44815fca23ac4e48b72b339807f80"}, + {file = "pydantic_core-2.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a5d83efc109ceddb99abd2c1316298ced2adb4570410defe766851a804fcd5b"}, + {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7973c381283783cd1043a8c8f61ea5ce7a3a58b0369f0ee0ee975eaf2f2a1b"}, + {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:54c7375c62190a7845091f521add19b0f026bcf6ae674bdb89f296972272e86d"}, + {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd63cec4e26e790b70544ae5cc48d11b515b09e05fdd5eff12e3195f54b8a586"}, + {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:561cf62c8a3498406495cfc49eee086ed2bb186d08bcc65812b75fda42c38294"}, + {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68717c38a68e37af87c4da20e08f3e27d7e4212e99e96c3d875fbf3f4812abfc"}, + {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d5728e93d28a3c63ee513d9ffbac9c5989de8c76e049dbcb5bfe4b923a9739d"}, + {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f0f17814c505f07806e22b28856c59ac80cee7dd0fbb152aed273e116378f519"}, + {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d816f44a51ba5175394bc6c7879ca0bd2be560b2c9e9f3411ef3a4cbe644c2e9"}, + {file = "pydantic_core-2.18.1-cp311-none-win32.whl", hash = "sha256:09f03dfc0ef8c22622eaa8608caa4a1e189cfb83ce847045eca34f690895eccb"}, + {file = "pydantic_core-2.18.1-cp311-none-win_amd64.whl", hash = "sha256:27f1009dc292f3b7ca77feb3571c537276b9aad5dd4efb471ac88a8bd09024e9"}, + {file = "pydantic_core-2.18.1-cp311-none-win_arm64.whl", hash = "sha256:48dd883db92e92519201f2b01cafa881e5f7125666141a49ffba8b9facc072b0"}, + {file = "pydantic_core-2.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b6b0e4912030c6f28bcb72b9ebe4989d6dc2eebcd2a9cdc35fefc38052dd4fe8"}, + {file = "pydantic_core-2.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3202a429fe825b699c57892d4371c74cc3456d8d71b7f35d6028c96dfecad31"}, + {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3982b0a32d0a88b3907e4b0dc36809fda477f0757c59a505d4e9b455f384b8b"}, + {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25595ac311f20e5324d1941909b0d12933f1fd2171075fcff763e90f43e92a0d"}, + {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14fe73881cf8e4cbdaded8ca0aa671635b597e42447fec7060d0868b52d074e6"}, + {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca976884ce34070799e4dfc6fbd68cb1d181db1eefe4a3a94798ddfb34b8867f"}, + {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684d840d2c9ec5de9cb397fcb3f36d5ebb6fa0d94734f9886032dd796c1ead06"}, + {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:54764c083bbe0264f0f746cefcded6cb08fbbaaf1ad1d78fb8a4c30cff999a90"}, + {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:201713f2f462e5c015b343e86e68bd8a530a4f76609b33d8f0ec65d2b921712a"}, + {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fd1a9edb9dd9d79fbeac1ea1f9a8dd527a6113b18d2e9bcc0d541d308dae639b"}, + {file = "pydantic_core-2.18.1-cp312-none-win32.whl", hash = "sha256:d5e6b7155b8197b329dc787356cfd2684c9d6a6b1a197f6bbf45f5555a98d411"}, + {file = "pydantic_core-2.18.1-cp312-none-win_amd64.whl", hash = "sha256:9376d83d686ec62e8b19c0ac3bf8d28d8a5981d0df290196fb6ef24d8a26f0d6"}, + {file = "pydantic_core-2.18.1-cp312-none-win_arm64.whl", hash = "sha256:c562b49c96906b4029b5685075fe1ebd3b5cc2601dfa0b9e16c2c09d6cbce048"}, + {file = "pydantic_core-2.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3e352f0191d99fe617371096845070dee295444979efb8f27ad941227de6ad09"}, + {file = "pydantic_core-2.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0295d52b012cbe0d3059b1dba99159c3be55e632aae1999ab74ae2bd86a33d7"}, + {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56823a92075780582d1ffd4489a2e61d56fd3ebb4b40b713d63f96dd92d28144"}, + {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dd3f79e17b56741b5177bcc36307750d50ea0698df6aa82f69c7db32d968c1c2"}, + {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38a5024de321d672a132b1834a66eeb7931959c59964b777e8f32dbe9523f6b1"}, + {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ce426ee691319d4767748c8e0895cfc56593d725594e415f274059bcf3cb76"}, + {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2adaeea59849ec0939af5c5d476935f2bab4b7f0335b0110f0f069a41024278e"}, + {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9b6431559676a1079eac0f52d6d0721fb8e3c5ba43c37bc537c8c83724031feb"}, + {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:85233abb44bc18d16e72dc05bf13848a36f363f83757541f1a97db2f8d58cfd9"}, + {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:641a018af4fe48be57a2b3d7a1f0f5dbca07c1d00951d3d7463f0ac9dac66622"}, + {file = "pydantic_core-2.18.1-cp38-none-win32.whl", hash = "sha256:63d7523cd95d2fde0d28dc42968ac731b5bb1e516cc56b93a50ab293f4daeaad"}, + {file = "pydantic_core-2.18.1-cp38-none-win_amd64.whl", hash = "sha256:907a4d7720abfcb1c81619863efd47c8a85d26a257a2dbebdb87c3b847df0278"}, + {file = "pydantic_core-2.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:aad17e462f42ddbef5984d70c40bfc4146c322a2da79715932cd8976317054de"}, + {file = "pydantic_core-2.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:94b9769ba435b598b547c762184bcfc4783d0d4c7771b04a3b45775c3589ca44"}, + {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80e0e57cc704a52fb1b48f16d5b2c8818da087dbee6f98d9bf19546930dc64b5"}, + {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:76b86e24039c35280ceee6dce7e62945eb93a5175d43689ba98360ab31eebc4a"}, + {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a05db5013ec0ca4a32cc6433f53faa2a014ec364031408540ba858c2172bb0"}, + {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:250ae39445cb5475e483a36b1061af1bc233de3e9ad0f4f76a71b66231b07f88"}, + {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a32204489259786a923e02990249c65b0f17235073149d0033efcebe80095570"}, + {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6395a4435fa26519fd96fdccb77e9d00ddae9dd6c742309bd0b5610609ad7fb2"}, + {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2533ad2883f001efa72f3d0e733fb846710c3af6dcdd544fe5bf14fa5fe2d7db"}, + {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b560b72ed4816aee52783c66854d96157fd8175631f01ef58e894cc57c84f0f6"}, + {file = "pydantic_core-2.18.1-cp39-none-win32.whl", hash = "sha256:582cf2cead97c9e382a7f4d3b744cf0ef1a6e815e44d3aa81af3ad98762f5a9b"}, + {file = "pydantic_core-2.18.1-cp39-none-win_amd64.whl", hash = "sha256:ca71d501629d1fa50ea7fa3b08ba884fe10cefc559f5c6c8dfe9036c16e8ae89"}, + {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e178e5b66a06ec5bf51668ec0d4ac8cfb2bdcb553b2c207d58148340efd00143"}, + {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:72722ce529a76a4637a60be18bd789d8fb871e84472490ed7ddff62d5fed620d"}, + {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fe0c1ce5b129455e43f941f7a46f61f3d3861e571f2905d55cdbb8b5c6f5e2c"}, + {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4284c621f06a72ce2cb55f74ea3150113d926a6eb78ab38340c08f770eb9b4d"}, + {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a0c3e718f4e064efde68092d9d974e39572c14e56726ecfaeebbe6544521f47"}, + {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2027493cc44c23b598cfaf200936110433d9caa84e2c6cf487a83999638a96ac"}, + {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:76909849d1a6bffa5a07742294f3fa1d357dc917cb1fe7b470afbc3a7579d539"}, + {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ee7ccc7fb7e921d767f853b47814c3048c7de536663e82fbc37f5eb0d532224b"}, + {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee2794111c188548a4547eccc73a6a8527fe2af6cf25e1a4ebda2fd01cdd2e60"}, + {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a139fe9f298dc097349fb4f28c8b81cc7a202dbfba66af0e14be5cfca4ef7ce5"}, + {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d074b07a10c391fc5bbdcb37b2f16f20fcd9e51e10d01652ab298c0d07908ee2"}, + {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c69567ddbac186e8c0aadc1f324a60a564cfe25e43ef2ce81bcc4b8c3abffbae"}, + {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:baf1c7b78cddb5af00971ad5294a4583188bda1495b13760d9f03c9483bb6203"}, + {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2684a94fdfd1b146ff10689c6e4e815f6a01141781c493b97342cdc5b06f4d5d"}, + {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:73c1bc8a86a5c9e8721a088df234265317692d0b5cd9e86e975ce3bc3db62a59"}, + {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e60defc3c15defb70bb38dd605ff7e0fae5f6c9c7cbfe0ad7868582cb7e844a6"}, + {file = "pydantic_core-2.18.1.tar.gz", hash = "sha256:de9d3e8717560eb05e28739d1b35e4eac2e458553a52a301e51352a7ffc86a35"}, ] [package.dependencies] @@ -2222,7 +2222,6 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -2274,104 +2273,104 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2023.12.25" +version = "2024.4.16" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.7" files = [ - {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5"}, - {file = "regex-2023.12.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8"}, - {file = "regex-2023.12.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586"}, - {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c"}, - {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400"}, - {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e"}, - {file = "regex-2023.12.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4"}, - {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5"}, - {file = "regex-2023.12.25-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd"}, - {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704"}, - {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1"}, - {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392"}, - {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423"}, - {file = "regex-2023.12.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f"}, - {file = "regex-2023.12.25-cp310-cp310-win32.whl", hash = "sha256:150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630"}, - {file = "regex-2023.12.25-cp310-cp310-win_amd64.whl", hash = "sha256:09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105"}, - {file = "regex-2023.12.25-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1b9d811f72210fa9306aeb88385b8f8bcef0dfbf3873410413c00aa94c56c2b6"}, - {file = "regex-2023.12.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d902a43085a308cef32c0d3aea962524b725403fd9373dea18110904003bac97"}, - {file = "regex-2023.12.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d166eafc19f4718df38887b2bbe1467a4f74a9830e8605089ea7a30dd4da8887"}, - {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7ad32824b7f02bb3c9f80306d405a1d9b7bb89362d68b3c5a9be53836caebdb"}, - {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:636ba0a77de609d6510235b7f0e77ec494d2657108f777e8765efc060094c98c"}, - {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fda75704357805eb953a3ee15a2b240694a9a514548cd49b3c5124b4e2ad01b"}, - {file = "regex-2023.12.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f72cbae7f6b01591f90814250e636065850c5926751af02bb48da94dfced7baa"}, - {file = "regex-2023.12.25-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db2a0b1857f18b11e3b0e54ddfefc96af46b0896fb678c85f63fb8c37518b3e7"}, - {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7502534e55c7c36c0978c91ba6f61703faf7ce733715ca48f499d3dbbd7657e0"}, - {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e8c7e08bb566de4faaf11984af13f6bcf6a08f327b13631d41d62592681d24fe"}, - {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:283fc8eed679758de38fe493b7d7d84a198b558942b03f017b1f94dda8efae80"}, - {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f44dd4d68697559d007462b0a3a1d9acd61d97072b71f6d1968daef26bc744bd"}, - {file = "regex-2023.12.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:67d3ccfc590e5e7197750fcb3a2915b416a53e2de847a728cfa60141054123d4"}, - {file = "regex-2023.12.25-cp311-cp311-win32.whl", hash = "sha256:68191f80a9bad283432385961d9efe09d783bcd36ed35a60fb1ff3f1ec2efe87"}, - {file = "regex-2023.12.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d2af3f6b8419661a0c421584cfe8aaec1c0e435ce7e47ee2a97e344b98f794f"}, - {file = "regex-2023.12.25-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8a0ccf52bb37d1a700375a6b395bff5dd15c50acb745f7db30415bae3c2b0715"}, - {file = "regex-2023.12.25-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c3c4a78615b7762740531c27cf46e2f388d8d727d0c0c739e72048beb26c8a9d"}, - {file = "regex-2023.12.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ad83e7545b4ab69216cef4cc47e344d19622e28aabec61574b20257c65466d6a"}, - {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7a635871143661feccce3979e1727c4e094f2bdfd3ec4b90dfd4f16f571a87a"}, - {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d498eea3f581fbe1b34b59c697512a8baef88212f92e4c7830fcc1499f5b45a5"}, - {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:43f7cd5754d02a56ae4ebb91b33461dc67be8e3e0153f593c509e21d219c5060"}, - {file = "regex-2023.12.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51f4b32f793812714fd5307222a7f77e739b9bc566dc94a18126aba3b92b98a3"}, - {file = "regex-2023.12.25-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba99d8077424501b9616b43a2d208095746fb1284fc5ba490139651f971d39d9"}, - {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4bfc2b16e3ba8850e0e262467275dd4d62f0d045e0e9eda2bc65078c0110a11f"}, - {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8c2c19dae8a3eb0ea45a8448356ed561be843b13cbc34b840922ddf565498c1c"}, - {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:60080bb3d8617d96f0fb7e19796384cc2467447ef1c491694850ebd3670bc457"}, - {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b77e27b79448e34c2c51c09836033056a0547aa360c45eeeb67803da7b0eedaf"}, - {file = "regex-2023.12.25-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:518440c991f514331f4850a63560321f833979d145d7d81186dbe2f19e27ae3d"}, - {file = "regex-2023.12.25-cp312-cp312-win32.whl", hash = "sha256:e2610e9406d3b0073636a3a2e80db05a02f0c3169b5632022b4e81c0364bcda5"}, - {file = "regex-2023.12.25-cp312-cp312-win_amd64.whl", hash = "sha256:cc37b9aeebab425f11f27e5e9e6cf580be7206c6582a64467a14dda211abc232"}, - {file = "regex-2023.12.25-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:da695d75ac97cb1cd725adac136d25ca687da4536154cdc2815f576e4da11c69"}, - {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d126361607b33c4eb7b36debc173bf25d7805847346dd4d99b5499e1fef52bc7"}, - {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4719bb05094d7d8563a450cf8738d2e1061420f79cfcc1fa7f0a44744c4d8f73"}, - {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5dd58946bce44b53b06d94aa95560d0b243eb2fe64227cba50017a8d8b3cd3e2"}, - {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22a86d9fff2009302c440b9d799ef2fe322416d2d58fc124b926aa89365ec482"}, - {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2aae8101919e8aa05ecfe6322b278f41ce2994c4a430303c4cd163fef746e04f"}, - {file = "regex-2023.12.25-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e692296c4cc2873967771345a876bcfc1c547e8dd695c6b89342488b0ea55cd8"}, - {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:263ef5cc10979837f243950637fffb06e8daed7f1ac1e39d5910fd29929e489a"}, - {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d6f7e255e5fa94642a0724e35406e6cb7001c09d476ab5fce002f652b36d0c39"}, - {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:88ad44e220e22b63b0f8f81f007e8abbb92874d8ced66f32571ef8beb0643b2b"}, - {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:3a17d3ede18f9cedcbe23d2daa8a2cd6f59fe2bf082c567e43083bba3fb00347"}, - {file = "regex-2023.12.25-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d15b274f9e15b1a0b7a45d2ac86d1f634d983ca40d6b886721626c47a400bf39"}, - {file = "regex-2023.12.25-cp37-cp37m-win32.whl", hash = "sha256:ed19b3a05ae0c97dd8f75a5d8f21f7723a8c33bbc555da6bbe1f96c470139d3c"}, - {file = "regex-2023.12.25-cp37-cp37m-win_amd64.whl", hash = "sha256:a6d1047952c0b8104a1d371f88f4ab62e6275567d4458c1e26e9627ad489b445"}, - {file = "regex-2023.12.25-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b43523d7bc2abd757119dbfb38af91b5735eea45537ec6ec3a5ec3f9562a1c53"}, - {file = "regex-2023.12.25-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:efb2d82f33b2212898f1659fb1c2e9ac30493ac41e4d53123da374c3b5541e64"}, - {file = "regex-2023.12.25-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b7fca9205b59c1a3d5031f7e64ed627a1074730a51c2a80e97653e3e9fa0d415"}, - {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086dd15e9435b393ae06f96ab69ab2d333f5d65cbe65ca5a3ef0ec9564dfe770"}, - {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e81469f7d01efed9b53740aedd26085f20d49da65f9c1f41e822a33992cb1590"}, - {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34e4af5b27232f68042aa40a91c3b9bb4da0eeb31b7632e0091afc4310afe6cb"}, - {file = "regex-2023.12.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9852b76ab558e45b20bf1893b59af64a28bd3820b0c2efc80e0a70a4a3ea51c1"}, - {file = "regex-2023.12.25-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff100b203092af77d1a5a7abe085b3506b7eaaf9abf65b73b7d6905b6cb76988"}, - {file = "regex-2023.12.25-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cc038b2d8b1470364b1888a98fd22d616fba2b6309c5b5f181ad4483e0017861"}, - {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:094ba386bb5c01e54e14434d4caabf6583334090865b23ef58e0424a6286d3dc"}, - {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5cd05d0f57846d8ba4b71d9c00f6f37d6b97d5e5ef8b3c3840426a475c8f70f4"}, - {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:9aa1a67bbf0f957bbe096375887b2505f5d8ae16bf04488e8b0f334c36e31360"}, - {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:98a2636994f943b871786c9e82bfe7883ecdaba2ef5df54e1450fa9869d1f756"}, - {file = "regex-2023.12.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:37f8e93a81fc5e5bd8db7e10e62dc64261bcd88f8d7e6640aaebe9bc180d9ce2"}, - {file = "regex-2023.12.25-cp38-cp38-win32.whl", hash = "sha256:d78bd484930c1da2b9679290a41cdb25cc127d783768a0369d6b449e72f88beb"}, - {file = "regex-2023.12.25-cp38-cp38-win_amd64.whl", hash = "sha256:b521dcecebc5b978b447f0f69b5b7f3840eac454862270406a39837ffae4e697"}, - {file = "regex-2023.12.25-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f7bc09bc9c29ebead055bcba136a67378f03d66bf359e87d0f7c759d6d4ffa31"}, - {file = "regex-2023.12.25-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e14b73607d6231f3cc4622809c196b540a6a44e903bcfad940779c80dffa7be7"}, - {file = "regex-2023.12.25-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9eda5f7a50141291beda3edd00abc2d4a5b16c29c92daf8d5bd76934150f3edc"}, - {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc6bb9aa69aacf0f6032c307da718f61a40cf970849e471254e0e91c56ffca95"}, - {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:298dc6354d414bc921581be85695d18912bea163a8b23cac9a2562bbcd5088b1"}, - {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2f4e475a80ecbd15896a976aa0b386c5525d0ed34d5c600b6d3ebac0a67c7ddf"}, - {file = "regex-2023.12.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:531ac6cf22b53e0696f8e1d56ce2396311254eb806111ddd3922c9d937151dae"}, - {file = "regex-2023.12.25-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22f3470f7524b6da61e2020672df2f3063676aff444db1daa283c2ea4ed259d6"}, - {file = "regex-2023.12.25-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:89723d2112697feaa320c9d351e5f5e7b841e83f8b143dba8e2d2b5f04e10923"}, - {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0ecf44ddf9171cd7566ef1768047f6e66975788258b1c6c6ca78098b95cf9a3d"}, - {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:905466ad1702ed4acfd67a902af50b8db1feeb9781436372261808df7a2a7bca"}, - {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:4558410b7a5607a645e9804a3e9dd509af12fb72b9825b13791a37cd417d73a5"}, - {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7e316026cc1095f2a3e8cc012822c99f413b702eaa2ca5408a513609488cb62f"}, - {file = "regex-2023.12.25-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3b1de218d5375cd6ac4b5493e0b9f3df2be331e86520f23382f216c137913d20"}, - {file = "regex-2023.12.25-cp39-cp39-win32.whl", hash = "sha256:11a963f8e25ab5c61348d090bf1b07f1953929c13bd2309a0662e9ff680763c9"}, - {file = "regex-2023.12.25-cp39-cp39-win_amd64.whl", hash = "sha256:e693e233ac92ba83a87024e1d32b5f9ab15ca55ddd916d878146f4e3406b5c91"}, - {file = "regex-2023.12.25.tar.gz", hash = "sha256:29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5"}, + {file = "regex-2024.4.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb83cc090eac63c006871fd24db5e30a1f282faa46328572661c0a24a2323a08"}, + {file = "regex-2024.4.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8c91e1763696c0eb66340c4df98623c2d4e77d0746b8f8f2bee2c6883fd1fe18"}, + {file = "regex-2024.4.16-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:10188fe732dec829c7acca7422cdd1bf57d853c7199d5a9e96bb4d40db239c73"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:956b58d692f235cfbf5b4f3abd6d99bf102f161ccfe20d2fd0904f51c72c4c66"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a70b51f55fd954d1f194271695821dd62054d949efd6368d8be64edd37f55c86"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c02fcd2bf45162280613d2e4a1ca3ac558ff921ae4e308ecb307650d3a6ee51"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4ed75ea6892a56896d78f11006161eea52c45a14994794bcfa1654430984b22"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd727ad276bb91928879f3aa6396c9a1d34e5e180dce40578421a691eeb77f47"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7cbc5d9e8a1781e7be17da67b92580d6ce4dcef5819c1b1b89f49d9678cc278c"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:78fddb22b9ef810b63ef341c9fcf6455232d97cfe03938cbc29e2672c436670e"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:445ca8d3c5a01309633a0c9db57150312a181146315693273e35d936472df912"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:95399831a206211d6bc40224af1c635cb8790ddd5c7493e0bd03b85711076a53"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7731728b6568fc286d86745f27f07266de49603a6fdc4d19c87e8c247be452af"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4facc913e10bdba42ec0aee76d029aedda628161a7ce4116b16680a0413f658a"}, + {file = "regex-2024.4.16-cp310-cp310-win32.whl", hash = "sha256:911742856ce98d879acbea33fcc03c1d8dc1106234c5e7d068932c945db209c0"}, + {file = "regex-2024.4.16-cp310-cp310-win_amd64.whl", hash = "sha256:e0a2df336d1135a0b3a67f3bbf78a75f69562c1199ed9935372b82215cddd6e2"}, + {file = "regex-2024.4.16-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1210365faba7c2150451eb78ec5687871c796b0f1fa701bfd2a4a25420482d26"}, + {file = "regex-2024.4.16-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9ab40412f8cd6f615bfedea40c8bf0407d41bf83b96f6fc9ff34976d6b7037fd"}, + {file = "regex-2024.4.16-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fd80d1280d473500d8086d104962a82d77bfbf2b118053824b7be28cd5a79ea5"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bb966fdd9217e53abf824f437a5a2d643a38d4fd5fd0ca711b9da683d452969"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:20b7a68444f536365af42a75ccecb7ab41a896a04acf58432db9e206f4e525d6"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b74586dd0b039c62416034f811d7ee62810174bb70dffcca6439f5236249eb09"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8290b44d8b0af4e77048646c10c6e3aa583c1ca67f3b5ffb6e06cf0c6f0f89"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2d80a6749724b37853ece57988b39c4e79d2b5fe2869a86e8aeae3bbeef9eb0"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3a1018e97aeb24e4f939afcd88211ace472ba566efc5bdf53fd8fd7f41fa7170"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8d015604ee6204e76569d2f44e5a210728fa917115bef0d102f4107e622b08d5"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:3d5ac5234fb5053850d79dd8eb1015cb0d7d9ed951fa37aa9e6249a19aa4f336"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:0a38d151e2cdd66d16dab550c22f9521ba79761423b87c01dae0a6e9add79c0d"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:159dc4e59a159cb8e4e8f8961eb1fa5d58f93cb1acd1701d8aff38d45e1a84a6"}, + {file = "regex-2024.4.16-cp311-cp311-win32.whl", hash = "sha256:ba2336d6548dee3117520545cfe44dc28a250aa091f8281d28804aa8d707d93d"}, + {file = "regex-2024.4.16-cp311-cp311-win_amd64.whl", hash = "sha256:8f83b6fd3dc3ba94d2b22717f9c8b8512354fd95221ac661784df2769ea9bba9"}, + {file = "regex-2024.4.16-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:80b696e8972b81edf0af2a259e1b2a4a661f818fae22e5fa4fa1a995fb4a40fd"}, + {file = "regex-2024.4.16-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d61ae114d2a2311f61d90c2ef1358518e8f05eafda76eaf9c772a077e0b465ec"}, + {file = "regex-2024.4.16-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ba6745440b9a27336443b0c285d705ce73adb9ec90e2f2004c64d95ab5a7598"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6295004b2dd37b0835ea5c14a33e00e8cfa3c4add4d587b77287825f3418d310"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4aba818dcc7263852aabb172ec27b71d2abca02a593b95fa79351b2774eb1d2b"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0800631e565c47520aaa04ae38b96abc5196fe8b4aa9bd864445bd2b5848a7a"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08dea89f859c3df48a440dbdcd7b7155bc675f2fa2ec8c521d02dc69e877db70"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eeaa0b5328b785abc344acc6241cffde50dc394a0644a968add75fcefe15b9d4"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4e819a806420bc010489f4e741b3036071aba209f2e0989d4750b08b12a9343f"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:c2d0e7cbb6341e830adcbfa2479fdeebbfbb328f11edd6b5675674e7a1e37730"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:91797b98f5e34b6a49f54be33f72e2fb658018ae532be2f79f7c63b4ae225145"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:d2da13568eff02b30fd54fccd1e042a70fe920d816616fda4bf54ec705668d81"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:370c68dc5570b394cbaadff50e64d705f64debed30573e5c313c360689b6aadc"}, + {file = "regex-2024.4.16-cp312-cp312-win32.whl", hash = "sha256:904c883cf10a975b02ab3478bce652f0f5346a2c28d0a8521d97bb23c323cc8b"}, + {file = "regex-2024.4.16-cp312-cp312-win_amd64.whl", hash = "sha256:785c071c982dce54d44ea0b79cd6dfafddeccdd98cfa5f7b86ef69b381b457d9"}, + {file = "regex-2024.4.16-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e2f142b45c6fed48166faeb4303b4b58c9fcd827da63f4cf0a123c3480ae11fb"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e87ab229332ceb127a165612d839ab87795972102cb9830e5f12b8c9a5c1b508"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81500ed5af2090b4a9157a59dbc89873a25c33db1bb9a8cf123837dcc9765047"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b340cccad138ecb363324aa26893963dcabb02bb25e440ebdf42e30963f1a4e0"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c72608e70f053643437bd2be0608f7f1c46d4022e4104d76826f0839199347a"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a01fe2305e6232ef3e8f40bfc0f0f3a04def9aab514910fa4203bafbc0bb4682"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:03576e3a423d19dda13e55598f0fd507b5d660d42c51b02df4e0d97824fdcae3"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:549c3584993772e25f02d0656ac48abdda73169fe347263948cf2b1cead622f3"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:34422d5a69a60b7e9a07a690094e824b66f5ddc662a5fc600d65b7c174a05f04"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:5f580c651a72b75c39e311343fe6875d6f58cf51c471a97f15a938d9fe4e0d37"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:3399dd8a7495bbb2bacd59b84840eef9057826c664472e86c91d675d007137f5"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8d1f86f3f4e2388aa3310b50694ac44daefbd1681def26b4519bd050a398dc5a"}, + {file = "regex-2024.4.16-cp37-cp37m-win32.whl", hash = "sha256:dd5acc0a7d38fdc7a3a6fd3ad14c880819008ecb3379626e56b163165162cc46"}, + {file = "regex-2024.4.16-cp37-cp37m-win_amd64.whl", hash = "sha256:ba8122e3bb94ecda29a8de4cf889f600171424ea586847aa92c334772d200331"}, + {file = "regex-2024.4.16-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:743deffdf3b3481da32e8a96887e2aa945ec6685af1cfe2bcc292638c9ba2f48"}, + {file = "regex-2024.4.16-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7571f19f4a3fd00af9341c7801d1ad1967fc9c3f5e62402683047e7166b9f2b4"}, + {file = "regex-2024.4.16-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:df79012ebf6f4efb8d307b1328226aef24ca446b3ff8d0e30202d7ebcb977a8c"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e757d475953269fbf4b441207bb7dbdd1c43180711b6208e129b637792ac0b93"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4313ab9bf6a81206c8ac28fdfcddc0435299dc88cad12cc6305fd0e78b81f9e4"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d83c2bc678453646f1a18f8db1e927a2d3f4935031b9ad8a76e56760461105dd"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9df1bfef97db938469ef0a7354b2d591a2d438bc497b2c489471bec0e6baf7c4"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62120ed0de69b3649cc68e2965376048793f466c5a6c4370fb27c16c1beac22d"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c2ef6f7990b6e8758fe48ad08f7e2f66c8f11dc66e24093304b87cae9037bb4a"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8fc6976a3395fe4d1fbeb984adaa8ec652a1e12f36b56ec8c236e5117b585427"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:03e68f44340528111067cecf12721c3df4811c67268b897fbe695c95f860ac42"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ec7e0043b91115f427998febaa2beb82c82df708168b35ece3accb610b91fac1"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c21fc21a4c7480479d12fd8e679b699f744f76bb05f53a1d14182b31f55aac76"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:12f6a3f2f58bb7344751919a1876ee1b976fe08b9ffccb4bbea66f26af6017b9"}, + {file = "regex-2024.4.16-cp38-cp38-win32.whl", hash = "sha256:479595a4fbe9ed8f8f72c59717e8cf222da2e4c07b6ae5b65411e6302af9708e"}, + {file = "regex-2024.4.16-cp38-cp38-win_amd64.whl", hash = "sha256:0534b034fba6101611968fae8e856c1698da97ce2efb5c2b895fc8b9e23a5834"}, + {file = "regex-2024.4.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a7ccdd1c4a3472a7533b0a7aa9ee34c9a2bef859ba86deec07aff2ad7e0c3b94"}, + {file = "regex-2024.4.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f2f017c5be19984fbbf55f8af6caba25e62c71293213f044da3ada7091a4455"}, + {file = "regex-2024.4.16-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:803b8905b52de78b173d3c1e83df0efb929621e7b7c5766c0843704d5332682f"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:684008ec44ad275832a5a152f6e764bbe1914bea10968017b6feaecdad5736e0"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65436dce9fdc0aeeb0a0effe0839cb3d6a05f45aa45a4d9f9c60989beca78b9c"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea355eb43b11764cf799dda62c658c4d2fdb16af41f59bb1ccfec517b60bcb07"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98c1165f3809ce7774f05cb74e5408cd3aa93ee8573ae959a97a53db3ca3180d"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cccc79a9be9b64c881f18305a7c715ba199e471a3973faeb7ba84172abb3f317"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00169caa125f35d1bca6045d65a662af0202704489fada95346cfa092ec23f39"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6cc38067209354e16c5609b66285af17a2863a47585bcf75285cab33d4c3b8df"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:23cff1b267038501b179ccbbd74a821ac4a7192a1852d1d558e562b507d46013"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:b9d320b3bf82a39f248769fc7f188e00f93526cc0fe739cfa197868633d44701"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:89ec7f2c08937421bbbb8b48c54096fa4f88347946d4747021ad85f1b3021b3c"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4918fd5f8b43aa7ec031e0fef1ee02deb80b6afd49c85f0790be1dc4ce34cb50"}, + {file = "regex-2024.4.16-cp39-cp39-win32.whl", hash = "sha256:684e52023aec43bdf0250e843e1fdd6febbe831bd9d52da72333fa201aaa2335"}, + {file = "regex-2024.4.16-cp39-cp39-win_amd64.whl", hash = "sha256:e697e1c0238133589e00c244a8b676bc2cfc3ab4961318d902040d099fec7483"}, + {file = "regex-2024.4.16.tar.gz", hash = "sha256:fa454d26f2e87ad661c4f0c5a5fe4cf6aab1e307d1b94f16ffdfcb089ba685c0"}, ] [[package]] @@ -2505,121 +2504,111 @@ files = [ [[package]] name = "safetensors" -version = "0.4.2" +version = "0.4.3" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "safetensors-0.4.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:69d8bb8384dc2cb5b72c36c4d6980771b293d1a1377b378763f5e37b6bb8d133"}, - {file = "safetensors-0.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3d420e19fcef96d0067f4de4699682b4bbd85fc8fea0bd45fcd961fdf3e8c82c"}, - {file = "safetensors-0.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ca54742122fa3c4821754adb67318e1cd25c3a22bbf0c5520d5176e77a099ac"}, - {file = "safetensors-0.4.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b47aa643afdfd66cf7ce4c184092ae734e15d10aba2c2948f24270211801c3c"}, - {file = "safetensors-0.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d88a16bbc330f27e7f2d4caaf6fb061ad0b8a756ecc4033260b0378e128ce8a2"}, - {file = "safetensors-0.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9223b8ac21085db614a510eb3445e7083cae915a9202357555fa939695d4f57"}, - {file = "safetensors-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce6cb86133dc8930a7ab5e7438545a7f205f7a1cdd5aaf108c1d0da6bdcfbc2b"}, - {file = "safetensors-0.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8a628e0ae2bbc334b62952c384aa5f41621d01850f8d67b04a96b9c39dd7326"}, - {file = "safetensors-0.4.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:88d6beb7f811a081e0e5f1d9669fdac816c45340c04b1eaf7ebfda0ce93ea403"}, - {file = "safetensors-0.4.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b57fc5b1b54cb12d8690a58a4cf4b7144730d4bde9d98aa0e1dab6295a1cd579"}, - {file = "safetensors-0.4.2-cp310-none-win32.whl", hash = "sha256:9d87a1c98803c16cf113b9ba03f07b2dce5e8eabfd1811a7f7323fcaa2a1bf47"}, - {file = "safetensors-0.4.2-cp310-none-win_amd64.whl", hash = "sha256:18930ec1d1ecb526d3d9835abc2489b8f1530877518f0c541e77ef0b7abcbd99"}, - {file = "safetensors-0.4.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:c5dd2ed788730ed56b415d1a11c62026b8cc8c573f55a2092afb3ab383e94fff"}, - {file = "safetensors-0.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc41791b33efb9c83a59b731619f3d15f543dfe71f3a793cb8fbf9bd5d0d5d71"}, - {file = "safetensors-0.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c888bf71d5ca12a720f1ed87d407c4918afa022fb247a6546d8fac15b1f112b"}, - {file = "safetensors-0.4.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e6b2feb4b47226a16a792e6fac3f49442714884a3d4c1008569d5068a3941be9"}, - {file = "safetensors-0.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f41cc0ee4b838ae8f4d8364a1b162067693d11a3893f0863be8c228d40e4d0ee"}, - {file = "safetensors-0.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:51b7228e46c0a483c40ba4b9470dea00fb1ff8685026bb4766799000f6328ac2"}, - {file = "safetensors-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02697f8f2be8ca3c37a4958702dbdb1864447ef765e18b5328a1617022dcf164"}, - {file = "safetensors-0.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:27fd8f65cf7c80e4280cae1ee6bcd85c483882f6580821abe71ee1a0d3dcfca7"}, - {file = "safetensors-0.4.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c487b5f113b0924c9534a07dc034830fb4ef05ce9bb6d78cfe016a7dedfe281f"}, - {file = "safetensors-0.4.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:da7f6483f3fe67ff39b3a55552552c67930ea10a36e9f2539d36fc205273d767"}, - {file = "safetensors-0.4.2-cp311-none-win32.whl", hash = "sha256:52a7012f6cb9cb4a132760b6308daede18a9f5f8952ce08adc7c67a7d865c2d8"}, - {file = "safetensors-0.4.2-cp311-none-win_amd64.whl", hash = "sha256:4d1361a097ac430b310ce9eed8ed4746edee33ddafdfbb965debc8966fc34dc2"}, - {file = "safetensors-0.4.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:77af8aa0edcc2863760fd6febbfdb82e88fd75d0e60c1ce4ba57208ba5e4a89b"}, - {file = "safetensors-0.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846666c1c5a8c8888d2dfda8d3921cb9cb8e2c5f78365be756c11021e75a0a2a"}, - {file = "safetensors-0.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f4bfc7ea19b446bfad41510d4b4c76101698c00caaa8a332c8edd8090a412ef"}, - {file = "safetensors-0.4.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:233436fd30f27ffeb3c3780d0b84f496518868445c7a8db003639a649cc98453"}, - {file = "safetensors-0.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7a09237a795d11cd11f9dae505d170a29b5616151db1e10c14f892b11caadc7d"}, - {file = "safetensors-0.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de01c9a3a3b7b69627d624ff69d9f11d28ce9908eea2fb6245adafa4b1d43df6"}, - {file = "safetensors-0.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c1f25c5069ee42a5bcffdc66c300a407941edd73f3239e9fdefd26216407391"}, - {file = "safetensors-0.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7a73b3649456d09ca8506140d44484b63154a7378434cc1e8719f8056550b224"}, - {file = "safetensors-0.4.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e1625a8d07d046e968bd5c4961810aba1225984e4fb9243626f9d04a06ed3fee"}, - {file = "safetensors-0.4.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f74c86b25615cb24ad4cff765a2eefc09d71bf0fed97588cf585aad9c38fbb4"}, - {file = "safetensors-0.4.2-cp312-none-win32.whl", hash = "sha256:8523b9c5777d771bcde5c2389c03f1cdf7ebe8797432a1bd5e345efe25c55987"}, - {file = "safetensors-0.4.2-cp312-none-win_amd64.whl", hash = "sha256:dcff0243e1737a21f83d664c63fed89d1f532c23fc6830d0427279fabd789ccb"}, - {file = "safetensors-0.4.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:96ad3d7d472612e26cbe413922b4fb13933310f0511d346ea5cc9a1e856e52eb"}, - {file = "safetensors-0.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:88250922401b5ae4e37de929178caf46be47ed16c817b2237b81679bec07c120"}, - {file = "safetensors-0.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d40443554142fc0ab30652d5cc8554c4b7a613513bde00373e18afd5de8cbe4b"}, - {file = "safetensors-0.4.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:27f53f70106224d32d874aacecbeb4a6e4c5b16a1d2006d0e876d97229086d71"}, - {file = "safetensors-0.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc068afe23734dfb26ce19db0a7877499ddf73b1d55ceb762417e8da4a1b05fb"}, - {file = "safetensors-0.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9be1918eb8d43a11a6f8806759fccfa0eeb0542b12924caba66af8a7800ad01a"}, - {file = "safetensors-0.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41911087d20a7bbd78cb4ad4f98aab0c431533107584df6635d8b54b99945573"}, - {file = "safetensors-0.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:50771c662aab909f31e94d048e76861fd027d66076ea773eef2e66c717766e24"}, - {file = "safetensors-0.4.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:13f2e57be007b7ea9329133d2399e6bdfcf1910f655440a4da17df3a45afcd30"}, - {file = "safetensors-0.4.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c772147e6395bc829842e0a98e1b30c67fe25d816299c28196488511d5a5e951"}, - {file = "safetensors-0.4.2-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:36239a0060b537a3e8c473df78cffee14c3ec4f51d5f1a853af99371a2fb2a35"}, - {file = "safetensors-0.4.2-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:d0cbb7664fad2c307f95195f951b7059e95dc23e0e1822e5978c8b500098543c"}, - {file = "safetensors-0.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b3e55adb6bd9dc1c2a341e72f48f075953fa35d173dd8e29a95b3b02d0d1462"}, - {file = "safetensors-0.4.2-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42f743b3cca863fba53ca57a193f510e5ec359b97f38c282437716b6768e4a25"}, - {file = "safetensors-0.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04e6af4a6dbeb06c4e6e7d46cf9c716cbc4cc5ef62584fd8a7c0fe558562df45"}, - {file = "safetensors-0.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a492ba21b5c8f14ee5ec9b20f42ba969e53ca1f909a4d04aad736b66a341dcc2"}, - {file = "safetensors-0.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b25b8233a1a85dc67e39838951cfb01595d792f3b7b644add63edb652992e030"}, - {file = "safetensors-0.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fd27e063fbdafe776f7b1714da59110e88f270e86db00788a8fd65f4eacfeba7"}, - {file = "safetensors-0.4.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1b6fa399f251bbeb52029bf5a0ac2878d7705dd3612a2f8895b48e9c11f0367d"}, - {file = "safetensors-0.4.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:de642d46b459e4afd5c2020b26c0d6d869a171ea00411897d5776c127cac74f0"}, - {file = "safetensors-0.4.2-cp37-none-win32.whl", hash = "sha256:77b72d17754c93bb68f3598182f14d78776e0b9b31682ca5bb2c7c5bd9a75267"}, - {file = "safetensors-0.4.2-cp37-none-win_amd64.whl", hash = "sha256:d36ee3244d461cd655aeef493792c3bccf4875282f8407fd9af99e9a41cf2530"}, - {file = "safetensors-0.4.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:16b6b3884f7876c6b3b23a742428223a7170a5a9dac819d8c12a1569422c4b5a"}, - {file = "safetensors-0.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ee25d311493fbbe0be9d395faee46e9d79e8948f461e388ff39e59875ed9a350"}, - {file = "safetensors-0.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eed8097968585cd752a1171f86fce9aa1d89a29033e5cd8bec5a502e29f6b7af"}, - {file = "safetensors-0.4.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:880e6865cf72cb67f9ab8d04a3c4b49dd95ae92fb1583929ce65aed94e1f685f"}, - {file = "safetensors-0.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91290f83daf80ce6d1a7f629b244443c200060a80f908b29d879021409e5ea94"}, - {file = "safetensors-0.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3517d568486ab3508a7acc360b82d7a4a3e26b86efdf210a9ecd9d233c40708a"}, - {file = "safetensors-0.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1f43a77eb38540f782999e5dc5645164fe9027d3f0194f6c9a5126168017efa"}, - {file = "safetensors-0.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b684d9818aa5d63fddc65f7d0151968037d255d91adf74eba82125b41c680aaa"}, - {file = "safetensors-0.4.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ab1f5d84185f9fefaf21413efb764e4908057b8a9a0b987ede890c353490fd70"}, - {file = "safetensors-0.4.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2bd979642e6c3a517ef4b84ff36c2fee4015664fea05a61154fc565978347553"}, - {file = "safetensors-0.4.2-cp38-none-win32.whl", hash = "sha256:11be6e7afed29e5a5628f0aa6214e34bc194da73f558dc69fc7d56e07037422a"}, - {file = "safetensors-0.4.2-cp38-none-win_amd64.whl", hash = "sha256:2f7a6e5d29bd2cc340cffaa391fa437b1be9d21a2bd8b8724d2875d13a6ef2a9"}, - {file = "safetensors-0.4.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a5a921b4fe6925f9942adff3ebae8c16e0487908c54586a5a42f35b59fd69794"}, - {file = "safetensors-0.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b691727228c28f2d82d8a92b2bc26e7a1f129ee40b2f2a3185b5974e038ed47c"}, - {file = "safetensors-0.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91ca1056decc4e981248786e87b2a202d4841ee5f99d433f1adf3d44d4bcfa0e"}, - {file = "safetensors-0.4.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:55969fd2e6fdb38dc221b0ab380668c21b0efa12a7562db9924759faa3c51757"}, - {file = "safetensors-0.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ae429bfaecc10ab5fe78c93009b3d1656c1581da560041e700eadb497dbe7a4"}, - {file = "safetensors-0.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff88f194fe4ac50b463a4a6f0c03af9ad72eb5d24ec6d6730af59522e37fedb"}, - {file = "safetensors-0.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a80cb48d0a447f8dd18e61813efa7d3f8f8d52edf0f05806abc0c59b83431f57"}, - {file = "safetensors-0.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b286fb7adfee70a4189898ac2342b8a67d5f493e6b21b0af89ca8eac1b967cbf"}, - {file = "safetensors-0.4.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0ceeff9ddbab4f78738489eb6682867ae946178776f33699737b2129b5394dc1"}, - {file = "safetensors-0.4.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a26fae748a7488cb3aac381eddfa818c42052c87b5e689fb4c6e82ed58cec209"}, - {file = "safetensors-0.4.2-cp39-none-win32.whl", hash = "sha256:039a42ab33c9d68b39706fd38f1922ace26866eff246bf20271edb619f5f848b"}, - {file = "safetensors-0.4.2-cp39-none-win_amd64.whl", hash = "sha256:b3a3e1f5b85859e398773f064943b62a4059f225008a2a8ee6add1edcf77cacf"}, - {file = "safetensors-0.4.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:4e70d442ad17e8b153ef9095bf48ea64f15a66bf26dc2b6ca94660c154edbc24"}, - {file = "safetensors-0.4.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b90f1d9809caf4ff395951b4703295a68d12907f6945bbc3129e934ff8ae46f6"}, - {file = "safetensors-0.4.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c7ac9ad3728838006598e296b3ae9f27d80b489effd4685b92d97b3fc4c98f6"}, - {file = "safetensors-0.4.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5730d77e6ff7f4c7039e20913661ad0ea2f86c09e71c039e73dfdd1f394f08"}, - {file = "safetensors-0.4.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:44feb8cb156d6803dcd19fc6b81b27235f29b877660605a6ac35e1da7d64f0e4"}, - {file = "safetensors-0.4.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:523a241c33e7c827ab9a3a23760d75c7d062f43dfe55b6b019409f89b0fb52d1"}, - {file = "safetensors-0.4.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fb18300e8eb74291225214f26c9a8ae2110fd61a6c9b5a2ff4c4e0eb1bb9a998"}, - {file = "safetensors-0.4.2-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fe5437ff9fb116e44f2ab558981249ae63f978392b4576e62fcfe167d353edbc"}, - {file = "safetensors-0.4.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9304a0934ced5a5d272f39de36291dc141dfc152d277f03fb4d65f2fb2ffa7c"}, - {file = "safetensors-0.4.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:160ba1b1e11cf874602c233ab80a14f588571d09556cbc3586900121d622b5ed"}, - {file = "safetensors-0.4.2-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04fcd6fcf7d9c13c7e5dc7e08de5e492ee4daa8f4ad74b4d8299d3eb0224292f"}, - {file = "safetensors-0.4.2-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:906d14c4a677d35834fb0f3a5455ef8305e1bba10a5e0f2e0f357b3d1ad989f2"}, - {file = "safetensors-0.4.2-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:df3fcdec0cd543084610d1f09c65cdb10fb3079f79bceddc092b0d187c6a265b"}, - {file = "safetensors-0.4.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5ca76f13fb1cef242ea3ad2cb37388e7d005994f42af8b44bee56ba48b2d45ce"}, - {file = "safetensors-0.4.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:278a1a3414c020785decdcd741c578725721274d2f9f787fcc930882e83b89cc"}, - {file = "safetensors-0.4.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b5a461cc68ecd42d9d546e5e1268a39d8ede7934a68d1ce17c3c659cb829d6"}, - {file = "safetensors-0.4.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2341411412a41671d25e26bed59ec121e46bf4fadb8132895e610411c4b9681"}, - {file = "safetensors-0.4.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3497ac3895acf17c5f98197f1fa4769f09c5e7ede07fcb102f1c201e663e052c"}, - {file = "safetensors-0.4.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:01b5e71d3754d2201294f1eb7a6d59cce3a5702ff96d83d226571b2ca2183837"}, - {file = "safetensors-0.4.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3627dbd1ea488dd8046a0491de5087f3c0d641e7acc80c0189a33c69398f1cd1"}, - {file = "safetensors-0.4.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9d56f0ef53afad26ec54ceede78a43e9a23a076dadbbda7b44d304c591abf4c1"}, - {file = "safetensors-0.4.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:b259ca73d42daf658a1bda463f1f83885ae4d93a60869be80d7f7dfcc9d8bbb5"}, - {file = "safetensors-0.4.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ebc3cd401e4eb54e7c0a70346be565e81942d9a41fafd5f4bf7ab3a55d10378"}, - {file = "safetensors-0.4.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bc384a0309b706aa0425c93abb0390508a61bf029ce99c7d9df4220f25871a5"}, - {file = "safetensors-0.4.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:af2d8f7235d8a08fbccfb8394387890e7fa38942b349a94e6eff13c52ac98087"}, - {file = "safetensors-0.4.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0911315bbcc5289087d063c2c2c7ccd711ea97a7e557a7bce005ac2cf80146aa"}, - {file = "safetensors-0.4.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1efe31673be91832d73439a2af426743e1395fc9ef7b081914e9e1d567bd7b5f"}, - {file = "safetensors-0.4.2.tar.gz", hash = "sha256:acc85dcb09ec5e8aa787f588d7ad4d55c103f31e4ff060e17d92cc0e8b8cac73"}, + {file = "safetensors-0.4.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:dcf5705cab159ce0130cd56057f5f3425023c407e170bca60b4868048bae64fd"}, + {file = "safetensors-0.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bb4f8c5d0358a31e9a08daeebb68f5e161cdd4018855426d3f0c23bb51087055"}, + {file = "safetensors-0.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70a5319ef409e7f88686a46607cbc3c428271069d8b770076feaf913664a07ac"}, + {file = "safetensors-0.4.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fb9c65bd82f9ef3ce4970dc19ee86be5f6f93d032159acf35e663c6bea02b237"}, + {file = "safetensors-0.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:edb5698a7bc282089f64c96c477846950358a46ede85a1c040e0230344fdde10"}, + {file = "safetensors-0.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:efcc860be094b8d19ac61b452ec635c7acb9afa77beb218b1d7784c6d41fe8ad"}, + {file = "safetensors-0.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d88b33980222085dd6001ae2cad87c6068e0991d4f5ccf44975d216db3b57376"}, + {file = "safetensors-0.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5fc6775529fb9f0ce2266edd3e5d3f10aab068e49f765e11f6f2a63b5367021d"}, + {file = "safetensors-0.4.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9c6ad011c1b4e3acff058d6b090f1da8e55a332fbf84695cf3100c649cc452d1"}, + {file = "safetensors-0.4.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c496c5401c1b9c46d41a7688e8ff5b0310a3b9bae31ce0f0ae870e1ea2b8caf"}, + {file = "safetensors-0.4.3-cp310-none-win32.whl", hash = "sha256:38e2a8666178224a51cca61d3cb4c88704f696eac8f72a49a598a93bbd8a4af9"}, + {file = "safetensors-0.4.3-cp310-none-win_amd64.whl", hash = "sha256:393e6e391467d1b2b829c77e47d726f3b9b93630e6a045b1d1fca67dc78bf632"}, + {file = "safetensors-0.4.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:22f3b5d65e440cec0de8edaa672efa888030802e11c09b3d6203bff60ebff05a"}, + {file = "safetensors-0.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c4fa560ebd4522adddb71dcd25d09bf211b5634003f015a4b815b7647d62ebe"}, + {file = "safetensors-0.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9afd5358719f1b2cf425fad638fc3c887997d6782da317096877e5b15b2ce93"}, + {file = "safetensors-0.4.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d8c5093206ef4b198600ae484230402af6713dab1bd5b8e231905d754022bec7"}, + {file = "safetensors-0.4.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0b2104df1579d6ba9052c0ae0e3137c9698b2d85b0645507e6fd1813b70931a"}, + {file = "safetensors-0.4.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8cf18888606dad030455d18f6c381720e57fc6a4170ee1966adb7ebc98d4d6a3"}, + {file = "safetensors-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0bf4f9d6323d9f86eef5567eabd88f070691cf031d4c0df27a40d3b4aaee755b"}, + {file = "safetensors-0.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:585c9ae13a205807b63bef8a37994f30c917ff800ab8a1ca9c9b5d73024f97ee"}, + {file = "safetensors-0.4.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faefeb3b81bdfb4e5a55b9bbdf3d8d8753f65506e1d67d03f5c851a6c87150e9"}, + {file = "safetensors-0.4.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:befdf0167ad626f22f6aac6163477fcefa342224a22f11fdd05abb3995c1783c"}, + {file = "safetensors-0.4.3-cp311-none-win32.whl", hash = "sha256:a7cef55929dcbef24af3eb40bedec35d82c3c2fa46338bb13ecf3c5720af8a61"}, + {file = "safetensors-0.4.3-cp311-none-win_amd64.whl", hash = "sha256:840b7ac0eff5633e1d053cc9db12fdf56b566e9403b4950b2dc85393d9b88d67"}, + {file = "safetensors-0.4.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:22d21760dc6ebae42e9c058d75aa9907d9f35e38f896e3c69ba0e7b213033856"}, + {file = "safetensors-0.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d22c1a10dff3f64d0d68abb8298a3fd88ccff79f408a3e15b3e7f637ef5c980"}, + {file = "safetensors-0.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1648568667f820b8c48317c7006221dc40aced1869908c187f493838a1362bc"}, + {file = "safetensors-0.4.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:446e9fe52c051aeab12aac63d1017e0f68a02a92a027b901c4f8e931b24e5397"}, + {file = "safetensors-0.4.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fef5d70683643618244a4f5221053567ca3e77c2531e42ad48ae05fae909f542"}, + {file = "safetensors-0.4.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a1f4430cc0c9d6afa01214a4b3919d0a029637df8e09675ceef1ca3f0dfa0df"}, + {file = "safetensors-0.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d603846a8585b9432a0fd415db1d4c57c0f860eb4aea21f92559ff9902bae4d"}, + {file = "safetensors-0.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a844cdb5d7cbc22f5f16c7e2a0271170750763c4db08381b7f696dbd2c78a361"}, + {file = "safetensors-0.4.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:88887f69f7a00cf02b954cdc3034ffb383b2303bc0ab481d4716e2da51ddc10e"}, + {file = "safetensors-0.4.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ee463219d9ec6c2be1d331ab13a8e0cd50d2f32240a81d498266d77d07b7e71e"}, + {file = "safetensors-0.4.3-cp312-none-win32.whl", hash = "sha256:d0dd4a1db09db2dba0f94d15addc7e7cd3a7b0d393aa4c7518c39ae7374623c3"}, + {file = "safetensors-0.4.3-cp312-none-win_amd64.whl", hash = "sha256:d14d30c25897b2bf19b6fb5ff7e26cc40006ad53fd4a88244fdf26517d852dd7"}, + {file = "safetensors-0.4.3-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:d1456f814655b224d4bf6e7915c51ce74e389b413be791203092b7ff78c936dd"}, + {file = "safetensors-0.4.3-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:455d538aa1aae4a8b279344a08136d3f16334247907b18a5c3c7fa88ef0d3c46"}, + {file = "safetensors-0.4.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf476bca34e1340ee3294ef13e2c625833f83d096cfdf69a5342475602004f95"}, + {file = "safetensors-0.4.3-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:02ef3a24face643456020536591fbd3c717c5abaa2737ec428ccbbc86dffa7a4"}, + {file = "safetensors-0.4.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7de32d0d34b6623bb56ca278f90db081f85fb9c5d327e3c18fd23ac64f465768"}, + {file = "safetensors-0.4.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a0deb16a1d3ea90c244ceb42d2c6c276059616be21a19ac7101aa97da448faf"}, + {file = "safetensors-0.4.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c59d51f182c729f47e841510b70b967b0752039f79f1de23bcdd86462a9b09ee"}, + {file = "safetensors-0.4.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1f598b713cc1a4eb31d3b3203557ac308acf21c8f41104cdd74bf640c6e538e3"}, + {file = "safetensors-0.4.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5757e4688f20df083e233b47de43845d1adb7e17b6cf7da5f8444416fc53828d"}, + {file = "safetensors-0.4.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:fe746d03ed8d193674a26105e4f0fe6c726f5bb602ffc695b409eaf02f04763d"}, + {file = "safetensors-0.4.3-cp37-none-win32.whl", hash = "sha256:0d5ffc6a80f715c30af253e0e288ad1cd97a3d0086c9c87995e5093ebc075e50"}, + {file = "safetensors-0.4.3-cp37-none-win_amd64.whl", hash = "sha256:a11c374eb63a9c16c5ed146457241182f310902bd2a9c18255781bb832b6748b"}, + {file = "safetensors-0.4.3-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:b1e31be7945f66be23f4ec1682bb47faa3df34cb89fc68527de6554d3c4258a4"}, + {file = "safetensors-0.4.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:03a4447c784917c9bf01d8f2ac5080bc15c41692202cd5f406afba16629e84d6"}, + {file = "safetensors-0.4.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d244bcafeb1bc06d47cfee71727e775bca88a8efda77a13e7306aae3813fa7e4"}, + {file = "safetensors-0.4.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53c4879b9c6bd7cd25d114ee0ef95420e2812e676314300624594940a8d6a91f"}, + {file = "safetensors-0.4.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74707624b81f1b7f2b93f5619d4a9f00934d5948005a03f2c1845ffbfff42212"}, + {file = "safetensors-0.4.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d52c958dc210265157573f81d34adf54e255bc2b59ded6218500c9b15a750eb"}, + {file = "safetensors-0.4.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f9568f380f513a60139971169c4a358b8731509cc19112369902eddb33faa4d"}, + {file = "safetensors-0.4.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0d9cd8e1560dfc514b6d7859247dc6a86ad2f83151a62c577428d5102d872721"}, + {file = "safetensors-0.4.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:89f9f17b0dacb913ed87d57afbc8aad85ea42c1085bd5de2f20d83d13e9fc4b2"}, + {file = "safetensors-0.4.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1139eb436fd201c133d03c81209d39ac57e129f5e74e34bb9ab60f8d9b726270"}, + {file = "safetensors-0.4.3-cp38-none-win32.whl", hash = "sha256:d9c289f140a9ae4853fc2236a2ffc9a9f2d5eae0cb673167e0f1b8c18c0961ac"}, + {file = "safetensors-0.4.3-cp38-none-win_amd64.whl", hash = "sha256:622afd28968ef3e9786562d352659a37de4481a4070f4ebac883f98c5836563e"}, + {file = "safetensors-0.4.3-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:8651c7299cbd8b4161a36cd6a322fa07d39cd23535b144d02f1c1972d0c62f3c"}, + {file = "safetensors-0.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e375d975159ac534c7161269de24ddcd490df2157b55c1a6eeace6cbb56903f0"}, + {file = "safetensors-0.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:084fc436e317f83f7071fc6a62ca1c513b2103db325cd09952914b50f51cf78f"}, + {file = "safetensors-0.4.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:41a727a7f5e6ad9f1db6951adee21bbdadc632363d79dc434876369a17de6ad6"}, + {file = "safetensors-0.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e7dbbde64b6c534548696808a0e01276d28ea5773bc9a2dfb97a88cd3dffe3df"}, + {file = "safetensors-0.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bbae3b4b9d997971431c346edbfe6e41e98424a097860ee872721e176040a893"}, + {file = "safetensors-0.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01e4b22e3284cd866edeabe4f4d896229495da457229408d2e1e4810c5187121"}, + {file = "safetensors-0.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dd37306546b58d3043eb044c8103a02792cc024b51d1dd16bd3dd1f334cb3ed"}, + {file = "safetensors-0.4.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d8815b5e1dac85fc534a97fd339e12404db557878c090f90442247e87c8aeaea"}, + {file = "safetensors-0.4.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e011cc162503c19f4b1fd63dfcddf73739c7a243a17dac09b78e57a00983ab35"}, + {file = "safetensors-0.4.3-cp39-none-win32.whl", hash = "sha256:01feb3089e5932d7e662eda77c3ecc389f97c0883c4a12b5cfdc32b589a811c3"}, + {file = "safetensors-0.4.3-cp39-none-win_amd64.whl", hash = "sha256:3f9cdca09052f585e62328c1c2923c70f46814715c795be65f0b93f57ec98a02"}, + {file = "safetensors-0.4.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1b89381517891a7bb7d1405d828b2bf5d75528299f8231e9346b8eba092227f9"}, + {file = "safetensors-0.4.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:cd6fff9e56df398abc5866b19a32124815b656613c1c5ec0f9350906fd798aac"}, + {file = "safetensors-0.4.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:840caf38d86aa7014fe37ade5d0d84e23dcfbc798b8078015831996ecbc206a3"}, + {file = "safetensors-0.4.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9650713b2cfa9537a2baf7dd9fee458b24a0aaaa6cafcea8bdd5fb2b8efdc34"}, + {file = "safetensors-0.4.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e4119532cd10dba04b423e0f86aecb96cfa5a602238c0aa012f70c3a40c44b50"}, + {file = "safetensors-0.4.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e066e8861eef6387b7c772344d1fe1f9a72800e04ee9a54239d460c400c72aab"}, + {file = "safetensors-0.4.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:90964917f5b0fa0fa07e9a051fbef100250c04d150b7026ccbf87a34a54012e0"}, + {file = "safetensors-0.4.3-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c41e1893d1206aa7054029681778d9a58b3529d4c807002c156d58426c225173"}, + {file = "safetensors-0.4.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae7613a119a71a497d012ccc83775c308b9c1dab454806291427f84397d852fd"}, + {file = "safetensors-0.4.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9bac020faba7f5dc481e881b14b6425265feabb5bfc552551d21189c0eddc3"}, + {file = "safetensors-0.4.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:420a98f593ff9930f5822560d14c395ccbc57342ddff3b463bc0b3d6b1951550"}, + {file = "safetensors-0.4.3-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f5e6883af9a68c0028f70a4c19d5a6ab6238a379be36ad300a22318316c00cb0"}, + {file = "safetensors-0.4.3-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:cdd0a3b5da66e7f377474599814dbf5cbf135ff059cc73694de129b58a5e8a2c"}, + {file = "safetensors-0.4.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9bfb92f82574d9e58401d79c70c716985dc049b635fef6eecbb024c79b2c46ad"}, + {file = "safetensors-0.4.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:3615a96dd2dcc30eb66d82bc76cda2565f4f7bfa89fcb0e31ba3cea8a1a9ecbb"}, + {file = "safetensors-0.4.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:868ad1b6fc41209ab6bd12f63923e8baeb1a086814cb2e81a65ed3d497e0cf8f"}, + {file = "safetensors-0.4.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7ffba80aa49bd09195145a7fd233a7781173b422eeb995096f2b30591639517"}, + {file = "safetensors-0.4.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0acbe31340ab150423347e5b9cc595867d814244ac14218932a5cf1dd38eb39"}, + {file = "safetensors-0.4.3-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19bbdf95de2cf64f25cd614c5236c8b06eb2cfa47cbf64311f4b5d80224623a3"}, + {file = "safetensors-0.4.3-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b852e47eb08475c2c1bd8131207b405793bfc20d6f45aff893d3baaad449ed14"}, + {file = "safetensors-0.4.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5d07cbca5b99babb692d76d8151bec46f461f8ad8daafbfd96b2fca40cadae65"}, + {file = "safetensors-0.4.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1ab6527a20586d94291c96e00a668fa03f86189b8a9defa2cdd34a1a01acc7d5"}, + {file = "safetensors-0.4.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02318f01e332cc23ffb4f6716e05a492c5f18b1d13e343c49265149396284a44"}, + {file = "safetensors-0.4.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec4b52ce9a396260eb9731eb6aea41a7320de22ed73a1042c2230af0212758ce"}, + {file = "safetensors-0.4.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:018b691383026a2436a22b648873ed11444a364324e7088b99cd2503dd828400"}, + {file = "safetensors-0.4.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:309b10dbcab63269ecbf0e2ca10ce59223bb756ca5d431ce9c9eeabd446569da"}, + {file = "safetensors-0.4.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b277482120df46e27a58082df06a15aebda4481e30a1c21eefd0921ae7e03f65"}, + {file = "safetensors-0.4.3.tar.gz", hash = "sha256:2f85fc50c4e07a21e95c24e07460fe6f7e2859d0ce88092838352b798ce711c2"}, ] [package.extras] @@ -2632,7 +2621,7 @@ paddlepaddle = ["paddlepaddle (>=2.4.1)", "safetensors[numpy]"] pinned-tf = ["safetensors[numpy]", "tensorflow (==2.11.0)"] quality = ["black (==22.3)", "click (==8.0.4)", "flake8 (>=3.8.3)", "isort (>=5.5.4)"] tensorflow = ["safetensors[numpy]", "tensorflow (>=2.11.0)"] -testing = ["h5py (>=3.7.0)", "huggingface_hub (>=0.12.1)", "hypothesis (>=6.70.2)", "pytest (>=7.2.0)", "pytest-benchmark (>=4.0.0)", "safetensors[numpy]", "setuptools_rust (>=1.5.2)"] +testing = ["h5py (>=3.7.0)", "huggingface-hub (>=0.12.1)", "hypothesis (>=6.70.2)", "pytest (>=7.2.0)", "pytest-benchmark (>=4.0.0)", "safetensors[numpy]", "setuptools-rust (>=1.5.2)"] torch = ["safetensors[numpy]", "torch (>=1.10)"] [[package]] @@ -2733,18 +2722,18 @@ files = [ [[package]] name = "setuptools" -version = "69.2.0" +version = "69.5.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-69.2.0-py3-none-any.whl", hash = "sha256:c21c49fb1042386df081cb5d86759792ab89efca84cf114889191cd09aacc80c"}, - {file = "setuptools-69.2.0.tar.gz", hash = "sha256:0ff4183f8f42cd8fa3acea16c45205521a4ef28f73c6391d8a25e92893134f2e"}, + {file = "setuptools-69.5.1-py3-none-any.whl", hash = "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32"}, + {file = "setuptools-69.5.1.tar.gz", hash = "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] @@ -2785,130 +2774,120 @@ files = [ [[package]] name = "tokenizers" -version = "0.15.2" +version = "0.19.1" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "tokenizers-0.15.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:52f6130c9cbf70544287575a985bf44ae1bda2da7e8c24e97716080593638012"}, - {file = "tokenizers-0.15.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:054c1cc9c6d68f7ffa4e810b3d5131e0ba511b6e4be34157aa08ee54c2f8d9ee"}, - {file = "tokenizers-0.15.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9b9b070fdad06e347563b88c278995735292ded1132f8657084989a4c84a6d5"}, - {file = "tokenizers-0.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea621a7eef4b70e1f7a4e84dd989ae3f0eeb50fc8690254eacc08acb623e82f1"}, - {file = "tokenizers-0.15.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cf7fd9a5141634fa3aa8d6b7be362e6ae1b4cda60da81388fa533e0b552c98fd"}, - {file = "tokenizers-0.15.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44f2a832cd0825295f7179eaf173381dc45230f9227ec4b44378322d900447c9"}, - {file = "tokenizers-0.15.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8b9ec69247a23747669ec4b0ca10f8e3dfb3545d550258129bd62291aabe8605"}, - {file = "tokenizers-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40b6a4c78da863ff26dbd5ad9a8ecc33d8a8d97b535172601cf00aee9d7ce9ce"}, - {file = "tokenizers-0.15.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5ab2a4d21dcf76af60e05af8063138849eb1d6553a0d059f6534357bce8ba364"}, - {file = "tokenizers-0.15.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a47acfac7e511f6bbfcf2d3fb8c26979c780a91e06fb5b9a43831b2c0153d024"}, - {file = "tokenizers-0.15.2-cp310-none-win32.whl", hash = "sha256:064ff87bb6acdbd693666de9a4b692add41308a2c0ec0770d6385737117215f2"}, - {file = "tokenizers-0.15.2-cp310-none-win_amd64.whl", hash = "sha256:3b919afe4df7eb6ac7cafd2bd14fb507d3f408db7a68c43117f579c984a73843"}, - {file = "tokenizers-0.15.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:89cd1cb93e4b12ff39bb2d626ad77e35209de9309a71e4d3d4672667b4b256e7"}, - {file = "tokenizers-0.15.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cfed5c64e5be23d7ee0f0e98081a25c2a46b0b77ce99a4f0605b1ec43dd481fa"}, - {file = "tokenizers-0.15.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a907d76dcfda37023ba203ab4ceeb21bc5683436ebefbd895a0841fd52f6f6f2"}, - {file = "tokenizers-0.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20ea60479de6fc7b8ae756b4b097572372d7e4032e2521c1bbf3d90c90a99ff0"}, - {file = "tokenizers-0.15.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:48e2b9335be2bc0171df9281385c2ed06a15f5cf121c44094338306ab7b33f2c"}, - {file = "tokenizers-0.15.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:112a1dd436d2cc06e6ffdc0b06d55ac019a35a63afd26475205cb4b1bf0bfbff"}, - {file = "tokenizers-0.15.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4620cca5c2817177ee8706f860364cc3a8845bc1e291aaf661fb899e5d1c45b0"}, - {file = "tokenizers-0.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ccd73a82751c523b3fc31ff8194702e4af4db21dc20e55b30ecc2079c5d43cb7"}, - {file = "tokenizers-0.15.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:107089f135b4ae7817affe6264f8c7a5c5b4fd9a90f9439ed495f54fcea56fb4"}, - {file = "tokenizers-0.15.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0ff110ecc57b7aa4a594396525a3451ad70988e517237fe91c540997c4e50e29"}, - {file = "tokenizers-0.15.2-cp311-none-win32.whl", hash = "sha256:6d76f00f5c32da36c61f41c58346a4fa7f0a61be02f4301fd30ad59834977cc3"}, - {file = "tokenizers-0.15.2-cp311-none-win_amd64.whl", hash = "sha256:cc90102ed17271cf0a1262babe5939e0134b3890345d11a19c3145184b706055"}, - {file = "tokenizers-0.15.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f86593c18d2e6248e72fb91c77d413a815153b8ea4e31f7cd443bdf28e467670"}, - {file = "tokenizers-0.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0774bccc6608eca23eb9d620196687c8b2360624619623cf4ba9dc9bd53e8b51"}, - {file = "tokenizers-0.15.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d0222c5b7c9b26c0b4822a82f6a7011de0a9d3060e1da176f66274b70f846b98"}, - {file = "tokenizers-0.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3835738be1de66624fff2f4f6f6684775da4e9c00bde053be7564cbf3545cc66"}, - {file = "tokenizers-0.15.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0143e7d9dcd811855c1ce1ab9bf5d96d29bf5e528fd6c7824d0465741e8c10fd"}, - {file = "tokenizers-0.15.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db35825f6d54215f6b6009a7ff3eedee0848c99a6271c870d2826fbbedf31a38"}, - {file = "tokenizers-0.15.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f5e64b0389a2be47091d8cc53c87859783b837ea1a06edd9d8e04004df55a5c"}, - {file = "tokenizers-0.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e0480c452217edd35eca56fafe2029fb4d368b7c0475f8dfa3c5c9c400a7456"}, - {file = "tokenizers-0.15.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a33ab881c8fe70474980577e033d0bc9a27b7ab8272896e500708b212995d834"}, - {file = "tokenizers-0.15.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a308a607ca9de2c64c1b9ba79ec9a403969715a1b8ba5f998a676826f1a7039d"}, - {file = "tokenizers-0.15.2-cp312-none-win32.whl", hash = "sha256:b8fcfa81bcb9447df582c5bc96a031e6df4da2a774b8080d4f02c0c16b42be0b"}, - {file = "tokenizers-0.15.2-cp312-none-win_amd64.whl", hash = "sha256:38d7ab43c6825abfc0b661d95f39c7f8af2449364f01d331f3b51c94dcff7221"}, - {file = "tokenizers-0.15.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:38bfb0204ff3246ca4d5e726e8cc8403bfc931090151e6eede54d0e0cf162ef0"}, - {file = "tokenizers-0.15.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c861d35e8286a53e06e9e28d030b5a05bcbf5ac9d7229e561e53c352a85b1fc"}, - {file = "tokenizers-0.15.2-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:936bf3842db5b2048eaa53dade907b1160f318e7c90c74bfab86f1e47720bdd6"}, - {file = "tokenizers-0.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:620beacc3373277700d0e27718aa8b25f7b383eb8001fba94ee00aeea1459d89"}, - {file = "tokenizers-0.15.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2735ecbbf37e52db4ea970e539fd2d450d213517b77745114f92867f3fc246eb"}, - {file = "tokenizers-0.15.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:473c83c5e2359bb81b0b6fde870b41b2764fcdd36d997485e07e72cc3a62264a"}, - {file = "tokenizers-0.15.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:968fa1fb3c27398b28a4eca1cbd1e19355c4d3a6007f7398d48826bbe3a0f728"}, - {file = "tokenizers-0.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:865c60ae6eaebdde7da66191ee9b7db52e542ed8ee9d2c653b6d190a9351b980"}, - {file = "tokenizers-0.15.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7c0d8b52664ab2d4a8d6686eb5effc68b78608a9008f086a122a7b2996befbab"}, - {file = "tokenizers-0.15.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f33dfbdec3784093a9aebb3680d1f91336c56d86cc70ddf88708251da1fe9064"}, - {file = "tokenizers-0.15.2-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:d44ba80988ff9424e33e0a49445072ac7029d8c0e1601ad25a0ca5f41ed0c1d6"}, - {file = "tokenizers-0.15.2-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:dce74266919b892f82b1b86025a613956ea0ea62a4843d4c4237be2c5498ed3a"}, - {file = "tokenizers-0.15.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0ef06b9707baeb98b316577acb04f4852239d856b93e9ec3a299622f6084e4be"}, - {file = "tokenizers-0.15.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c73e2e74bbb07910da0d37c326869f34113137b23eadad3fc00856e6b3d9930c"}, - {file = "tokenizers-0.15.2-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4eeb12daf02a59e29f578a865f55d87cd103ce62bd8a3a5874f8fdeaa82e336b"}, - {file = "tokenizers-0.15.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ba9f6895af58487ca4f54e8a664a322f16c26bbb442effd01087eba391a719e"}, - {file = "tokenizers-0.15.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccec77aa7150e38eec6878a493bf8c263ff1fa8a62404e16c6203c64c1f16a26"}, - {file = "tokenizers-0.15.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3f40604f5042ff210ba82743dda2b6aa3e55aa12df4e9f2378ee01a17e2855e"}, - {file = "tokenizers-0.15.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:5645938a42d78c4885086767c70923abad047163d809c16da75d6b290cb30bbe"}, - {file = "tokenizers-0.15.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:05a77cbfebe28a61ab5c3891f9939cc24798b63fa236d84e5f29f3a85a200c00"}, - {file = "tokenizers-0.15.2-cp37-none-win32.whl", hash = "sha256:361abdc068e8afe9c5b818769a48624687fb6aaed49636ee39bec4e95e1a215b"}, - {file = "tokenizers-0.15.2-cp37-none-win_amd64.whl", hash = "sha256:7ef789f83eb0f9baeb4d09a86cd639c0a5518528f9992f38b28e819df397eb06"}, - {file = "tokenizers-0.15.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4fe1f74a902bee74a3b25aff180fbfbf4f8b444ab37c4d496af7afd13a784ed2"}, - {file = "tokenizers-0.15.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c4b89038a684f40a6b15d6b09f49650ac64d951ad0f2a3ea9169687bbf2a8ba"}, - {file = "tokenizers-0.15.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d05a1b06f986d41aed5f2de464c003004b2df8aaf66f2b7628254bcbfb72a438"}, - {file = "tokenizers-0.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:508711a108684111ec8af89d3a9e9e08755247eda27d0ba5e3c50e9da1600f6d"}, - {file = "tokenizers-0.15.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:daa348f02d15160cb35439098ac96e3a53bacf35885072611cd9e5be7d333daa"}, - {file = "tokenizers-0.15.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:494fdbe5932d3416de2a85fc2470b797e6f3226c12845cadf054dd906afd0442"}, - {file = "tokenizers-0.15.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2d60f5246f4da9373f75ff18d64c69cbf60c3bca597290cea01059c336d2470"}, - {file = "tokenizers-0.15.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93268e788825f52de4c7bdcb6ebc1fcd4a5442c02e730faa9b6b08f23ead0e24"}, - {file = "tokenizers-0.15.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6fc7083ab404019fc9acafe78662c192673c1e696bd598d16dc005bd663a5cf9"}, - {file = "tokenizers-0.15.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:41e39b41e5531d6b2122a77532dbea60e171ef87a3820b5a3888daa847df4153"}, - {file = "tokenizers-0.15.2-cp38-none-win32.whl", hash = "sha256:06cd0487b1cbfabefb2cc52fbd6b1f8d4c37799bd6c6e1641281adaa6b2504a7"}, - {file = "tokenizers-0.15.2-cp38-none-win_amd64.whl", hash = "sha256:5179c271aa5de9c71712e31cb5a79e436ecd0d7532a408fa42a8dbfa4bc23fd9"}, - {file = "tokenizers-0.15.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:82f8652a74cc107052328b87ea8b34291c0f55b96d8fb261b3880216a9f9e48e"}, - {file = "tokenizers-0.15.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:02458bee6f5f3139f1ebbb6d042b283af712c0981f5bc50edf771d6b762d5e4f"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c9a09cd26cca2e1c349f91aa665309ddb48d71636370749414fbf67bc83c5343"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:158be8ea8554e5ed69acc1ce3fbb23a06060bd4bbb09029431ad6b9a466a7121"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ddba9a2b0c8c81633eca0bb2e1aa5b3a15362b1277f1ae64176d0f6eba78ab1"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ef5dd1d39797044642dbe53eb2bc56435308432e9c7907728da74c69ee2adca"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:454c203164e07a860dbeb3b1f4a733be52b0edbb4dd2e5bd75023ffa8b49403a"}, - {file = "tokenizers-0.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cf6b7f1d4dc59af960e6ffdc4faffe6460bbfa8dce27a58bf75755ffdb2526d"}, - {file = "tokenizers-0.15.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2ef09bbc16519f6c25d0c7fc0c6a33a6f62923e263c9d7cca4e58b8c61572afb"}, - {file = "tokenizers-0.15.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c9a2ebdd2ad4ec7a68e7615086e633857c85e2f18025bd05d2a4399e6c5f7169"}, - {file = "tokenizers-0.15.2-cp39-none-win32.whl", hash = "sha256:918fbb0eab96fe08e72a8c2b5461e9cce95585d82a58688e7f01c2bd546c79d0"}, - {file = "tokenizers-0.15.2-cp39-none-win_amd64.whl", hash = "sha256:524e60da0135e106b254bd71f0659be9f89d83f006ea9093ce4d1fab498c6d0d"}, - {file = "tokenizers-0.15.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6a9b648a58281c4672212fab04e60648fde574877d0139cd4b4f93fe28ca8944"}, - {file = "tokenizers-0.15.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7c7d18b733be6bbca8a55084027f7be428c947ddf871c500ee603e375013ffba"}, - {file = "tokenizers-0.15.2-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:13ca3611de8d9ddfbc4dc39ef54ab1d2d4aaa114ac8727dfdc6a6ec4be017378"}, - {file = "tokenizers-0.15.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:237d1bf3361cf2e6463e6c140628e6406766e8b27274f5fcc62c747ae3c6f094"}, - {file = "tokenizers-0.15.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67a0fe1e49e60c664915e9fb6b0cb19bac082ab1f309188230e4b2920230edb3"}, - {file = "tokenizers-0.15.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4e022fe65e99230b8fd89ebdfea138c24421f91c1a4f4781a8f5016fd5cdfb4d"}, - {file = "tokenizers-0.15.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:d857be2df69763362ac699f8b251a8cd3fac9d21893de129bc788f8baaef2693"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:708bb3e4283177236309e698da5fcd0879ce8fd37457d7c266d16b550bcbbd18"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:64c35e09e9899b72a76e762f9854e8750213f67567787d45f37ce06daf57ca78"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1257f4394be0d3b00de8c9e840ca5601d0a4a8438361ce9c2b05c7d25f6057b"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02272fe48280e0293a04245ca5d919b2c94a48b408b55e858feae9618138aeda"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:dc3ad9ebc76eabe8b1d7c04d38be884b8f9d60c0cdc09b0aa4e3bcf746de0388"}, - {file = "tokenizers-0.15.2-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:32e16bdeffa7c4f46bf2152172ca511808b952701d13e7c18833c0b73cb5c23f"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:fb16ba563d59003028b678d2361a27f7e4ae0ab29c7a80690efa20d829c81fdb"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:2277c36d2d6cdb7876c274547921a42425b6810d38354327dd65a8009acf870c"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:1cf75d32e8d250781940d07f7eece253f2fe9ecdb1dc7ba6e3833fa17b82fcbc"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1b3b31884dc8e9b21508bb76da80ebf7308fdb947a17affce815665d5c4d028"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b10122d8d8e30afb43bb1fe21a3619f62c3e2574bff2699cf8af8b0b6c5dc4a3"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d88b96ff0fe8e91f6ef01ba50b0d71db5017fa4e3b1d99681cec89a85faf7bf7"}, - {file = "tokenizers-0.15.2-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:37aaec5a52e959892870a7c47cef80c53797c0db9149d458460f4f31e2fb250e"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e2ea752f2b0fe96eb6e2f3adbbf4d72aaa1272079b0dfa1145507bd6a5d537e6"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:4b19a808d8799fda23504a5cd31d2f58e6f52f140380082b352f877017d6342b"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:64c86e5e068ac8b19204419ed8ca90f9d25db20578f5881e337d203b314f4104"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de19c4dc503c612847edf833c82e9f73cd79926a384af9d801dcf93f110cea4e"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea09acd2fe3324174063d61ad620dec3bcf042b495515f27f638270a7d466e8b"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cf27fd43472e07b57cf420eee1e814549203d56de00b5af8659cb99885472f1f"}, - {file = "tokenizers-0.15.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:7ca22bd897537a0080521445d91a58886c8c04084a6a19e6c78c586e0cfa92a5"}, - {file = "tokenizers-0.15.2.tar.gz", hash = "sha256:e6e9c6e019dd5484be5beafc775ae6c925f4c69a3487040ed09b45e13df2cb91"}, + {file = "tokenizers-0.19.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:952078130b3d101e05ecfc7fc3640282d74ed26bcf691400f872563fca15ac97"}, + {file = "tokenizers-0.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:82c8b8063de6c0468f08e82c4e198763e7b97aabfe573fd4cf7b33930ca4df77"}, + {file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f03727225feaf340ceeb7e00604825addef622d551cbd46b7b775ac834c1e1c4"}, + {file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:453e4422efdfc9c6b6bf2eae00d5e323f263fff62b29a8c9cd526c5003f3f642"}, + {file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:02e81bf089ebf0e7f4df34fa0207519f07e66d8491d963618252f2e0729e0b46"}, + {file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b07c538ba956843833fee1190cf769c60dc62e1cf934ed50d77d5502194d63b1"}, + {file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28cab1582e0eec38b1f38c1c1fb2e56bce5dc180acb1724574fc5f47da2a4fe"}, + {file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b01afb7193d47439f091cd8f070a1ced347ad0f9144952a30a41836902fe09e"}, + {file = "tokenizers-0.19.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7fb297edec6c6841ab2e4e8f357209519188e4a59b557ea4fafcf4691d1b4c98"}, + {file = "tokenizers-0.19.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2e8a3dd055e515df7054378dc9d6fa8c8c34e1f32777fb9a01fea81496b3f9d3"}, + {file = "tokenizers-0.19.1-cp310-none-win32.whl", hash = "sha256:7ff898780a155ea053f5d934925f3902be2ed1f4d916461e1a93019cc7250837"}, + {file = "tokenizers-0.19.1-cp310-none-win_amd64.whl", hash = "sha256:bea6f9947e9419c2fda21ae6c32871e3d398cba549b93f4a65a2d369662d9403"}, + {file = "tokenizers-0.19.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5c88d1481f1882c2e53e6bb06491e474e420d9ac7bdff172610c4f9ad3898059"}, + {file = "tokenizers-0.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ddf672ed719b4ed82b51499100f5417d7d9f6fb05a65e232249268f35de5ed14"}, + {file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dadc509cc8a9fe460bd274c0e16ac4184d0958117cf026e0ea8b32b438171594"}, + {file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfedf31824ca4915b511b03441784ff640378191918264268e6923da48104acc"}, + {file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac11016d0a04aa6487b1513a3a36e7bee7eec0e5d30057c9c0408067345c48d2"}, + {file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76951121890fea8330d3a0df9a954b3f2a37e3ec20e5b0530e9a0044ca2e11fe"}, + {file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b342d2ce8fc8d00f376af068e3274e2e8649562e3bc6ae4a67784ded6b99428d"}, + {file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d16ff18907f4909dca9b076b9c2d899114dd6abceeb074eca0c93e2353f943aa"}, + {file = "tokenizers-0.19.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:706a37cc5332f85f26efbe2bdc9ef8a9b372b77e4645331a405073e4b3a8c1c6"}, + {file = "tokenizers-0.19.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:16baac68651701364b0289979ecec728546133e8e8fe38f66fe48ad07996b88b"}, + {file = "tokenizers-0.19.1-cp311-none-win32.whl", hash = "sha256:9ed240c56b4403e22b9584ee37d87b8bfa14865134e3e1c3fb4b2c42fafd3256"}, + {file = "tokenizers-0.19.1-cp311-none-win_amd64.whl", hash = "sha256:ad57d59341710b94a7d9dbea13f5c1e7d76fd8d9bcd944a7a6ab0b0da6e0cc66"}, + {file = "tokenizers-0.19.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:621d670e1b1c281a1c9698ed89451395d318802ff88d1fc1accff0867a06f153"}, + {file = "tokenizers-0.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d924204a3dbe50b75630bd16f821ebda6a5f729928df30f582fb5aade90c818a"}, + {file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4f3fefdc0446b1a1e6d81cd4c07088ac015665d2e812f6dbba4a06267d1a2c95"}, + {file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9620b78e0b2d52ef07b0d428323fb34e8ea1219c5eac98c2596311f20f1f9266"}, + {file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04ce49e82d100594715ac1b2ce87d1a36e61891a91de774755f743babcd0dd52"}, + {file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5c2ff13d157afe413bf7e25789879dd463e5a4abfb529a2d8f8473d8042e28f"}, + {file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3174c76efd9d08f836bfccaca7cfec3f4d1c0a4cf3acbc7236ad577cc423c840"}, + {file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c9d5b6c0e7a1e979bec10ff960fae925e947aab95619a6fdb4c1d8ff3708ce3"}, + {file = "tokenizers-0.19.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a179856d1caee06577220ebcfa332af046d576fb73454b8f4d4b0ba8324423ea"}, + {file = "tokenizers-0.19.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:952b80dac1a6492170f8c2429bd11fcaa14377e097d12a1dbe0ef2fb2241e16c"}, + {file = "tokenizers-0.19.1-cp312-none-win32.whl", hash = "sha256:01d62812454c188306755c94755465505836fd616f75067abcae529c35edeb57"}, + {file = "tokenizers-0.19.1-cp312-none-win_amd64.whl", hash = "sha256:b70bfbe3a82d3e3fb2a5e9b22a39f8d1740c96c68b6ace0086b39074f08ab89a"}, + {file = "tokenizers-0.19.1-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:bb9dfe7dae85bc6119d705a76dc068c062b8b575abe3595e3c6276480e67e3f1"}, + {file = "tokenizers-0.19.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:1f0360cbea28ea99944ac089c00de7b2e3e1c58f479fb8613b6d8d511ce98267"}, + {file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:71e3ec71f0e78780851fef28c2a9babe20270404c921b756d7c532d280349214"}, + {file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b82931fa619dbad979c0ee8e54dd5278acc418209cc897e42fac041f5366d626"}, + {file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e8ff5b90eabdcdaa19af697885f70fe0b714ce16709cf43d4952f1f85299e73a"}, + {file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e742d76ad84acbdb1a8e4694f915fe59ff6edc381c97d6dfdd054954e3478ad4"}, + {file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d8c5d59d7b59885eab559d5bc082b2985555a54cda04dda4c65528d90ad252ad"}, + {file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b2da5c32ed869bebd990c9420df49813709e953674c0722ff471a116d97b22d"}, + {file = "tokenizers-0.19.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:638e43936cc8b2cbb9f9d8dde0fe5e7e30766a3318d2342999ae27f68fdc9bd6"}, + {file = "tokenizers-0.19.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:78e769eb3b2c79687d9cb0f89ef77223e8e279b75c0a968e637ca7043a84463f"}, + {file = "tokenizers-0.19.1-cp37-none-win32.whl", hash = "sha256:72791f9bb1ca78e3ae525d4782e85272c63faaef9940d92142aa3eb79f3407a3"}, + {file = "tokenizers-0.19.1-cp37-none-win_amd64.whl", hash = "sha256:f3bbb7a0c5fcb692950b041ae11067ac54826204318922da754f908d95619fbc"}, + {file = "tokenizers-0.19.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:07f9295349bbbcedae8cefdbcfa7f686aa420be8aca5d4f7d1ae6016c128c0c5"}, + {file = "tokenizers-0.19.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:10a707cc6c4b6b183ec5dbfc5c34f3064e18cf62b4a938cb41699e33a99e03c1"}, + {file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6309271f57b397aa0aff0cbbe632ca9d70430839ca3178bf0f06f825924eca22"}, + {file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ad23d37d68cf00d54af184586d79b84075ada495e7c5c0f601f051b162112dc"}, + {file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:427c4f0f3df9109314d4f75b8d1f65d9477033e67ffaec4bca53293d3aca286d"}, + {file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e83a31c9cf181a0a3ef0abad2b5f6b43399faf5da7e696196ddd110d332519ee"}, + {file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c27b99889bd58b7e301468c0838c5ed75e60c66df0d4db80c08f43462f82e0d3"}, + {file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bac0b0eb952412b0b196ca7a40e7dce4ed6f6926489313414010f2e6b9ec2adf"}, + {file = "tokenizers-0.19.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8a6298bde623725ca31c9035a04bf2ef63208d266acd2bed8c2cb7d2b7d53ce6"}, + {file = "tokenizers-0.19.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:08a44864e42fa6d7d76d7be4bec62c9982f6f6248b4aa42f7302aa01e0abfd26"}, + {file = "tokenizers-0.19.1-cp38-none-win32.whl", hash = "sha256:1de5bc8652252d9357a666e609cb1453d4f8e160eb1fb2830ee369dd658e8975"}, + {file = "tokenizers-0.19.1-cp38-none-win_amd64.whl", hash = "sha256:0bcce02bf1ad9882345b34d5bd25ed4949a480cf0e656bbd468f4d8986f7a3f1"}, + {file = "tokenizers-0.19.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:0b9394bd204842a2a1fd37fe29935353742be4a3460b6ccbaefa93f58a8df43d"}, + {file = "tokenizers-0.19.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4692ab92f91b87769d950ca14dbb61f8a9ef36a62f94bad6c82cc84a51f76f6a"}, + {file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6258c2ef6f06259f70a682491c78561d492e885adeaf9f64f5389f78aa49a051"}, + {file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c85cf76561fbd01e0d9ea2d1cbe711a65400092bc52b5242b16cfd22e51f0c58"}, + {file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:670b802d4d82bbbb832ddb0d41df7015b3e549714c0e77f9bed3e74d42400fbe"}, + {file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:85aa3ab4b03d5e99fdd31660872249df5e855334b6c333e0bc13032ff4469c4a"}, + {file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cbf001afbbed111a79ca47d75941e9e5361297a87d186cbfc11ed45e30b5daba"}, + {file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c89aa46c269e4e70c4d4f9d6bc644fcc39bb409cb2a81227923404dd6f5227"}, + {file = "tokenizers-0.19.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:39c1ec76ea1027438fafe16ecb0fb84795e62e9d643444c1090179e63808c69d"}, + {file = "tokenizers-0.19.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c2a0d47a89b48d7daa241e004e71fb5a50533718897a4cd6235cb846d511a478"}, + {file = "tokenizers-0.19.1-cp39-none-win32.whl", hash = "sha256:61b7fe8886f2e104d4caf9218b157b106207e0f2a4905c9c7ac98890688aabeb"}, + {file = "tokenizers-0.19.1-cp39-none-win_amd64.whl", hash = "sha256:f97660f6c43efd3e0bfd3f2e3e5615bf215680bad6ee3d469df6454b8c6e8256"}, + {file = "tokenizers-0.19.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3b11853f17b54c2fe47742c56d8a33bf49ce31caf531e87ac0d7d13d327c9334"}, + {file = "tokenizers-0.19.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d26194ef6c13302f446d39972aaa36a1dda6450bc8949f5eb4c27f51191375bd"}, + {file = "tokenizers-0.19.1-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e8d1ed93beda54bbd6131a2cb363a576eac746d5c26ba5b7556bc6f964425594"}, + {file = "tokenizers-0.19.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca407133536f19bdec44b3da117ef0d12e43f6d4b56ac4c765f37eca501c7bda"}, + {file = "tokenizers-0.19.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce05fde79d2bc2e46ac08aacbc142bead21614d937aac950be88dc79f9db9022"}, + {file = "tokenizers-0.19.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:35583cd46d16f07c054efd18b5d46af4a2f070a2dd0a47914e66f3ff5efb2b1e"}, + {file = "tokenizers-0.19.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:43350270bfc16b06ad3f6f07eab21f089adb835544417afda0f83256a8bf8b75"}, + {file = "tokenizers-0.19.1-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b4399b59d1af5645bcee2072a463318114c39b8547437a7c2d6a186a1b5a0e2d"}, + {file = "tokenizers-0.19.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6852c5b2a853b8b0ddc5993cd4f33bfffdca4fcc5d52f89dd4b8eada99379285"}, + {file = "tokenizers-0.19.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcd266ae85c3d39df2f7e7d0e07f6c41a55e9a3123bb11f854412952deacd828"}, + {file = "tokenizers-0.19.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecb2651956eea2aa0a2d099434134b1b68f1c31f9a5084d6d53f08ed43d45ff2"}, + {file = "tokenizers-0.19.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:b279ab506ec4445166ac476fb4d3cc383accde1ea152998509a94d82547c8e2a"}, + {file = "tokenizers-0.19.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:89183e55fb86e61d848ff83753f64cded119f5d6e1f553d14ffee3700d0a4a49"}, + {file = "tokenizers-0.19.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2edbc75744235eea94d595a8b70fe279dd42f3296f76d5a86dde1d46e35f574"}, + {file = "tokenizers-0.19.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:0e64bfde9a723274e9a71630c3e9494ed7b4c0f76a1faacf7fe294cd26f7ae7c"}, + {file = "tokenizers-0.19.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0b5ca92bfa717759c052e345770792d02d1f43b06f9e790ca0a1db62838816f3"}, + {file = "tokenizers-0.19.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f8a20266e695ec9d7a946a019c1d5ca4eddb6613d4f466888eee04f16eedb85"}, + {file = "tokenizers-0.19.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63c38f45d8f2a2ec0f3a20073cccb335b9f99f73b3c69483cd52ebc75369d8a1"}, + {file = "tokenizers-0.19.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:dd26e3afe8a7b61422df3176e06664503d3f5973b94f45d5c45987e1cb711876"}, + {file = "tokenizers-0.19.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:eddd5783a4a6309ce23432353cdb36220e25cbb779bfa9122320666508b44b88"}, + {file = "tokenizers-0.19.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:56ae39d4036b753994476a1b935584071093b55c7a72e3b8288e68c313ca26e7"}, + {file = "tokenizers-0.19.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f9939ca7e58c2758c01b40324a59c034ce0cebad18e0d4563a9b1beab3018243"}, + {file = "tokenizers-0.19.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6c330c0eb815d212893c67a032e9dc1b38a803eccb32f3e8172c19cc69fbb439"}, + {file = "tokenizers-0.19.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec11802450a2487cdf0e634b750a04cbdc1c4d066b97d94ce7dd2cb51ebb325b"}, + {file = "tokenizers-0.19.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2b718f316b596f36e1dae097a7d5b91fc5b85e90bf08b01ff139bd8953b25af"}, + {file = "tokenizers-0.19.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:ed69af290c2b65169f0ba9034d1dc39a5db9459b32f1dd8b5f3f32a3fcf06eab"}, + {file = "tokenizers-0.19.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f8a9c828277133af13f3859d1b6bf1c3cb6e9e1637df0e45312e6b7c2e622b1f"}, + {file = "tokenizers-0.19.1.tar.gz", hash = "sha256:ee59e6680ed0fdbe6b724cf38bd70400a0c1dd623b07ac729087270caeac88e3"}, ] [package.dependencies] -huggingface_hub = ">=0.16.4,<1.0" +huggingface-hub = ">=0.16.4,<1.0" [package.extras] dev = ["tokenizers[testing]"] -docs = ["setuptools_rust", "sphinx", "sphinx_rtd_theme"] -testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"] +docs = ["setuptools-rust", "sphinx", "sphinx-rtd-theme"] +testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests", "ruff"] [[package]] name = "tomli" @@ -3001,13 +2980,13 @@ telegram = ["requests"] [[package]] name = "transformers" -version = "4.39.3" +version = "4.40.0" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" optional = false python-versions = ">=3.8.0" files = [ - {file = "transformers-4.39.3-py3-none-any.whl", hash = "sha256:7838034a12cca3168247f9d2d1dba6724c9de3ae0f73a108258c6b8fc5912601"}, - {file = "transformers-4.39.3.tar.gz", hash = "sha256:2586e5ff4150f122716fc40f5530e92871befc051848fbe82600969c535b762d"}, + {file = "transformers-4.40.0-py3-none-any.whl", hash = "sha256:92797ec3368ed4476a053529a4039a12ad09167d9e371981dda4afb4bdf590ac"}, + {file = "transformers-4.40.0.tar.gz", hash = "sha256:fdb01dfe6a492bd34e3fa2aefffa470b1d8a2341db47a932f83ed33839d96b03"}, ] [package.dependencies] @@ -3019,21 +2998,21 @@ pyyaml = ">=5.1" regex = "!=2019.12.17" requests = "*" safetensors = ">=0.4.1" -tokenizers = ">=0.14,<0.19" +tokenizers = ">=0.19,<0.20" tqdm = ">=4.27" [package.extras] accelerate = ["accelerate (>=0.21.0)"] agents = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "datasets (!=2.5.0)", "diffusers", "opencv-python", "sentencepiece (>=0.1.91,!=0.1.92)", "torch"] -all = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "av (==9.2.0)", "codecarbon (==1.2.0)", "decord (==0.6.0)", "flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1)", "librosa", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "phonemizer", "protobuf", "pyctcdecode (>=0.4.0)", "ray[tune] (>=2.7.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timm", "tokenizers (>=0.14,<0.19)", "torch", "torchaudio", "torchvision"] +all = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "av (==9.2.0)", "codecarbon (==1.2.0)", "decord (==0.6.0)", "flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1)", "librosa", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "phonemizer", "protobuf", "pyctcdecode (>=0.4.0)", "ray[tune] (>=2.7.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timm", "tokenizers (>=0.19,<0.20)", "torch", "torchaudio", "torchvision"] audio = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)"] codecarbon = ["codecarbon (==1.2.0)"] deepspeed = ["accelerate (>=0.21.0)", "deepspeed (>=0.9.3)"] deepspeed-testing = ["GitPython (<3.1.19)", "accelerate (>=0.21.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "deepspeed (>=0.9.3)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "hf-doc-builder (>=0.3.0)", "nltk", "optuna", "parameterized", "protobuf", "psutil", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "timeout-decorator"] -dev = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "av (==9.2.0)", "beautifulsoup4", "codecarbon (==1.2.0)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "decord (==0.6.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "flax (>=0.4.1,<=0.7.0)", "fugashi (>=1.0)", "hf-doc-builder", "hf-doc-builder (>=0.3.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1)", "librosa", "nltk", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "timm", "tokenizers (>=0.14,<0.19)", "torch", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] -dev-tensorflow = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "hf-doc-builder", "hf-doc-builder (>=0.3.0)", "isort (>=5.5.4)", "kenlm", "keras-nlp (>=0.3.1)", "librosa", "nltk", "onnxconverter-common", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "tokenizers (>=0.14,<0.19)", "urllib3 (<2.0.0)"] -dev-torch = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "beautifulsoup4", "codecarbon (==1.2.0)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "fugashi (>=1.0)", "hf-doc-builder", "hf-doc-builder (>=0.3.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "kenlm", "librosa", "nltk", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "timeout-decorator", "timm", "tokenizers (>=0.14,<0.19)", "torch", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] -docs = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "av (==9.2.0)", "codecarbon (==1.2.0)", "decord (==0.6.0)", "flax (>=0.4.1,<=0.7.0)", "hf-doc-builder", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1)", "librosa", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "phonemizer", "protobuf", "pyctcdecode (>=0.4.0)", "ray[tune] (>=2.7.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timm", "tokenizers (>=0.14,<0.19)", "torch", "torchaudio", "torchvision"] +dev = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "av (==9.2.0)", "beautifulsoup4", "codecarbon (==1.2.0)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "decord (==0.6.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "flax (>=0.4.1,<=0.7.0)", "fugashi (>=1.0)", "hf-doc-builder", "hf-doc-builder (>=0.3.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1)", "librosa", "nltk", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "timm", "tokenizers (>=0.19,<0.20)", "torch", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] +dev-tensorflow = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "hf-doc-builder", "hf-doc-builder (>=0.3.0)", "isort (>=5.5.4)", "kenlm", "keras-nlp (>=0.3.1)", "librosa", "nltk", "onnxconverter-common", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timeout-decorator", "tokenizers (>=0.19,<0.20)", "urllib3 (<2.0.0)"] +dev-torch = ["GitPython (<3.1.19)", "Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "beautifulsoup4", "codecarbon (==1.2.0)", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "fugashi (>=1.0)", "hf-doc-builder", "hf-doc-builder (>=0.3.0)", "ipadic (>=1.0.0,<2.0)", "isort (>=5.5.4)", "kenlm", "librosa", "nltk", "onnxruntime (>=1.4.0)", "onnxruntime-tools (>=1.4.2)", "optuna", "parameterized", "phonemizer", "protobuf", "psutil", "pyctcdecode (>=0.4.0)", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "ray[tune] (>=2.7.0)", "rhoknp (>=1.1.0,<1.3.1)", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "scikit-learn", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "sudachidict-core (>=20220729)", "sudachipy (>=0.6.6)", "tensorboard", "timeout-decorator", "timm", "tokenizers (>=0.19,<0.20)", "torch", "torchaudio", "torchvision", "unidic (>=1.0.2)", "unidic-lite (>=1.0.7)", "urllib3 (<2.0.0)"] +docs = ["Pillow (>=10.0.1,<=15.0)", "accelerate (>=0.21.0)", "av (==9.2.0)", "codecarbon (==1.2.0)", "decord (==0.6.0)", "flax (>=0.4.1,<=0.7.0)", "hf-doc-builder", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "kenlm", "keras-nlp (>=0.3.1)", "librosa", "onnxconverter-common", "optax (>=0.0.8,<=0.1.4)", "optuna", "phonemizer", "protobuf", "pyctcdecode (>=0.4.0)", "ray[tune] (>=2.7.0)", "sentencepiece (>=0.1.91,!=0.1.92)", "sigopt", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx", "timm", "tokenizers (>=0.19,<0.20)", "torch", "torchaudio", "torchvision"] docs-specific = ["hf-doc-builder"] flax = ["flax (>=0.4.1,<=0.7.0)", "jax (>=0.4.1,<=0.4.13)", "jaxlib (>=0.4.1,<=0.4.13)", "optax (>=0.0.8,<=0.1.4)"] flax-speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)"] @@ -3054,16 +3033,16 @@ serving = ["fastapi", "pydantic", "starlette", "uvicorn"] sigopt = ["sigopt"] sklearn = ["scikit-learn"] speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)", "torchaudio"] -testing = ["GitPython (<3.1.19)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "hf-doc-builder (>=0.3.0)", "nltk", "parameterized", "protobuf", "psutil", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "tensorboard", "timeout-decorator"] +testing = ["GitPython (<3.1.19)", "beautifulsoup4", "cookiecutter (==1.7.3)", "datasets (!=2.5.0)", "dill (<0.3.5)", "evaluate (>=0.2.0)", "faiss-cpu", "hf-doc-builder (>=0.3.0)", "nltk", "parameterized", "protobuf", "psutil", "pydantic", "pytest (>=7.2.0,<8.0.0)", "pytest-timeout", "pytest-xdist", "rjieba", "rouge-score (!=0.0.7,!=0.0.8,!=0.1,!=0.1.1)", "ruff (==0.1.5)", "sacrebleu (>=1.4.12,<2.0.0)", "sacremoses", "sentencepiece (>=0.1.91,!=0.1.92)", "tensorboard", "timeout-decorator"] tf = ["keras-nlp (>=0.3.1)", "onnxconverter-common", "tensorflow (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx"] tf-cpu = ["keras-nlp (>=0.3.1)", "onnxconverter-common", "tensorflow-cpu (>=2.6,<2.16)", "tensorflow-text (<2.16)", "tf2onnx"] tf-speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)"] timm = ["timm"] -tokenizers = ["tokenizers (>=0.14,<0.19)"] +tokenizers = ["tokenizers (>=0.19,<0.20)"] torch = ["accelerate (>=0.21.0)", "torch"] torch-speech = ["kenlm", "librosa", "phonemizer", "pyctcdecode (>=0.4.0)", "torchaudio"] torch-vision = ["Pillow (>=10.0.1,<=15.0)", "torchvision"] -torchhub = ["filelock", "huggingface-hub (>=0.19.3,<1.0)", "importlib-metadata", "numpy (>=1.17)", "packaging (>=20.0)", "protobuf", "regex (!=2019.12.17)", "requests", "sentencepiece (>=0.1.91,!=0.1.92)", "tokenizers (>=0.14,<0.19)", "torch", "tqdm (>=4.27)"] +torchhub = ["filelock", "huggingface-hub (>=0.19.3,<1.0)", "importlib-metadata", "numpy (>=1.17)", "packaging (>=20.0)", "protobuf", "regex (!=2019.12.17)", "requests", "sentencepiece (>=0.1.91,!=0.1.92)", "tokenizers (>=0.19,<0.20)", "torch", "tqdm (>=4.27)"] video = ["av (==9.2.0)", "decord (==0.6.0)"] vision = ["Pillow (>=10.0.1,<=15.0)"] @@ -3473,4 +3452,4 @@ torch = ["torch"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.13" -content-hash = "2bbb3d5acafe4bd1a616106ad3956058078a1f54c9a906a0065ee474f5af407d" +content-hash = "438514f5cf9978fbd39b910596634e6ec4a6191d10026dafbb026808eb63c70b" diff --git a/server/pyproject.toml b/server/pyproject.toml index e7c576a8..ccfccdb2 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -24,9 +24,9 @@ opentelemetry-exporter-otlp = "^1.15.0" opentelemetry-instrumentation-grpc = "^0.36b0" hf-transfer = "^0.1.2" sentencepiece = "^0.1.97" -tokenizers = "^0.15.0" +tokenizers = "^0.19.1" huggingface-hub = "^0.19.3" -transformers = "^4.39" +transformers = "^4.40" einops = "^0.6.1" texttable = { version = "^1.6.7", optional = true } datasets = { version = "^2.14.0", optional = true } diff --git a/server/requirements_cuda.txt b/server/requirements_cuda.txt index 6ad5235a..5cd03130 100644 --- a/server/requirements_cuda.txt +++ b/server/requirements_cuda.txt @@ -5,7 +5,7 @@ click==8.1.7 ; python_version >= "3.9" and python_version < "3.13" colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") deprecated==1.2.14 ; python_version >= "3.9" and python_version < "3.13" einops==0.6.1 ; python_version >= "3.9" and python_version < "3.13" -filelock==3.13.3 ; python_version >= "3.9" and python_version < "3.13" +filelock==3.13.4 ; python_version >= "3.9" and python_version < "3.13" fsspec==2024.2.0 ; python_version >= "3.9" and python_version < "3.13" googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < "3.13" grpc-interceptor==0.15.4 ; python_version >= "3.9" and python_version < "3.13" @@ -14,7 +14,7 @@ grpcio-status==1.62.1 ; python_version >= "3.9" and python_version < "3.13" grpcio==1.62.1 ; python_version >= "3.9" and python_version < "3.13" hf-transfer==0.1.6 ; python_version >= "3.9" and python_version < "3.13" huggingface-hub==0.19.4 ; python_version >= "3.9" and python_version < "3.13" -idna==3.6 ; python_version >= "3.9" and python_version < "3.13" +idna==3.7 ; python_version >= "3.9" and python_version < "3.13" loguru==0.6.0 ; python_version >= "3.9" and python_version < "3.13" numpy==1.26.4 ; python_version >= "3.9" and python_version < "3.13" opentelemetry-api==1.15.0 ; python_version >= "3.9" and python_version < "3.13" @@ -30,15 +30,15 @@ packaging==24.0 ; python_version >= "3.9" and python_version < "3.13" pillow==10.3.0 ; python_version >= "3.9" and python_version < "3.13" protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.13" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" -regex==2023.12.25 ; python_version >= "3.9" and python_version < "3.13" +regex==2024.4.16 ; python_version >= "3.9" and python_version < "3.13" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.13" -safetensors==0.4.2 ; python_version >= "3.9" and python_version < "3.13" +safetensors==0.4.3 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.0 ; python_version >= "3.9" and python_version < "3.13" sentencepiece==0.1.99 ; python_version >= "3.9" and python_version < "3.13" -setuptools==69.2.0 ; python_version >= "3.9" and python_version < "3.13" -tokenizers==0.15.2 ; python_version >= "3.9" and python_version < "3.13" +setuptools==69.5.1 ; python_version >= "3.9" and python_version < "3.13" +tokenizers==0.19.1 ; python_version >= "3.9" and python_version < "3.13" tqdm==4.66.2 ; python_version >= "3.9" and python_version < "3.13" -transformers==4.39.3 ; python_version >= "3.9" and python_version < "3.13" +transformers==4.40.0 ; python_version >= "3.9" and python_version < "3.13" typer==0.6.1 ; python_version >= "3.9" and python_version < "3.13" typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.13" diff --git a/server/requirements_rocm.txt b/server/requirements_rocm.txt index 6ad5235a..5cd03130 100644 --- a/server/requirements_rocm.txt +++ b/server/requirements_rocm.txt @@ -5,7 +5,7 @@ click==8.1.7 ; python_version >= "3.9" and python_version < "3.13" colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") deprecated==1.2.14 ; python_version >= "3.9" and python_version < "3.13" einops==0.6.1 ; python_version >= "3.9" and python_version < "3.13" -filelock==3.13.3 ; python_version >= "3.9" and python_version < "3.13" +filelock==3.13.4 ; python_version >= "3.9" and python_version < "3.13" fsspec==2024.2.0 ; python_version >= "3.9" and python_version < "3.13" googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < "3.13" grpc-interceptor==0.15.4 ; python_version >= "3.9" and python_version < "3.13" @@ -14,7 +14,7 @@ grpcio-status==1.62.1 ; python_version >= "3.9" and python_version < "3.13" grpcio==1.62.1 ; python_version >= "3.9" and python_version < "3.13" hf-transfer==0.1.6 ; python_version >= "3.9" and python_version < "3.13" huggingface-hub==0.19.4 ; python_version >= "3.9" and python_version < "3.13" -idna==3.6 ; python_version >= "3.9" and python_version < "3.13" +idna==3.7 ; python_version >= "3.9" and python_version < "3.13" loguru==0.6.0 ; python_version >= "3.9" and python_version < "3.13" numpy==1.26.4 ; python_version >= "3.9" and python_version < "3.13" opentelemetry-api==1.15.0 ; python_version >= "3.9" and python_version < "3.13" @@ -30,15 +30,15 @@ packaging==24.0 ; python_version >= "3.9" and python_version < "3.13" pillow==10.3.0 ; python_version >= "3.9" and python_version < "3.13" protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.13" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" -regex==2023.12.25 ; python_version >= "3.9" and python_version < "3.13" +regex==2024.4.16 ; python_version >= "3.9" and python_version < "3.13" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.13" -safetensors==0.4.2 ; python_version >= "3.9" and python_version < "3.13" +safetensors==0.4.3 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.0 ; python_version >= "3.9" and python_version < "3.13" sentencepiece==0.1.99 ; python_version >= "3.9" and python_version < "3.13" -setuptools==69.2.0 ; python_version >= "3.9" and python_version < "3.13" -tokenizers==0.15.2 ; python_version >= "3.9" and python_version < "3.13" +setuptools==69.5.1 ; python_version >= "3.9" and python_version < "3.13" +tokenizers==0.19.1 ; python_version >= "3.9" and python_version < "3.13" tqdm==4.66.2 ; python_version >= "3.9" and python_version < "3.13" -transformers==4.39.3 ; python_version >= "3.9" and python_version < "3.13" +transformers==4.40.0 ; python_version >= "3.9" and python_version < "3.13" typer==0.6.1 ; python_version >= "3.9" and python_version < "3.13" typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.13" diff --git a/server/text_generation_server/utils/paged_attention.py b/server/text_generation_server/utils/paged_attention.py index 18e605b0..487a3a72 100644 --- a/server/text_generation_server/utils/paged_attention.py +++ b/server/text_generation_server/utils/paged_attention.py @@ -1,7 +1,6 @@ import torch -# vllm imports -from vllm._C import cache_ops, ops +from text_generation_server.utils.import_utils import IS_CUDA_SYSTEM, IS_ROCM_SYSTEM _PARTITION_SIZE = 512 @@ -13,7 +12,18 @@ def reshape_and_cache( value_cache: torch.Tensor, slots: torch.Tensor, ): - cache_ops.reshape_and_cache(key, value, key_cache, value_cache, slots, "auto", 1.0) + if IS_CUDA_SYSTEM: + from vllm._C import cache_ops + + cache_ops.reshape_and_cache( + key, value, key_cache, value_cache, slots, "auto", 1.0 + ) + elif IS_ROCM_SYSTEM: + from vllm import cache_ops + + cache_ops.reshape_and_cache(key, value, key_cache, value_cache, slots) + else: + raise ValueError("vllm is not supported on your system") def attention( @@ -55,21 +65,43 @@ def attention( # to parallelize. use_v1 = max_s <= 8192 and (max_num_partitions == 1 or num_seqs * num_heads > 512) if use_v1: - ops.paged_attention_v1( - out, - query, - key_cache, - value_cache, - kv_head_mapping, - softmax_scale, - block_tables, - input_lengths, - block_size, - max_s, - None, - "auto", - 1.0, - ) + if IS_CUDA_SYSTEM: + from vllm._C import ops + + ops.paged_attention_v1( + out, + query, + key_cache, + value_cache, + kv_head_mapping, + softmax_scale, + block_tables, + input_lengths, + block_size, + max_s, + None, + "auto", + 1.0, + ) + elif IS_ROCM_SYSTEM: + from vllm import attention_ops + + attention_ops.paged_attention_v1( + out, + query, + key_cache, + value_cache, + kv_head_mapping, + softmax_scale, + block_tables, + input_lengths, + block_size, + max_s, + None, + ) + else: + raise ValueError("vllm is not supported on your system") + else: # Run PagedAttention V2. assert _PARTITION_SIZE % block_size == 0 @@ -84,21 +116,46 @@ def attention( device=out.device, ) max_logits = torch.empty_like(exp_sums) - ops.paged_attention_v2( - out, - exp_sums, - max_logits, - tmp_output, - query, - key_cache, - value_cache, - kv_head_mapping, - softmax_scale, - block_tables, - input_lengths, - block_size, - max_s, - None, - "auto", - 1.0, - ) + + if IS_CUDA_SYSTEM: + from vllm._C import ops + + ops.paged_attention_v2( + out, + exp_sums, + max_logits, + tmp_output, + query, + key_cache, + value_cache, + kv_head_mapping, + softmax_scale, + block_tables, + input_lengths, + block_size, + max_s, + None, + "auto", + 1.0, + ) + elif IS_ROCM_SYSTEM: + from vllm import attention_ops + + attention_ops.paged_attention_v2( + out, + exp_sums, + max_logits, + tmp_output, + query, + key_cache, + value_cache, + kv_head_mapping, + softmax_scale, + block_tables, + input_lengths, + block_size, + max_s, + None, + ) + else: + raise ValueError("vllm is not supported on your system") From 2d0a7173d4891e7cd5f9b77f8e0987b82a339e51 Mon Sep 17 00:00:00 2001 From: OlivierDehaene <23298448+OlivierDehaene@users.noreply.github.com> Date: Thu, 18 Apr 2024 17:20:36 +0200 Subject: [PATCH 32/74] v2.0.1 --- Cargo.lock | 8 +- Cargo.toml | 2 +- docs/openapi.json | 2 +- .../test_flash_llama_simple.json | 2 +- ...t_flash_llama_completion_many_prompts.json | 2 +- ..._llama_completion_many_prompts_stream.json | 80 +++++++++---------- ..._flash_llama_completion_single_prompt.json | 2 +- .../test_flash_llama_grammar_tools.json | 2 +- .../test_flash_llama_grammar_tools_auto.json | 2 +- ...test_flash_llama_grammar_tools_choice.json | 2 +- ...test_flash_llama_grammar_tools_stream.json | 2 +- integration-tests/pyproject.toml | 2 +- server/pyproject.toml | 2 +- 13 files changed, 55 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6088d7b1..de54c536 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3393,7 +3393,7 @@ dependencies = [ [[package]] name = "text-generation-benchmark" -version = "2.0.0" +version = "2.0.1" dependencies = [ "average", "clap", @@ -3414,7 +3414,7 @@ dependencies = [ [[package]] name = "text-generation-client" -version = "2.0.0" +version = "2.0.1" dependencies = [ "futures", "grpc-metadata", @@ -3430,7 +3430,7 @@ dependencies = [ [[package]] name = "text-generation-launcher" -version = "2.0.0" +version = "2.0.1" dependencies = [ "clap", "ctrlc", @@ -3448,7 +3448,7 @@ dependencies = [ [[package]] name = "text-generation-router" -version = "2.0.0" +version = "2.0.1" dependencies = [ "async-stream", "axum", diff --git a/Cargo.toml b/Cargo.toml index fffe4ef7..593fd950 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ members = [ resolver = "2" [workspace.package] -version = "2.0.0" +version = "2.0.1" edition = "2021" authors = ["Olivier Dehaene"] homepage = "https://github.com/huggingface/text-generation-inference" diff --git a/docs/openapi.json b/docs/openapi.json index 3093e7e2..2a387c2f 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -10,7 +10,7 @@ "name": "Apache 2.0", "url": "https://www.apache.org/licenses/LICENSE-2.0" }, - "version": "2.0.0" + "version": "2.0.1" }, "paths": { "/": { diff --git a/integration-tests/models/__snapshots__/test_chat_llama/test_flash_llama_simple.json b/integration-tests/models/__snapshots__/test_chat_llama/test_flash_llama_simple.json index 0ff874f1..4cb548d2 100644 --- a/integration-tests/models/__snapshots__/test_chat_llama/test_flash_llama_simple.json +++ b/integration-tests/models/__snapshots__/test_chat_llama/test_flash_llama_simple.json @@ -17,7 +17,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native", + "system_fingerprint": "2.0.1-native", "usage": { "completion_tokens": 100, "prompt_tokens": 60, diff --git a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts.json b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts.json index 3fe0a482..99c33cf7 100644 --- a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts.json +++ b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts.json @@ -29,7 +29,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native", + "system_fingerprint": "2.0.1-native", "usage": { "completion_tokens": 36, "prompt_tokens": 8, diff --git a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts_stream.json b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts_stream.json index 702d48f4..d87071cf 100644 --- a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts_stream.json +++ b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_many_prompts_stream.json @@ -12,7 +12,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -27,7 +27,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -42,7 +42,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -57,7 +57,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -72,7 +72,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -87,7 +87,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -102,7 +102,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -117,7 +117,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -132,7 +132,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -147,7 +147,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -162,7 +162,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -177,7 +177,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -192,7 +192,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -207,7 +207,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -222,7 +222,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -237,7 +237,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -252,7 +252,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -267,7 +267,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -282,7 +282,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -297,7 +297,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -312,7 +312,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -327,7 +327,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -342,7 +342,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -357,7 +357,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -372,7 +372,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -387,7 +387,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -402,7 +402,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -417,7 +417,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -432,7 +432,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -447,7 +447,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -462,7 +462,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -477,7 +477,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -492,7 +492,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -507,7 +507,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -522,7 +522,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -537,7 +537,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -552,7 +552,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -567,7 +567,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -582,7 +582,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" }, { "choices": [ @@ -597,6 +597,6 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" } ] diff --git a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_single_prompt.json b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_single_prompt.json index 8b001a09..5aed4935 100644 --- a/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_single_prompt.json +++ b/integration-tests/models/__snapshots__/test_completion_prompts/test_flash_llama_completion_single_prompt.json @@ -11,7 +11,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native", + "system_fingerprint": "2.0.1-native", "usage": { "completion_tokens": 5, "prompt_tokens": 6, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json index 45f8ca99..a4c34a10 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools.json @@ -30,7 +30,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native", + "system_fingerprint": "2.0.1-native", "usage": { "completion_tokens": 37, "prompt_tokens": 524, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json index e0ed0947..04bcdc4e 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_auto.json @@ -30,7 +30,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native", + "system_fingerprint": "2.0.1-native", "usage": { "completion_tokens": 37, "prompt_tokens": 524, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json index b70c2d6f..603c90af 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_choice.json @@ -30,7 +30,7 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native", + "system_fingerprint": "2.0.1-native", "usage": { "completion_tokens": 48, "prompt_tokens": 320, diff --git a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json index 6787b39b..f72a5d38 100644 --- a/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json +++ b/integration-tests/models/__snapshots__/test_tools_llama/test_flash_llama_grammar_tools_stream.json @@ -23,5 +23,5 @@ "id": "", "model": "TinyLlama/TinyLlama-1.1B-Chat-v1.0", "object": "text_completion", - "system_fingerprint": "2.0.0-native" + "system_fingerprint": "2.0.1-native" } diff --git a/integration-tests/pyproject.toml b/integration-tests/pyproject.toml index 6923ff23..88e9761a 100644 --- a/integration-tests/pyproject.toml +++ b/integration-tests/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "text-generation-integration-tests" -version = "2.0.0" +version = "2.0.1" description = "Text Generation Inference integration tests" authors = ["Nicolas Patry "] diff --git a/server/pyproject.toml b/server/pyproject.toml index ccfccdb2..23dc5eee 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "text-generation-server" -version = "2.0.0" +version = "2.0.1" description = "Text Generation Inference Python gRPC Server" authors = ["Olivier Dehaene "] From 26b3916612bb85067b8328d988138f67453a89e1 Mon Sep 17 00:00:00 2001 From: fxmarty <9808326+fxmarty@users.noreply.github.com> Date: Mon, 22 Apr 2024 16:09:19 +0200 Subject: [PATCH 33/74] Make `--cuda-graphs` work as expected (bis) (#1768) This was ignored up to now, even with `--cuda-graphs 0`. With this fix, `--cuda-graphs` is obeyed to. --- launcher/src/main.rs | 1 + server/text_generation_server/models/flash_causal_lm.py | 2 ++ server/text_generation_server/models/globals.py | 5 ++++- server/text_generation_server/models/mamba.py | 2 ++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/launcher/src/main.rs b/launcher/src/main.rs index d904f91b..40e7364f 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -1379,6 +1379,7 @@ fn main() -> Result<(), LauncherError> { let cuda_graphs = match (&args.cuda_graphs, &args.quantize) { (Some(cuda_graphs), Some(_q)) => cuda_graphs.clone(), + (Some(cuda_graphs), None) => cuda_graphs.clone(), #[allow(deprecated)] ( None, diff --git a/server/text_generation_server/models/flash_causal_lm.py b/server/text_generation_server/models/flash_causal_lm.py index 2c440083..1189ccdd 100644 --- a/server/text_generation_server/models/flash_causal_lm.py +++ b/server/text_generation_server/models/flash_causal_lm.py @@ -816,6 +816,8 @@ class FlashCausalLM(Model): self.cuda_graph_warmup(bs, max_s, max_bt) except torch.cuda.OutOfMemoryError: logger.exception(f"Decode cuda graph warmup failed") + else: + logger.info(f"Cuda Graphs are disabled (CUDA_GRAPHS={CUDA_GRAPHS}).") return int(num_blocks * BLOCK_SIZE) diff --git a/server/text_generation_server/models/globals.py b/server/text_generation_server/models/globals.py index 6f554049..91b4225a 100644 --- a/server/text_generation_server/models/globals.py +++ b/server/text_generation_server/models/globals.py @@ -4,11 +4,14 @@ import os MEM_POOL = torch.cuda.graph_pool_handle() # This is overridden by the cli cuda_graphs = os.getenv("CUDA_GRAPHS") -if cuda_graphs is not None: +if cuda_graphs is not None and cuda_graphs != "0": try: cuda_graphs = [int(item) for item in cuda_graphs.split(",")] except Exception as e: raise RuntimeError( f"Could not parse cuda graphs {cuda_graphs}, expected comma separated list for batch sizes to run on: {e}" ) +else: + cuda_graphs = None + CUDA_GRAPHS = cuda_graphs diff --git a/server/text_generation_server/models/mamba.py b/server/text_generation_server/models/mamba.py index 07a81491..0884317e 100644 --- a/server/text_generation_server/models/mamba.py +++ b/server/text_generation_server/models/mamba.py @@ -474,6 +474,8 @@ class Mamba(Model): self.cuda_graph_warmup(bs) except Exception: logger.exception(f"Decode cuda graph warmup failed") + else: + logger.info(f"Cuda Graphs are disabled (CUDA_GRAPHS={CUDA_GRAPHS}).") return None From ed72e9212620d4de10fbe476f0b7af2ab94e4cd7 Mon Sep 17 00:00:00 2001 From: Moritz Laurer <41862082+MoritzLaurer@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:15:48 +0200 Subject: [PATCH 34/74] fix typos in docs and add small clarifications (#1790) # What does this PR do? Fix some small typos in the docs; add minor clarifications; add guidance to features on landing page ## Before submitting - [x] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? @OlivierDehaene --- docs/source/conceptual/guidance.md | 10 +++++----- docs/source/conceptual/speculation.md | 2 +- docs/source/conceptual/streaming.md | 4 ++-- docs/source/index.md | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/source/conceptual/guidance.md b/docs/source/conceptual/guidance.md index 0a3bbd60..a9ff61d8 100644 --- a/docs/source/conceptual/guidance.md +++ b/docs/source/conceptual/guidance.md @@ -1,6 +1,6 @@ # Guidance -Text Generation Inference (TGI) now supports [JSON and regex grammars](#grammar-and-constraints) and [tools and functions](#tools-and-functions) to help developer guide LLM responses to fit their needs. +Text Generation Inference (TGI) now supports [JSON and regex grammars](#grammar-and-constraints) and [tools and functions](#tools-and-functions) to help developers guide LLM responses to fit their needs. These feature are available starting from version `1.4.3`. They are accessible via the [text_generation](https://pypi.org/project/text-generation/) library and is compatible with OpenAI's client libraries. The following guide will walk you through the new features and how to use them! @@ -16,7 +16,7 @@ If you're not up to date, grab the latest version and let's get started! - [The Grammar Parameter](#the-grammar-parameter): Shape your AI's responses with precision. - [Constrain with Pydantic](#constrain-with-pydantic): Define a grammar using Pydantic models. -- [JSON Schema Integration](#json-schema-integration): Fine grain control over your requests via JSON schema. +- [JSON Schema Integration](#json-schema-integration): Fine-grained control over your requests via JSON schema. - [Using the client](#using-the-client): Use TGI's client libraries to shape the AI's responses. ### Tools and Functions @@ -72,9 +72,9 @@ curl localhost:3000/generate \ ``` -A grammar can be defined using Pydantic models, JSON schema, or regular expressions. The AI will then generate a response that conforms to the specified grammar. +A grammar can be defined using Pydantic models, JSON schemas, or regular expressions. The AI will then generate a response that conforms to the specified grammar. -> Note: A grammar must compile to a intermediate representation to constrain the output. Grammar compilation is a computationally expensive and may take a few seconds to complete on the first request. Subsequent requests will use the cached grammar and will be much faster. +> Note: A grammar must compile to an intermediate representation to constrain the output. Grammar compilation is a computationally expensive and may take a few seconds to complete on the first request. Subsequent requests will use the cached grammar and will be much faster. ### Constrain with Pydantic @@ -151,7 +151,7 @@ json_schema = { } data = { - "inputs": "[INST]convert to JSON: I saw a puppy a cat and a raccoon during my bike ride in the park [/INST]", + "inputs": "convert to JSON: I saw a puppy a cat and a raccoon during my bike ride in the park", "parameters": { "max_new_tokens": 200, "repetition_penalty": 1.3, diff --git a/docs/source/conceptual/speculation.md b/docs/source/conceptual/speculation.md index 071b7b68..f306c48a 100644 --- a/docs/source/conceptual/speculation.md +++ b/docs/source/conceptual/speculation.md @@ -36,7 +36,7 @@ In order to use medusa models in TGI, simply point to a medusa enabled model, an If you don't have a medusa model, or don't have the resource to fine-tune, you can try to use `n-gram`. -Ngram works by trying to find in the previous sequence existing tokens that match, and use those as speculation. +N-gram works by trying to find matching tokens in the previous sequence, and use those as speculation for generating new tokens. For example, if the tokens "np.mean" appear multiple times in the sequence, the model can speculate that the next continuation of the tokens "np." is probably also "mean". This is an extremely simple method, which works best for code, or highly repetitive text. This might not be beneficial, if the speculation misses too much. diff --git a/docs/source/conceptual/streaming.md b/docs/source/conceptual/streaming.md index 505a0d9e..71ec9b25 100644 --- a/docs/source/conceptual/streaming.md +++ b/docs/source/conceptual/streaming.md @@ -15,7 +15,7 @@ Token streaming is the mode in which the server returns the tokens one by one as /> -With token streaming, the server can start returning the tokens one by one before having to generate the whole response. Users can have a sense of the generation's quality earlier than the end of the generation. This has different positive effects: +With token streaming, the server can start returning the tokens one by one before having to generate the whole response. Users can have a sense of the generation's quality before the end of the generation. This has different positive effects: * Users can get results orders of magnitude earlier for extremely long queries. * Seeing something in progress allows users to stop the generation if it's not going in the direction they expect. @@ -116,7 +116,7 @@ curl -N 127.0.0.1:8080/generate_stream \ First, we need to install the `@huggingface/inference` library. `npm install @huggingface/inference` -If you're using the free Inference API, you can use `HfInference`. If you're using inference endpoints, you can use `HfInferenceEndpoint`. Let's +If you're using the free Inference API, you can use `HfInference`. If you're using inference endpoints, you can use `HfInferenceEndpoint`. We can create a `HfInferenceEndpoint` providing our endpoint URL and credential. diff --git a/docs/source/index.md b/docs/source/index.md index 8bf45dce..309442b1 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -18,8 +18,8 @@ Text Generation Inference implements many optimizations and features, such as: - Logits warper (temperature scaling, top-p, top-k, repetition penalty) - Stop sequences - Log probabilities -- Custom Prompt Generation: Easily generate text by providing custom prompts to guide the model's output. - Fine-tuning Support: Utilize fine-tuned models for specific tasks to achieve higher accuracy and performance. +- [Guidance](../conceptual/guidance): Enable function calling and tool-use by forcing the model to generate structured outputs based on your own predefined output schemas. Text Generation Inference is used in production by multiple projects, such as: From 455cada527152a7bd2e17385b705873fdb015e51 Mon Sep 17 00:00:00 2001 From: Lucain Date: Tue, 23 Apr 2024 16:22:12 +0200 Subject: [PATCH 35/74] Add attribute descriptions for `GenerateParameters` (#1798) Once https://github.com/huggingface/huggingface.js/pull/629 gets merged, we will rely on TGI's specs to generate jsonschema types for `text_generation` and `chat_completion`. This PR adds some documentation for `GenerationParameters`'s properties so that they get documented in the downstream tools (TGI docs but also `huggingface.js`/`huggingface_hub` inference clients). I mostly took inspiration from [the python client](https://github.com/huggingface/text-generation-inference/blob/main/clients/python/text_generation/types.py) for the descriptions. --- router/src/lib.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/router/src/lib.rs b/router/src/lib.rs index 53982c36..9e847fe2 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -168,9 +168,12 @@ pub struct Info { #[derive(Clone, Debug, Deserialize, ToSchema, Default)] pub(crate) struct GenerateParameters { + /// Generate best_of sequences and return the one if the highest token logprobs. #[serde(default)] #[schema(exclusive_minimum = 0, nullable = true, default = "null", example = 1)] pub best_of: Option, + + /// The value used to module the logits distribution. #[serde(default)] #[schema( exclusive_minimum = 0.0, @@ -179,6 +182,9 @@ pub(crate) struct GenerateParameters { example = 0.5 )] pub temperature: Option, + + /// The parameter for repetition penalty. 1.0 means no penalty. + /// See [this paper](https://arxiv.org/pdf/1909.05858.pdf) for more details. #[serde(default)] #[schema( exclusive_minimum = 0.0, @@ -187,6 +193,10 @@ pub(crate) struct GenerateParameters { example = 1.03 )] pub repetition_penalty: Option, + + /// The parameter for frequency penalty. 1.0 means no penalty + /// Penalize new tokens based on their existing frequency in the text so far, + /// decreasing the model's likelihood to repeat the same line verbatim. #[serde(default)] #[schema( exclusive_minimum = -2.0, @@ -195,9 +205,13 @@ pub(crate) struct GenerateParameters { example = 0.1 )] pub frequency_penalty: Option, + + /// The number of highest probability vocabulary tokens to keep for top-k-filtering. #[serde(default)] #[schema(exclusive_minimum = 0, nullable = true, default = "null", example = 10)] pub top_k: Option, + + /// Top-p value for nucleus sampling. #[serde(default)] #[schema( exclusive_minimum = 0.0, @@ -207,6 +221,9 @@ pub(crate) struct GenerateParameters { example = 0.95 )] pub top_p: Option, + + /// Typical Decoding mass + /// See [Typical Decoding for Natural Language Generation](https://arxiv.org/abs/2202.00666) for more information. #[serde(default)] #[schema( exclusive_minimum = 0.0, @@ -216,30 +233,48 @@ pub(crate) struct GenerateParameters { example = 0.95 )] pub typical_p: Option, + + /// Activate logits sampling. #[serde(default)] #[schema(default = "false", example = true)] pub do_sample: bool, + + /// Maximum number of tokens to generate. #[serde(default = "default_max_new_tokens")] #[schema(nullable = true, default = "100", example = "20")] pub max_new_tokens: Option, + + /// Whether to prepend the prompt to the generated text #[serde(default)] #[schema(nullable = true, default = "null", example = false)] pub return_full_text: Option, + + /// Stop generating tokens if a member of `stop` is generated. #[serde(default)] #[schema(inline, max_items = 4, example = json ! (["photographer"]))] pub stop: Vec, + + /// Truncate inputs tokens to the given size. #[serde(default)] #[schema(nullable = true, default = "null", example = "null")] pub truncate: Option, + + /// Watermarking with [A Watermark for Large Language Models](https://arxiv.org/abs/2301.10226). #[serde(default)] #[schema(default = "false", example = true)] pub watermark: bool, + + /// Whether to return generation details. #[serde(default)] #[schema(default = "true")] pub details: bool, + + /// Whether to return decoder input token logprobs and ids. #[serde(default)] #[schema(default = "false")] pub decoder_input_details: bool, + + /// Random sampling seed. #[serde(default)] #[schema( exclusive_minimum = 0, @@ -248,9 +283,13 @@ pub(crate) struct GenerateParameters { example = "null" )] pub seed: Option, + + /// The number of highest probability vocabulary tokens to keep for top-n-filtering. #[serde(default)] #[schema(exclusive_minimum = 0, nullable = true, default = "null", example = 5)] pub top_n_tokens: Option, + + /// Grammar constraints for the generation. #[serde(default)] #[schema(nullable = true, default = "null", example = "null")] pub grammar: Option, From 9be1db3101a9c02ecbffb56f4f97ac49d5441dbc Mon Sep 17 00:00:00 2001 From: drbh Date: Tue, 23 Apr 2024 10:26:54 -0400 Subject: [PATCH 36/74] feat: allow null eos and bos tokens in config (#1791) This PR resolves an issue loading in tokenizer_configs where the eos or bos token is null as in: [Qwen/Qwen1.5-72B-Chat](https://huggingface.co/Qwen/Qwen1.5-72B-Chat/blob/main/tokenizer_config.json) resolves: https://github.com/huggingface/text-generation-inference/issues/1545 and related to https://github.com/QwenLM/Qwen1.5/issues/162 --- router/src/lib.rs | 1 + router/src/main.rs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/router/src/lib.rs b/router/src/lib.rs index 9e847fe2..5e207a03 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -116,6 +116,7 @@ mod token_serde { )) } } + Value::Null => Ok(None), _ => Err(de::Error::custom("invalid token format")), } } diff --git a/router/src/main.rs b/router/src/main.rs index b77117a1..c7e3f90b 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -254,7 +254,10 @@ async fn main() -> Result<(), RouterError> { // Load tokenizer config if found locally, or check if we can get it from the API if needed let tokenizer_config = if let Some(path) = tokenizer_config_path { - tracing::info!("Using local tokenizer config from user specified path"); + tracing::info!( + "Using local tokenizer config from user specified path {}", + path + ); HubTokenizerConfig::from_file(&std::path::PathBuf::from(path)) } else if local_model { tracing::info!("Using local tokenizer config"); From 986b4044d17067c8ff851df800f22fa9fb2ace45 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 23 Apr 2024 18:40:05 +0200 Subject: [PATCH 37/74] Phi3 support (#1797) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- .../text_generation_server/models/__init__.py | 2 +- .../custom_modeling/flash_llama_modeling.py | 29 ++++++++++++++----- server/text_generation_server/utils/layers.py | 13 +++++++++ .../text_generation_server/utils/weights.py | 19 ++++++++---- 4 files changed, 49 insertions(+), 14 deletions(-) diff --git a/server/text_generation_server/models/__init__.py b/server/text_generation_server/models/__init__.py index 06792b0d..e4e8717d 100644 --- a/server/text_generation_server/models/__init__.py +++ b/server/text_generation_server/models/__init__.py @@ -327,7 +327,7 @@ def get_model( trust_remote_code=trust_remote_code, ) - elif model_type == "llama" or model_type == "baichuan": + elif model_type == "llama" or model_type == "baichuan" or model_type == "phi3": if FLASH_ATTENTION: return FlashLlama( model_id, diff --git a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py index 4cf0fcf2..6d796ac3 100644 --- a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py @@ -101,6 +101,13 @@ def load_attention(config, prefix, weights): weights=weights, bias=False, ) + elif config.model_type == "phi3": + return TensorParallelColumnLinear.load_qkv( + config, + prefix=f"{prefix}.qkv_proj", + weights=weights, + bias=False, + ) else: return TensorParallelColumnLinear.load_multi( config, @@ -257,13 +264,21 @@ class LlamaMLP(nn.Module): ) ) # Fuse gate and up proj - self.gate_up_proj = TensorParallelColumnLinear.load_multi( - config, - prefixes=[f"{prefix}.gate_proj", f"{prefix}.up_proj"], - weights=weights, - dim=0, - bias=False, - ) + if config.model_type == "phi3": + self.gate_up_proj = TensorParallelColumnLinear.load_gate_up( + config, + prefix=f"{prefix}.gate_up_proj", + weights=weights, + bias=False, + ) + else: + self.gate_up_proj = TensorParallelColumnLinear.load_multi( + config, + prefixes=[f"{prefix}.gate_proj", f"{prefix}.up_proj"], + weights=weights, + dim=0, + bias=False, + ) self.down_proj = TensorParallelRowLinear.load( config, prefix=f"{prefix}.down_proj", diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index 9cf5c80f..69bd5e88 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -696,6 +696,19 @@ class TensorParallelHead(SuperLayer): class TensorParallelColumnLinear(SuperLayer): + @classmethod + def load_gate_up(cls, config, prefix: str, weights, bias: bool): + """Specific method when the QKV was joined after the fact""" + weight = weights.get_weights_col_packed_gate_up( + prefix, quantize=config.quantize + ) + if bias: + raise NotImplementedError("packed_gate_up only implemented without bias") + else: + bias = None + linear = get_linear(weight, bias, config.quantize) + return cls(linear) + @classmethod def load_qkv(cls, config, prefix: str, weights, bias: bool): """Specific method when the QKV was joined after the fact""" diff --git a/server/text_generation_server/utils/weights.py b/server/text_generation_server/utils/weights.py index d0614346..da7aed1a 100644 --- a/server/text_generation_server/utils/weights.py +++ b/server/text_generation_server/utils/weights.py @@ -141,6 +141,12 @@ class Weights: return weight def get_weights_col_packed_qkv(self, prefix: str, quantize: str): + return self.get_weights_col_packed(prefix, quantize, 3) + + def get_weights_col_packed_gate_up(self, prefix: str, quantize: str): + return self.get_weights_col_packed(prefix, quantize, 2) + + def get_weights_col_packed(self, prefix: str, quantize: str, blocks: int): """ Highly specific when the underlying tensor is a simple cat of Q,K,V instead of being already alternating Q,K,V within the main tensor @@ -181,8 +187,8 @@ class Weights: else: slice_ = self._get_slice(f"{prefix}.weight") total_size = slice_.get_shape()[0] - assert total_size % 3 == 0, "Prepacked qkv is not divisible by 3" - single_size = total_size // 3 + assert total_size % blocks == 0, f"Prepacked is not divisible by {blocks}" + single_size = total_size // blocks world_size = self.process_group.size() rank = self.process_group.rank() @@ -192,10 +198,11 @@ class Weights: block_size = single_size // world_size start = rank * block_size stop = (rank + 1) * block_size - q = slice_[start:stop] - k = slice_[start + single_size : stop + single_size] - v = slice_[start + 2 * single_size : stop + 2 * single_size] - weight = torch.cat([q, k, v], dim=0) + tensors = [] + for i in range(blocks): + tensor = slice_[start + i * single_size : stop + i * single_size] + tensors.append(tensor) + weight = torch.cat(tensors, dim=0) weight = weight.to(device=self.device) weight = weight.to(dtype=self.dtype) return weight From bfddfa5955dd6558814d313e4364ddf534848632 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 23 Apr 2024 23:04:44 +0200 Subject: [PATCH 38/74] Idefics2. (#1756) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- docs/source/conceptual/speculation.md | 3 +- integration-tests/conftest.py | 8 + .../test_flash_idefics2_next_all_params.json | 89 + .../test_flash_idefics2_next_load.json | 7018 +++ .../test_flash_idefics2_next_simple.json | 73 + .../test_flash_llava_next_load.json | 39794 ++++++++-------- integration-tests/models/test_idefics2.py | 81 + router/client/src/client.rs | 6 +- router/src/config.rs | 53 +- router/src/validation.rs | 52 +- .../text_generation_server/models/__init__.py | 13 + .../custom_modeling/flash_mistral_modeling.py | 16 +- .../models/custom_modeling/idefics2.py | 829 + .../models/custom_modeling/llava_next.py | 43 +- .../models/custom_modeling/vlm.py | 28 + .../models/flash_mistral.py | 39 +- .../text_generation_server/models/idefics2.py | 51 + .../models/llava_next.py | 12 +- .../models/vlm_causal_lm.py | 116 +- 19 files changed, 28332 insertions(+), 19992 deletions(-) create mode 100644 integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_all_params.json create mode 100644 integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_load.json create mode 100644 integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_simple.json create mode 100644 integration-tests/models/test_idefics2.py create mode 100644 server/text_generation_server/models/custom_modeling/idefics2.py create mode 100644 server/text_generation_server/models/custom_modeling/vlm.py create mode 100644 server/text_generation_server/models/idefics2.py diff --git a/docs/source/conceptual/speculation.md b/docs/source/conceptual/speculation.md index f306c48a..79b1c82e 100644 --- a/docs/source/conceptual/speculation.md +++ b/docs/source/conceptual/speculation.md @@ -1,5 +1,6 @@ ## Speculation + Speculative decoding, assisted generation, Medusa, and others are a few different names for the same idea. The idea is to generate tokens *before* the large model actually runs, and only *check* if those tokens where valid. @@ -36,7 +37,7 @@ In order to use medusa models in TGI, simply point to a medusa enabled model, an If you don't have a medusa model, or don't have the resource to fine-tune, you can try to use `n-gram`. -N-gram works by trying to find matching tokens in the previous sequence, and use those as speculation for generating new tokens. For example, if the tokens "np.mean" appear multiple times in the sequence, the model can speculate that the next continuation of the tokens "np." is probably also "mean". +N-gram works by trying to find matching tokens in the previous sequence, and use those as speculation for generating new tokens. For example, if the tokens "np.mean" appear multiple times in the sequence, the model can speculate that the next continuation of the tokens "np." is probably also "mean". This is an extremely simple method, which works best for code, or highly repetitive text. This might not be beneficial, if the speculation misses too much. diff --git a/integration-tests/conftest.py b/integration-tests/conftest.py index cf0f498d..ae3f977b 100644 --- a/integration-tests/conftest.py +++ b/integration-tests/conftest.py @@ -293,6 +293,7 @@ def launcher(event_loop): dtype: Optional[str] = None, revision: Optional[str] = None, max_input_length: Optional[int] = None, + max_batch_prefill_tokens: Optional[int] = None, max_total_tokens: Optional[int] = None, ): port = random.randint(8000, 10_000) @@ -334,6 +335,9 @@ def launcher(event_loop): if max_input_length: args.append("--max-input-length") args.append(str(max_input_length)) + if max_batch_prefill_tokens: + args.append("--max-batch-prefill-tokens") + args.append(str(max_batch_prefill_tokens)) if max_total_tokens: args.append("--max-total-tokens") args.append(str(max_total_tokens)) @@ -371,6 +375,7 @@ def launcher(event_loop): dtype: Optional[str] = None, revision: Optional[str] = None, max_input_length: Optional[int] = None, + max_batch_prefill_tokens: Optional[int] = None, max_total_tokens: Optional[int] = None, ): port = random.randint(8000, 10_000) @@ -395,6 +400,9 @@ def launcher(event_loop): if max_input_length: args.append("--max-input-length") args.append(str(max_input_length)) + if max_batch_prefill_tokens: + args.append("--max-batch-prefill-tokens") + args.append(str(max_batch_prefill_tokens)) if max_total_tokens: args.append("--max-total-tokens") args.append(str(max_total_tokens)) diff --git a/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_all_params.json b/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_all_params.json new file mode 100644 index 00000000..45601505 --- /dev/null +++ b/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_all_params.json @@ -0,0 +1,89 @@ +{ + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 3735, + "logprob": -8.5625, + "text": "Test" + }, + { + "id": 2159, + "logprob": -10.78125, + "text": "request" + } + ], + "seed": 0, + "tokens": [ + { + "id": 288, + "logprob": -0.2854004, + "special": false, + "text": "ing" + }, + { + "id": 264, + "logprob": -0.37573242, + "special": false, + "text": " a" + }, + { + "id": 633, + "logprob": -0.09301758, + "special": false, + "text": " new" + }, + { + "id": 4480, + "logprob": -0.3322754, + "special": false, + "text": " feature" + }, + { + "id": 297, + "logprob": -0.8510742, + "special": false, + "text": " in" + }, + { + "id": 272, + "logprob": -0.13464355, + "special": false, + "text": " the" + }, + { + "id": 2039, + "logprob": 0.0, + "special": false, + "text": " game" + }, + { + "id": 28723, + "logprob": -0.89990234, + "special": false, + "text": "." + }, + { + "id": 13, + "logprob": 0.0, + "special": false, + "text": "\n" + }, + { + "id": 13, + "logprob": 0.0, + "special": false, + "text": "\n" + } + ], + "top_tokens": null + }, + "generated_text": "Test requesting a new feature in the game.\n\n" +} diff --git a/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_load.json b/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_load.json new file mode 100644 index 00000000..4bc90896 --- /dev/null +++ b/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_load.json @@ -0,0 +1,7018 @@ +[ + { + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 1247, + "logprob": -5.2421875, + "text": "User" + }, + { + "id": 28747, + "logprob": -6.9570312, + "text": ":" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -23.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -22.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -23.625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.5, + "text": "" + }, + { + "id": 32001, + "logprob": -19.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -23.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.328125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -23.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -23.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -23.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.75, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.25, + "text": "" + }, + { + "id": 32001, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.03125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.5, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.7265625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.5625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -14.8515625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.5, + "text": "" + }, + { + "id": 32001, + "logprob": -18.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.25, + "text": "" + }, + { + "id": 32001, + "logprob": -20.25, + "text": "" + }, + { + "id": 32001, + "logprob": -20.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.5, + "text": "" + }, + { + "id": 32001, + "logprob": -20.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.9453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.703125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.6875, + "text": "" + }, + { + "id": 32001, + "logprob": -22.625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.5625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.75, + "text": "" + }, + { + "id": 32001, + "logprob": -21.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.75, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.6875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.75, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8828125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.1171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0, + "text": "" + }, + { + "id": 32001, + "logprob": -20.75, + "text": "" + }, + { + "id": 32001, + "logprob": -16.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -22.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.5, + "text": "" + }, + { + "id": 32001, + "logprob": -17.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -22.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.75, + "text": "" + }, + { + "id": 32001, + "logprob": -16.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -22.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4296875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -13.6328125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -2.0429688, + "text": "" + }, + { + "id": 12018, + "logprob": -12.03125, + "text": "Write" + }, + { + "id": 528, + "logprob": -10.25, + "text": "me" + }, + { + "id": 264, + "logprob": -0.10437012, + "text": "a" + }, + { + "id": 2485, + "logprob": -4.5742188, + "text": "short" + }, + { + "id": 2838, + "logprob": -0.2277832, + "text": "story" + }, + { + "id": 32002, + "logprob": -10.84375, + "text": "" + }, + { + "id": 259, + "logprob": -20.1875, + "text": " " + }, + { + "id": 13, + "logprob": -8.7578125, + "text": "\n" + }, + { + "id": 7226, + "logprob": -10.421875, + "text": "Ass" + }, + { + "id": 11143, + "logprob": -13.640625, + "text": "istant" + }, + { + "id": 28747, + "logprob": -0.005619049, + "text": ":" + } + ], + "seed": null, + "tokens": [ + { + "id": 330, + "logprob": -0.12939453, + "special": false, + "text": " A" + }, + { + "id": 13088, + "logprob": -0.6660156, + "special": false, + "text": " chicken" + }, + { + "id": 349, + "logprob": -0.29638672, + "special": false, + "text": " is" + }, + { + "id": 6398, + "logprob": -0.05960083, + "special": false, + "text": " sitting" + }, + { + "id": 356, + "logprob": -0.26953125, + "special": false, + "text": " on" + }, + { + "id": 264, + "logprob": -0.1427002, + "special": false, + "text": " a" + }, + { + "id": 17972, + "logprob": -0.040649414, + "special": false, + "text": " pile" + }, + { + "id": 302, + "logprob": -0.0002708435, + "special": false, + "text": " of" + }, + { + "id": 2445, + "logprob": -0.09429932, + "special": false, + "text": " money" + }, + { + "id": 28723, + "logprob": -0.006931305, + "special": false, + "text": "." + } + ], + "top_tokens": null + }, + "generated_text": " A chicken is sitting on a pile of money." + }, + { + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 1247, + "logprob": -5.234375, + "text": "User" + }, + { + "id": 28747, + "logprob": -6.9648438, + "text": ":" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -23.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -22.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -23.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.5, + "text": "" + }, + { + "id": 32001, + "logprob": -19.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -23.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.328125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -23.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -23.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -23.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.75, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.25, + "text": "" + }, + { + "id": 32001, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.03125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.5, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.7265625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.5625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -14.8515625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.703125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.5, + "text": "" + }, + { + "id": 32001, + "logprob": -18.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.25, + "text": "" + }, + { + "id": 32001, + "logprob": -20.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.5, + "text": "" + }, + { + "id": 32001, + "logprob": -20.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.9453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.703125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.6875, + "text": "" + }, + { + "id": 32001, + "logprob": -22.625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.5625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.75, + "text": "" + }, + { + "id": 32001, + "logprob": -21.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.75, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.703125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.75, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.1171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0, + "text": "" + }, + { + "id": 32001, + "logprob": -20.75, + "text": "" + }, + { + "id": 32001, + "logprob": -16.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -22.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.5, + "text": "" + }, + { + "id": 32001, + "logprob": -17.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -22.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.75, + "text": "" + }, + { + "id": 32001, + "logprob": -16.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -22.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4296875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -2.0429688, + "text": "" + }, + { + "id": 12018, + "logprob": -12.03125, + "text": "Write" + }, + { + "id": 528, + "logprob": -10.2578125, + "text": "me" + }, + { + "id": 264, + "logprob": -0.10418701, + "text": "a" + }, + { + "id": 2485, + "logprob": -4.5664062, + "text": "short" + }, + { + "id": 2838, + "logprob": -0.22741699, + "text": "story" + }, + { + "id": 32002, + "logprob": -10.8515625, + "text": "" + }, + { + "id": 259, + "logprob": -20.203125, + "text": " " + }, + { + "id": 13, + "logprob": -8.7421875, + "text": "\n" + }, + { + "id": 7226, + "logprob": -10.4140625, + "text": "Ass" + }, + { + "id": 11143, + "logprob": -13.6328125, + "text": "istant" + }, + { + "id": 28747, + "logprob": -0.005580902, + "text": ":" + } + ], + "seed": null, + "tokens": [ + { + "id": 330, + "logprob": -0.1295166, + "special": false, + "text": " A" + }, + { + "id": 13088, + "logprob": -0.6669922, + "special": false, + "text": " chicken" + }, + { + "id": 349, + "logprob": -0.29711914, + "special": false, + "text": " is" + }, + { + "id": 6398, + "logprob": -0.059936523, + "special": false, + "text": " sitting" + }, + { + "id": 356, + "logprob": -0.27124023, + "special": false, + "text": " on" + }, + { + "id": 264, + "logprob": -0.140625, + "special": false, + "text": " a" + }, + { + "id": 17972, + "logprob": -0.04058838, + "special": false, + "text": " pile" + }, + { + "id": 302, + "logprob": -0.00027012825, + "special": false, + "text": " of" + }, + { + "id": 2445, + "logprob": -0.09503174, + "special": false, + "text": " money" + }, + { + "id": 28723, + "logprob": -0.006942749, + "special": false, + "text": "." + } + ], + "top_tokens": null + }, + "generated_text": " A chicken is sitting on a pile of money." + }, + { + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 1247, + "logprob": -5.2460938, + "text": "User" + }, + { + "id": 28747, + "logprob": -6.9570312, + "text": ":" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -23.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -22.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -23.625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.5, + "text": "" + }, + { + "id": 32001, + "logprob": -19.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -23.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.328125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -23.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -23.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -23.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.75, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.25, + "text": "" + }, + { + "id": 32001, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8359375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.03125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.5, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.7265625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.5625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -14.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -14.8515625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.0, + "text": "" + }, + { + "id": 32001, + "logprob": -17.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.5, + "text": "" + }, + { + "id": 32001, + "logprob": -18.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.25, + "text": "" + }, + { + "id": 32001, + "logprob": -20.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.9453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.703125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.6875, + "text": "" + }, + { + "id": 32001, + "logprob": -22.625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.5625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.75, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.703125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.75, + "text": "" + }, + { + "id": 32001, + "logprob": -18.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.1171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0, + "text": "" + }, + { + "id": 32001, + "logprob": -20.75, + "text": "" + }, + { + "id": 32001, + "logprob": -16.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -22.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.5, + "text": "" + }, + { + "id": 32001, + "logprob": -17.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -22.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.75, + "text": "" + }, + { + "id": 32001, + "logprob": -16.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -22.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.53125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4296875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0, + "text": "" + }, + { + "id": 32001, + "logprob": -21.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -2.0429688, + "text": "" + }, + { + "id": 12018, + "logprob": -12.0390625, + "text": "Write" + }, + { + "id": 528, + "logprob": -10.25, + "text": "me" + }, + { + "id": 264, + "logprob": -0.10443115, + "text": "a" + }, + { + "id": 2485, + "logprob": -4.5742188, + "text": "short" + }, + { + "id": 2838, + "logprob": -0.22729492, + "text": "story" + }, + { + "id": 32002, + "logprob": -10.84375, + "text": "" + }, + { + "id": 259, + "logprob": -20.1875, + "text": " " + }, + { + "id": 13, + "logprob": -8.7578125, + "text": "\n" + }, + { + "id": 7226, + "logprob": -10.4140625, + "text": "Ass" + }, + { + "id": 11143, + "logprob": -13.6328125, + "text": "istant" + }, + { + "id": 28747, + "logprob": -0.0056533813, + "text": ":" + } + ], + "seed": null, + "tokens": [ + { + "id": 330, + "logprob": -0.12963867, + "special": false, + "text": " A" + }, + { + "id": 13088, + "logprob": -0.6660156, + "special": false, + "text": " chicken" + }, + { + "id": 349, + "logprob": -0.29516602, + "special": false, + "text": " is" + }, + { + "id": 6398, + "logprob": -0.060028076, + "special": false, + "text": " sitting" + }, + { + "id": 356, + "logprob": -0.27075195, + "special": false, + "text": " on" + }, + { + "id": 264, + "logprob": -0.1427002, + "special": false, + "text": " a" + }, + { + "id": 17972, + "logprob": -0.04067993, + "special": false, + "text": " pile" + }, + { + "id": 302, + "logprob": -0.000269413, + "special": false, + "text": " of" + }, + { + "id": 2445, + "logprob": -0.09387207, + "special": false, + "text": " money" + }, + { + "id": 28723, + "logprob": -0.0069236755, + "special": false, + "text": "." + } + ], + "top_tokens": null + }, + "generated_text": " A chicken is sitting on a pile of money." + }, + { + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [ + { + "id": 1, + "logprob": null, + "text": "" + }, + { + "id": 1247, + "logprob": -5.2421875, + "text": "User" + }, + { + "id": 28747, + "logprob": -6.9570312, + "text": ":" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.25, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -23.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -22.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -23.625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.5, + "text": "" + }, + { + "id": 32001, + "logprob": -19.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -23.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.53125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.328125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -14.8828125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -23.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -23.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -23.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.75, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.34375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.0, + "text": "" + }, + { + "id": 32001, + "logprob": -18.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.25, + "text": "" + }, + { + "id": 32001, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8359375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.03125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.5, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.7265625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.5625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.578125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.25, + "text": "" + }, + { + "id": 32001, + "logprob": -17.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -14.8515625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.71875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.5, + "text": "" + }, + { + "id": 32001, + "logprob": -18.296875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.25, + "text": "" + }, + { + "id": 32001, + "logprob": -20.25, + "text": "" + }, + { + "id": 32001, + "logprob": -20.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.609375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.5, + "text": "" + }, + { + "id": 32001, + "logprob": -20.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.265625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.9453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.03125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.703125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.203125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.6875, + "text": "" + }, + { + "id": 32001, + "logprob": -22.625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.5625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.15625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.96875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.78125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.828125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.75, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.953125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.984375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.046875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.6875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -17.109375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.21875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.796875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.3125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.8125, + "text": "" + }, + { + "id": 32001, + "logprob": -19.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.09375, + "text": "" + }, + { + "id": 32001, + "logprob": -18.75, + "text": "" + }, + { + "id": 32001, + "logprob": -18.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -20.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.1171875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.0, + "text": "" + }, + { + "id": 32001, + "logprob": -20.75, + "text": "" + }, + { + "id": 32001, + "logprob": -16.25, + "text": "" + }, + { + "id": 32001, + "logprob": -19.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -21.59375, + "text": "" + }, + { + "id": 32001, + "logprob": -22.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.671875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.921875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.5, + "text": "" + }, + { + "id": 32001, + "logprob": -17.90625, + "text": "" + }, + { + "id": 32001, + "logprob": -22.1875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.734375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.40625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -22.28125, + "text": "" + }, + { + "id": 32001, + "logprob": -18.515625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4296875, + "text": "" + }, + { + "id": 32001, + "logprob": -19.765625, + "text": "" + }, + { + "id": 32001, + "logprob": -14.6484375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.46875, + "text": "" + }, + { + "id": 32001, + "logprob": -18.875, + "text": "" + }, + { + "id": 32001, + "logprob": -20.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.078125, + "text": "" + }, + { + "id": 32001, + "logprob": -16.4375, + "text": "" + }, + { + "id": 32001, + "logprob": -21.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.234375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.140625, + "text": "" + }, + { + "id": 32001, + "logprob": -21.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -20.015625, + "text": "" + }, + { + "id": 32001, + "logprob": -18.84375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.421875, + "text": "" + }, + { + "id": 32001, + "logprob": -16.890625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32001, + "logprob": -15.4140625, + "text": "" + }, + { + "id": 32001, + "logprob": -17.546875, + "text": "" + }, + { + "id": 32001, + "logprob": -21.859375, + "text": "" + }, + { + "id": 32001, + "logprob": -15.65625, + "text": "" + }, + { + "id": 32001, + "logprob": -16.484375, + "text": "" + }, + { + "id": 32001, + "logprob": -16.359375, + "text": "" + }, + { + "id": 32001, + "logprob": -19.9375, + "text": "" + }, + { + "id": 32001, + "logprob": -17.875, + "text": "" + }, + { + "id": 32001, + "logprob": -17.453125, + "text": "" + }, + { + "id": 32001, + "logprob": -20.390625, + "text": "" + }, + { + "id": 32001, + "logprob": -19.171875, + "text": "" + }, + { + "id": 32001, + "logprob": -15.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -2.0429688, + "text": "" + }, + { + "id": 12018, + "logprob": -12.03125, + "text": "Write" + }, + { + "id": 528, + "logprob": -10.25, + "text": "me" + }, + { + "id": 264, + "logprob": -0.10437012, + "text": "a" + }, + { + "id": 2485, + "logprob": -4.578125, + "text": "short" + }, + { + "id": 2838, + "logprob": -0.22924805, + "text": "story" + }, + { + "id": 32002, + "logprob": -10.84375, + "text": "" + }, + { + "id": 259, + "logprob": -20.171875, + "text": " " + }, + { + "id": 13, + "logprob": -8.765625, + "text": "\n" + }, + { + "id": 7226, + "logprob": -10.4140625, + "text": "Ass" + }, + { + "id": 11143, + "logprob": -13.640625, + "text": "istant" + }, + { + "id": 28747, + "logprob": -0.005744934, + "text": ":" + } + ], + "seed": null, + "tokens": [ + { + "id": 330, + "logprob": -0.12976074, + "special": false, + "text": " A" + }, + { + "id": 13088, + "logprob": -0.66308594, + "special": false, + "text": " chicken" + }, + { + "id": 349, + "logprob": -0.29541016, + "special": false, + "text": " is" + }, + { + "id": 6398, + "logprob": -0.05996704, + "special": false, + "text": " sitting" + }, + { + "id": 356, + "logprob": -0.27075195, + "special": false, + "text": " on" + }, + { + "id": 264, + "logprob": -0.14160156, + "special": false, + "text": " a" + }, + { + "id": 17972, + "logprob": -0.040863037, + "special": false, + "text": " pile" + }, + { + "id": 302, + "logprob": -0.00027036667, + "special": false, + "text": " of" + }, + { + "id": 2445, + "logprob": -0.093322754, + "special": false, + "text": " money" + }, + { + "id": 28723, + "logprob": -0.006931305, + "special": false, + "text": "." + } + ], + "top_tokens": null + }, + "generated_text": " A chicken is sitting on a pile of money." + } +] diff --git a/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_simple.json b/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_simple.json new file mode 100644 index 00000000..a3b18d0a --- /dev/null +++ b/integration-tests/models/__snapshots__/test_idefics2/test_flash_idefics2_next_simple.json @@ -0,0 +1,73 @@ +{ + "details": { + "best_of_sequences": null, + "finish_reason": "length", + "generated_tokens": 10, + "prefill": [], + "seed": null, + "tokens": [ + { + "id": 330, + "logprob": -0.13000488, + "special": false, + "text": " A" + }, + { + "id": 13088, + "logprob": -0.6713867, + "special": false, + "text": " chicken" + }, + { + "id": 349, + "logprob": -0.2980957, + "special": false, + "text": " is" + }, + { + "id": 6398, + "logprob": -0.060638428, + "special": false, + "text": " sitting" + }, + { + "id": 356, + "logprob": -0.27319336, + "special": false, + "text": " on" + }, + { + "id": 264, + "logprob": -0.140625, + "special": false, + "text": " a" + }, + { + "id": 17972, + "logprob": -0.040405273, + "special": false, + "text": " pile" + }, + { + "id": 302, + "logprob": -0.0002708435, + "special": false, + "text": " of" + }, + { + "id": 2445, + "logprob": -0.095336914, + "special": false, + "text": " money" + }, + { + "id": 28723, + "logprob": -0.0068359375, + "special": false, + "text": "." + } + ], + "top_tokens": null + }, + "generated_text": " A chicken is sitting on a pile of money." +} diff --git a/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_load.json b/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_load.json index 76b0154c..2007c0f2 100644 --- a/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_load.json +++ b/integration-tests/models/__snapshots__/test_llava_next/test_flash_llava_next_load.json @@ -27,12 +27,12 @@ }, { "id": 32000, - "logprob": -10.6875, + "logprob": -10.671875, "text": "" }, { "id": 32000, - "logprob": -15.8828125, + "logprob": -15.7109375, "text": "" }, { @@ -42,127 +42,12 @@ }, { "id": 32000, - "logprob": -10.03125, + "logprob": -10.0234375, "text": "" }, { "id": 32000, - "logprob": -10.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.5, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -16.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4296875, + "logprob": -10.1328125, "text": "" }, { @@ -172,242 +57,32 @@ }, { "id": 32000, - "logprob": -10.6484375, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -18.265625, + "logprob": -16.59375, "text": "" }, { "id": 32000, - "logprob": -10.8359375, + "logprob": -13.828125, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -9.890625, + "logprob": -10.1171875, "text": "" }, { "id": 32000, - "logprob": -10.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.75, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -18.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.5703125, + "logprob": -10.1640625, "text": "" }, { @@ -415,11 +90,336 @@ "logprob": -10.234375, "text": "" }, + { + "id": 32000, + "logprob": -10.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.3828125, + "text": "" + }, { "id": 32000, "logprob": -11.171875, "text": "" }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, { "id": 32000, "logprob": -14.6796875, @@ -432,7 +432,7 @@ }, { "id": 32000, - "logprob": -11.3359375, + "logprob": -11.34375, "text": "" }, { @@ -447,107 +447,12 @@ }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -11.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0, - "text": "" - }, - { - "id": 32000, - "logprob": -10.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2109375, + "logprob": -11.1015625, "text": "" }, { @@ -557,7 +462,102 @@ }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, "text": "" }, { @@ -565,21 +565,21 @@ "logprob": -11.5546875, "text": "" }, - { - "id": 32000, - "logprob": -11.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, { "id": 32000, "logprob": -11.2265625, "text": "" }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, { "id": 32000, "logprob": -9.984375, @@ -592,27 +592,17 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -11.09375, "text": "" }, { "id": 32000, - "logprob": -14.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, + "logprob": -14.046875, "text": "" }, { @@ -622,22 +612,7 @@ }, { "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.890625, + "logprob": -10.9609375, "text": "" }, { @@ -647,7 +622,32 @@ }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, "text": "" }, { @@ -657,27 +657,27 @@ }, { "id": 32000, - "logprob": -13.234375, + "logprob": -13.5234375, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.578125, "text": "" }, { @@ -687,22 +687,22 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -11.203125, + "logprob": -11.1953125, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.921875, "text": "" }, { @@ -712,7 +712,7 @@ }, { "id": 32000, - "logprob": -15.3828125, + "logprob": -15.390625, "text": "" }, { @@ -722,12 +722,12 @@ }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.421875, "text": "" }, { @@ -737,12 +737,12 @@ }, { "id": 32000, - "logprob": -11.3203125, + "logprob": -11.2890625, "text": "" }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.34375, "text": "" }, { @@ -757,37 +757,37 @@ }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -10.4375, + "logprob": -10.421875, "text": "" }, { "id": 32000, - "logprob": -10.65625, + "logprob": -10.5390625, "text": "" }, { "id": 32000, - "logprob": -10.4765625, + "logprob": -10.4609375, "text": "" }, { "id": 32000, - "logprob": -15.71875, + "logprob": -13.9765625, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.4609375, "text": "" }, { @@ -797,32 +797,7 @@ }, { "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.109375, + "logprob": -12.015625, "text": "" }, { @@ -832,22 +807,47 @@ }, { "id": 32000, - "logprob": -12.2421875, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -10.3515625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.3828125, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, "text": "" }, { @@ -862,7 +862,7 @@ }, { "id": 32000, - "logprob": -11.25, + "logprob": -11.2421875, "text": "" }, { @@ -872,12 +872,12 @@ }, { "id": 32000, - "logprob": -10.5703125, + "logprob": -10.5625, "text": "" }, { "id": 32000, - "logprob": -10.7109375, + "logprob": -10.7421875, "text": "" }, { @@ -892,27 +892,12 @@ }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -10.9921875, "text": "" }, { "id": 32000, - "logprob": -10.625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, + "logprob": -10.6171875, "text": "" }, { @@ -922,7 +907,22 @@ }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, "text": "" }, { @@ -942,22 +942,22 @@ }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -13.0859375, + "logprob": -13.2421875, "text": "" }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -10.3125, + "logprob": -10.2890625, "text": "" }, { @@ -967,117 +967,37 @@ }, { "id": 32000, - "logprob": -11.1953125, + "logprob": -10.9140625, "text": "" }, { "id": 32000, - "logprob": -11.25, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -11.2265625, + "logprob": -11.234375, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.515625, "text": "" }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.1328125, "text": "" }, { "id": 32000, - "logprob": -10.5703125, + "logprob": -10.5546875, "text": "" }, { "id": 32000, - "logprob": -10.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6015625, + "logprob": -10.359375, "text": "" }, { @@ -1085,6 +1005,86 @@ "logprob": -10.6171875, "text": "" }, + { + "id": 32000, + "logprob": -10.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.609375, + "text": "" + }, { "id": 32000, "logprob": -10.90625, @@ -1092,7 +1092,7 @@ }, { "id": 32000, - "logprob": -11.25, + "logprob": -11.2578125, "text": "" }, { @@ -1102,12 +1102,12 @@ }, { "id": 32000, - "logprob": -10.984375, + "logprob": -10.9921875, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.0390625, "text": "" }, { @@ -1122,62 +1122,62 @@ }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -10.765625, + "logprob": -10.7578125, "text": "" }, { "id": 32000, - "logprob": -13.0, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -11.4375, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.3828125, "text": "" }, { "id": 32000, - "logprob": -10.9375, + "logprob": -10.9296875, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.9921875, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.375, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -13.3203125, + "logprob": -13.328125, "text": "" }, { @@ -1192,7 +1192,7 @@ }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9609375, "text": "" }, { @@ -1207,37 +1207,37 @@ }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -11.1484375, + "logprob": -11.1640625, "text": "" }, { "id": 32000, - "logprob": -10.8671875, + "logprob": -10.859375, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.1328125, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.75, "text": "" }, { "id": 32000, - "logprob": -10.890625, + "logprob": -10.875, "text": "" }, { "id": 32000, - "logprob": -15.15625, + "logprob": -14.171875, "text": "" }, { @@ -1247,22 +1247,22 @@ }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -11.40625, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -14.265625, + "logprob": -14.2734375, "text": "" }, { "id": 32000, - "logprob": -13.5859375, + "logprob": -13.6171875, "text": "" }, { @@ -1272,12 +1272,12 @@ }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.8359375, "text": "" }, { @@ -1287,32 +1287,32 @@ }, { "id": 32000, - "logprob": -13.3125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -11.1484375, + "logprob": -11.171875, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.234375, + "logprob": -11.1875, "text": "" }, { @@ -1322,7 +1322,7 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.6640625, "text": "" }, { @@ -1332,42 +1332,17 @@ }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.1328125, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.1875, "text": "" }, { "id": 32000, - "logprob": -11.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.65625, + "logprob": -11.9453125, "text": "" }, { @@ -1377,12 +1352,37 @@ }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.203125, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, "text": "" }, { @@ -1392,12 +1392,12 @@ }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.546875, "text": "" }, { @@ -1407,22 +1407,12 @@ }, { "id": 32000, - "logprob": -11.2265625, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5546875, + "logprob": -11.6640625, "text": "" }, { @@ -1430,6 +1420,16 @@ "logprob": -12.2109375, "text": "" }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, { "id": 32000, "logprob": -11.7109375, @@ -1437,7 +1437,7 @@ }, { "id": 32000, - "logprob": -15.0546875, + "logprob": -15.0234375, "text": "" }, { @@ -1447,37 +1447,37 @@ }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.859375, "text": "" }, { "id": 32000, - "logprob": -13.1171875, + "logprob": -13.125, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.5546875, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.4921875, "text": "" }, { @@ -1492,22 +1492,22 @@ }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.6484375, "text": "" }, { "id": 32000, - "logprob": -11.8203125, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.90625, "text": "" }, { @@ -1517,7 +1517,7 @@ }, { "id": 32000, - "logprob": -13.03125, + "logprob": -13.046875, "text": "" }, { @@ -1527,7 +1527,7 @@ }, { "id": 32000, - "logprob": -13.15625, + "logprob": -13.140625, "text": "" }, { @@ -1537,27 +1537,27 @@ }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -13.765625, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -13.359375, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.2421875, "text": "" }, { @@ -1567,12 +1567,12 @@ }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -13.59375, + "logprob": -13.6015625, "text": "" }, { @@ -1587,27 +1587,27 @@ }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -13.6015625, + "logprob": -13.59375, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -14.6328125, + "logprob": -14.5703125, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.78125, "text": "" }, { @@ -1622,17 +1622,17 @@ }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -14.4375, + "logprob": -14.4296875, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.53125, "text": "" }, { @@ -1642,17 +1642,17 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.609375, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.171875, "text": "" }, { @@ -1667,42 +1667,42 @@ }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.1484375, "text": "" }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -13.7265625, + "logprob": -13.7109375, "text": "" }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -14.84375, + "logprob": -14.828125, "text": "" }, { @@ -1712,7 +1712,7 @@ }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.3359375, "text": "" }, { @@ -1727,7 +1727,7 @@ }, { "id": 32000, - "logprob": -15.78125, + "logprob": -15.765625, "text": "" }, { @@ -1737,32 +1737,32 @@ }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -13.28125, + "logprob": -13.2578125, "text": "" }, { "id": 32000, - "logprob": -13.5859375, + "logprob": -13.5546875, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -14.2734375, "text": "" }, { @@ -1772,32 +1772,32 @@ }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.2890625, "text": "" }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.7734375, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6953125, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -12.2421875, + "logprob": -12.234375, "text": "" }, { @@ -1812,22 +1812,22 @@ }, { "id": 32000, - "logprob": -15.78125, + "logprob": -15.796875, "text": "" }, { "id": 32000, - "logprob": -12.734375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -10.9765625, "text": "" }, { @@ -1837,7 +1837,7 @@ }, { "id": 32000, - "logprob": -14.7109375, + "logprob": -14.6953125, "text": "" }, { @@ -1847,17 +1847,17 @@ }, { "id": 32000, - "logprob": -13.3046875, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.2265625, "text": "" }, { @@ -1867,17 +1867,17 @@ }, { "id": 32000, - "logprob": -14.171875, + "logprob": -14.1875, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.1953125, "text": "" }, { @@ -1887,12 +1887,12 @@ }, { "id": 32000, - "logprob": -12.890625, + "logprob": -12.8828125, "text": "" }, { "id": 32000, - "logprob": -12.2890625, + "logprob": -12.296875, "text": "" }, { @@ -1902,12 +1902,12 @@ }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -15.2109375, + "logprob": -15.1875, "text": "" }, { @@ -1917,37 +1917,7 @@ }, { "id": 32000, - "logprob": -14.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, + "logprob": -14.421875, "text": "" }, { @@ -1957,72 +1927,102 @@ }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -10.984375, + "logprob": -13.7265625, "text": "" }, { "id": 32000, - "logprob": -12.5, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -11.859375, "text": "" }, { "id": 32000, - "logprob": -12.1796875, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -11.4296875, + "logprob": -13.9453125, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -13.21875, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -15.34375, + "logprob": -12.59375, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, "text": "" }, { @@ -2032,37 +2032,37 @@ }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -13.515625, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -10.8359375, + "logprob": -10.875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { @@ -2072,7 +2072,7 @@ }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.8359375, "text": "" }, { @@ -2092,7 +2092,7 @@ }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9765625, "text": "" }, { @@ -2102,12 +2102,12 @@ }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1796875, "text": "" }, { @@ -2117,17 +2117,17 @@ }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -12.984375, "text": "" }, { @@ -2147,27 +2147,27 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.40625, + "logprob": -11.421875, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.125, "text": "" }, { @@ -2177,17 +2177,22 @@ }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.40625, "text": "" }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.484375, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.15625, "text": "" }, { @@ -2197,57 +2202,52 @@ }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -12.3984375, "text": "" }, { "id": 32000, - "logprob": -12.375, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -14.6171875, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.390625, + "logprob": -11.3984375, "text": "" }, { @@ -2257,27 +2257,27 @@ }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -13.8671875, + "logprob": -13.875, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.109375, "text": "" }, { @@ -2287,27 +2287,27 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.2890625, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -13.5859375, + "logprob": -13.59375, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { @@ -2317,32 +2317,32 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -12.5, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.671875, "text": "" }, { @@ -2352,7 +2352,7 @@ }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.6875, "text": "" }, { @@ -2362,7 +2362,7 @@ }, { "id": 32000, - "logprob": -15.46875, + "logprob": -15.390625, "text": "" }, { @@ -2372,32 +2372,32 @@ }, { "id": 32000, - "logprob": -16.125, + "logprob": -16.140625, "text": "" }, { "id": 32000, - "logprob": -15.453125, + "logprob": -15.4921875, "text": "" }, { "id": 32000, - "logprob": -13.9453125, + "logprob": -13.9296875, "text": "" }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.609375, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -15.953125, + "logprob": -15.984375, "text": "" }, { @@ -2407,27 +2407,27 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.5, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -14.1796875, + "logprob": -14.1875, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.3515625, "text": "" }, { @@ -2442,37 +2442,37 @@ }, { "id": 32000, - "logprob": -14.859375, + "logprob": -14.8984375, "text": "" }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -14.2734375, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -12.734375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -12.96875, "text": "" }, { @@ -2487,7 +2487,7 @@ }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.96875, "text": "" }, { @@ -2497,7 +2497,7 @@ }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5390625, "text": "" }, { @@ -2507,32 +2507,32 @@ }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.53125, "text": "" }, { "id": 32000, - "logprob": -11.109375, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0546875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -12.3828125, + "logprob": -12.390625, "text": "" }, { @@ -2542,32 +2542,32 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.078125, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.828125, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -13.609375, + "logprob": -13.59375, "text": "" }, { @@ -2577,22 +2577,22 @@ }, { "id": 32000, - "logprob": -14.7890625, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -12.5546875, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.3984375, "text": "" }, { @@ -2602,7 +2602,7 @@ }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.5546875, "text": "" }, { @@ -2617,12 +2617,12 @@ }, { "id": 32000, - "logprob": -14.53125, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.625, "text": "" }, { @@ -2632,12 +2632,12 @@ }, { "id": 32000, - "logprob": -13.6796875, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -13.1953125, + "logprob": -13.28125, "text": "" }, { @@ -2652,22 +2652,22 @@ }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.46875, "text": "" }, { @@ -2677,27 +2677,27 @@ }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.8828125, "text": "" }, { "id": 32000, - "logprob": -13.0859375, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.2421875, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5234375, "text": "" }, { @@ -2707,42 +2707,42 @@ }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.4609375, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -15.5546875, + "logprob": -15.5390625, "text": "" }, { "id": 32000, - "logprob": -14.265625, + "logprob": -14.2578125, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.9296875, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1875, "text": "" }, { "id": 32000, - "logprob": -14.8203125, + "logprob": -14.796875, "text": "" }, { @@ -2757,7 +2757,7 @@ }, { "id": 32000, - "logprob": -13.1171875, + "logprob": -13.109375, "text": "" }, { @@ -2767,12 +2767,12 @@ }, { "id": 32000, - "logprob": -10.671875, + "logprob": -10.6796875, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -14.6640625, "text": "" }, { @@ -2787,27 +2787,27 @@ }, { "id": 32000, - "logprob": -11.2265625, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -14.4921875, + "logprob": -14.484375, "text": "" }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -16.234375, + "logprob": -16.21875, "text": "" }, { "id": 32000, - "logprob": -14.515625, + "logprob": -14.625, "text": "" }, { @@ -2817,12 +2817,12 @@ }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.578125, "text": "" }, { @@ -2832,12 +2832,42 @@ }, { "id": 32000, - "logprob": -13.015625, + "logprob": -12.984375, "text": "" }, { "id": 32000, - "logprob": -11.2578125, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, "text": "" }, { @@ -2847,62 +2877,32 @@ }, { "id": 32000, - "logprob": -13.78125, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -15.15625, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -15.46875, "text": "" }, { "id": 32000, - "logprob": -12.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0, - "text": "" - }, - { - "id": 32000, - "logprob": -15.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1328125, + "logprob": -11.1484375, "text": "" }, { @@ -2912,12 +2912,12 @@ }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -11.015625, "text": "" }, { @@ -2927,82 +2927,22 @@ }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.3984375, "text": "" }, { "id": 32000, - "logprob": -16.578125, + "logprob": -16.375, "text": "" }, { "id": 32000, - "logprob": -13.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.65625, + "logprob": -13.5625, "text": "" }, { @@ -3012,32 +2952,92 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -11.2109375, "text": "" }, { "id": 32000, - "logprob": -14.984375, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -14.6328125, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.6640625, "text": "" }, { "id": 32000, - "logprob": -10.59375, + "logprob": -11.8828125, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -9.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, "text": "" }, { @@ -3052,32 +3052,32 @@ }, { "id": 32000, - "logprob": -15.5234375, + "logprob": -15.5390625, "text": "" }, { "id": 32000, - "logprob": -15.265625, + "logprob": -15.2578125, "text": "" }, { "id": 32000, - "logprob": -14.15625, + "logprob": -14.1171875, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.7265625, "text": "" }, { @@ -3087,127 +3087,42 @@ }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -11.0, "text": "" }, { "id": 32000, - "logprob": -11.2734375, + "logprob": -11.296875, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -13.1171875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -13.625, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5859375, "text": "" }, { "id": 32000, - "logprob": -12.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.375, - "text": "" - }, - { - "id": 32000, - "logprob": -9.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2109375, + "logprob": -12.3828125, "text": "" }, { @@ -3217,12 +3132,42 @@ }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.25, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, "text": "" }, { @@ -3232,12 +3177,12 @@ }, { "id": 32000, - "logprob": -12.203125, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.3359375, "text": "" }, { @@ -3247,17 +3192,32 @@ }, { "id": 32000, - "logprob": -12.1796875, + "logprob": -12.359375, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -9.6953125, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, "text": "" }, { @@ -3267,72 +3227,112 @@ }, { "id": 32000, - "logprob": -12.015625, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -13.84375, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -10.0390625, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -13.5703125, "text": "" }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, "text": "" }, { @@ -3342,12 +3342,12 @@ }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.59375, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.1171875, "text": "" }, { @@ -3367,27 +3367,27 @@ }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -14.4921875, + "logprob": -14.5078125, "text": "" }, { "id": 32000, - "logprob": -13.2421875, + "logprob": -13.2265625, "text": "" }, { @@ -3407,32 +3407,32 @@ }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.4765625, "text": "" }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.6171875, "text": "" }, { @@ -3447,7 +3447,7 @@ }, { "id": 32000, - "logprob": -13.1171875, + "logprob": -13.125, "text": "" }, { @@ -3457,37 +3457,37 @@ }, { "id": 32000, - "logprob": -14.609375, + "logprob": -14.7890625, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.609375, "text": "" }, { @@ -3497,107 +3497,27 @@ }, { "id": 32000, - "logprob": -12.734375, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -12.9609375, + "logprob": -12.984375, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.046875, "text": "" }, { "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6796875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -16.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.234375, + "logprob": -13.40625, "text": "" }, { @@ -3607,62 +3527,47 @@ }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.015625, "text": "" }, { "id": 32000, - "logprob": -13.859375, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -15.0234375, "text": "" }, { "id": 32000, - "logprob": -14.296875, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -14.5, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -13.15625, + "logprob": -14.9453125, "text": "" }, { "id": 32000, - "logprob": -17.0625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -10.78125, "text": "" }, { "id": 32000, - "logprob": -14.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9140625, + "logprob": -13.9609375, "text": "" }, { @@ -3672,107 +3577,107 @@ }, { "id": 32000, - "logprob": -10.484375, + "logprob": -16.140625, "text": "" }, { "id": 32000, - "logprob": -13.1796875, + "logprob": -13.4609375, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.7265625, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.609375, "text": "" }, { "id": 32000, - "logprob": -14.03125, + "logprob": -13.234375, "text": "" }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.2578125, "text": "" }, { "id": 32000, - "logprob": -14.1875, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -16.890625, + "logprob": -13.8359375, "text": "" }, { "id": 32000, - "logprob": -14.0546875, + "logprob": -12.6171875, "text": "" }, { "id": 32000, - "logprob": -14.1171875, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -13.859375, + "logprob": -14.4765625, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -17.046875, "text": "" }, { "id": 32000, - "logprob": -13.390625, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -14.265625, "text": "" }, { "id": 32000, - "logprob": -14.78125, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -13.9375, "text": "" }, { "id": 32000, - "logprob": -11.453125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -10.46875, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -13.1640625, "text": "" }, { @@ -3782,17 +3687,112 @@ }, { "id": 32000, - "logprob": -12.765625, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -14.828125, + "logprob": -14.140625, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, "text": "" }, { @@ -3802,7 +3802,7 @@ }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.0625, "text": "" }, { @@ -3817,7 +3817,7 @@ }, { "id": 32000, - "logprob": -14.7109375, + "logprob": -14.6953125, "text": "" }, { @@ -3827,62 +3827,62 @@ }, { "id": 32000, - "logprob": -16.3125, + "logprob": -16.328125, "text": "" }, { "id": 32000, - "logprob": -15.0, + "logprob": -14.9921875, "text": "" }, { "id": 32000, - "logprob": -13.8046875, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -15.3671875, + "logprob": -15.40625, "text": "" }, { "id": 32000, - "logprob": -13.4921875, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -15.2734375, + "logprob": -15.2890625, "text": "" }, { "id": 32000, - "logprob": -13.6328125, + "logprob": -13.609375, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.3359375, "text": "" }, { "id": 32000, - "logprob": -15.8515625, + "logprob": -15.8359375, "text": "" }, { "id": 32000, - "logprob": -13.7734375, + "logprob": -13.765625, "text": "" }, { "id": 32000, - "logprob": -16.90625, + "logprob": -16.890625, "text": "" }, { @@ -3897,47 +3897,47 @@ }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.34375, "text": "" }, { "id": 32000, - "logprob": -13.484375, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.7734375, + "logprob": -13.75, "text": "" }, { "id": 32000, - "logprob": -13.5234375, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0546875, "text": "" }, { "id": 32000, - "logprob": -13.5625, + "logprob": -13.65625, "text": "" }, { @@ -3957,7 +3957,7 @@ }, { "id": 32000, - "logprob": -13.3125, + "logprob": -13.328125, "text": "" }, { @@ -3967,47 +3967,17 @@ }, { "id": 32000, - "logprob": -13.6328125, + "logprob": -13.640625, "text": "" }, { "id": 32000, - "logprob": -15.125, + "logprob": -15.15625, "text": "" }, { "id": 32000, - "logprob": -13.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.984375, + "logprob": -13.2421875, "text": "" }, { @@ -4015,6 +3985,36 @@ "logprob": -13.25, "text": "" }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, + "text": "" + }, { "id": 32000, "logprob": -11.625, @@ -4022,12 +4022,12 @@ }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.5390625, + "logprob": -12.578125, "text": "" }, { @@ -4037,7 +4037,7 @@ }, { "id": 32000, - "logprob": -13.96875, + "logprob": -13.9453125, "text": "" }, { @@ -4052,7 +4052,7 @@ }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.828125, "text": "" }, { @@ -4062,7 +4062,7 @@ }, { "id": 32000, - "logprob": -14.5859375, + "logprob": -14.578125, "text": "" }, { @@ -4077,27 +4077,27 @@ }, { "id": 32000, - "logprob": -14.53125, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -14.8984375, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.4609375, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -14.7734375, + "logprob": -14.78125, "text": "" }, { @@ -4112,17 +4112,17 @@ }, { "id": 32000, - "logprob": -13.5859375, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0859375, "text": "" }, { "id": 32000, - "logprob": -14.484375, + "logprob": -14.4765625, "text": "" }, { @@ -4132,7 +4132,7 @@ }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.2265625, "text": "" }, { @@ -4142,7 +4142,22 @@ }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, "text": "" }, { @@ -4152,22 +4167,7 @@ }, { "id": 32000, - "logprob": -12.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6171875, + "logprob": -13.65625, "text": "" }, { @@ -4177,22 +4177,22 @@ }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.6171875, "text": "" }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.7890625, "text": "" }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.25, "text": "" }, { @@ -4202,27 +4202,27 @@ }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -13.0, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -15.078125, + "logprob": -15.0703125, "text": "" }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9375, "text": "" }, { @@ -4232,7 +4232,7 @@ }, { "id": 32000, - "logprob": -10.5, + "logprob": -10.5078125, "text": "" }, { @@ -4247,17 +4247,17 @@ }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.0625, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.0390625, "text": "" }, { @@ -4272,12 +4272,22 @@ }, { "id": 32000, - "logprob": -12.5390625, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, "text": "" }, { @@ -4285,16 +4295,6 @@ "logprob": -12.0234375, "text": "" }, - { - "id": 32000, - "logprob": -13.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, { "id": 32000, "logprob": -14.1796875, @@ -4302,22 +4302,22 @@ }, { "id": 32000, - "logprob": -14.0859375, + "logprob": -14.078125, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -14.046875, + "logprob": -14.03125, "text": "" }, { "id": 32000, - "logprob": -13.0, + "logprob": -13.0625, "text": "" }, { @@ -4327,17 +4327,17 @@ }, { "id": 32000, - "logprob": -14.4609375, + "logprob": -14.46875, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -14.703125, "text": "" }, { "id": 32000, - "logprob": -14.3046875, + "logprob": -14.296875, "text": "" }, { @@ -4352,37 +4352,37 @@ }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -16.15625, + "logprob": -16.140625, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -13.6953125, + "logprob": -13.734375, "text": "" }, { @@ -4392,7 +4392,7 @@ }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.46875, "text": "" }, { @@ -4402,17 +4402,17 @@ }, { "id": 32000, - "logprob": -12.3828125, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.8984375, "text": "" }, { "id": 32000, - "logprob": -13.671875, + "logprob": -13.6953125, "text": "" }, { @@ -4427,12 +4427,12 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3515625, "text": "" }, { @@ -4442,32 +4442,32 @@ }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.46875, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -14.453125, + "logprob": -14.4609375, "text": "" }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.328125, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.6484375, "text": "" }, { @@ -4477,42 +4477,42 @@ }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9140625, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -11.2734375, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.046875, "text": "" }, { @@ -4522,12 +4522,12 @@ }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.09375, "text": "" }, { @@ -4537,17 +4537,17 @@ }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.84375, "text": "" }, { @@ -4557,12 +4557,12 @@ }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -13.6171875, + "logprob": -13.625, "text": "" }, { @@ -4572,17 +4572,17 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -14.046875, + "logprob": -14.0703125, "text": "" }, { @@ -4592,22 +4592,22 @@ }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.7890625, "text": "" }, { "id": 32000, - "logprob": -13.1953125, + "logprob": -13.2421875, "text": "" }, { "id": 32000, - "logprob": -13.4609375, + "logprob": -13.484375, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.7109375, "text": "" }, { @@ -4617,7 +4617,7 @@ }, { "id": 32000, - "logprob": -15.8125, + "logprob": -15.796875, "text": "" }, { @@ -4627,17 +4627,17 @@ }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -12.015625, "text": "" }, { @@ -4657,27 +4657,22 @@ }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8203125, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.7578125, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.625, + "logprob": -11.4765625, "text": "" }, { @@ -4687,7 +4682,12 @@ }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, "text": "" }, { @@ -4697,22 +4697,22 @@ }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.25, + "logprob": -13.0078125, "text": "" }, { "id": 32000, - "logprob": -15.2578125, + "logprob": -15.3828125, "text": "" }, { "id": 32000, - "logprob": -11.1875, + "logprob": -11.203125, "text": "" }, { @@ -4732,7 +4732,7 @@ }, { "id": 32000, - "logprob": -13.4375, + "logprob": -13.4453125, "text": "" }, { @@ -4742,7 +4742,7 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5078125, "text": "" }, { @@ -4752,12 +4752,12 @@ }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.15625, "text": "" }, { "id": 32000, - "logprob": -11.8203125, + "logprob": -11.8359375, "text": "" }, { @@ -4767,52 +4767,52 @@ }, { "id": 32000, - "logprob": -11.15625, + "logprob": -11.171875, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.2734375, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.046875, "text": "" }, { "id": 32000, - "logprob": -13.09375, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1640625, "text": "" }, { @@ -4822,12 +4822,17 @@ }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, "text": "" }, { @@ -4837,27 +4842,22 @@ }, { "id": 32000, - "logprob": -14.3203125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -14.296875, "text": "" }, { "id": 32000, - "logprob": -14.2734375, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -12.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.796875, + "logprob": -13.8046875, "text": "" }, { @@ -4872,17 +4872,17 @@ }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.03125, "text": "" }, { @@ -4892,262 +4892,22 @@ }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -14.0625, + "logprob": -13.90625, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4609375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.75, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6015625, + "logprob": -11.90625, "text": "" }, { @@ -5157,12 +4917,57 @@ }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, "text": "" }, { @@ -5172,32 +4977,27 @@ }, { "id": 32000, - "logprob": -12.078125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -14.796875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, + "logprob": -13.0390625, "text": "" }, { @@ -5207,17 +5007,217 @@ }, { "id": 32000, - "logprob": -11.1484375, + "logprob": -14.0390625, "text": "" }, { "id": 32000, - "logprob": -10.796875, + "logprob": -13.828125, "text": "" }, { "id": 32000, - "logprob": -10.953125, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9453125, "text": "" }, { @@ -5227,22 +5227,22 @@ }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.109375, + "logprob": -11.1015625, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -11.1484375, + "logprob": -11.15625, "text": "" }, { @@ -5257,12 +5257,12 @@ }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.09375, "text": "" }, { @@ -5272,7 +5272,7 @@ }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.96875, "text": "" }, { @@ -5282,87 +5282,12 @@ }, { "id": 32000, - "logprob": -12.828125, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -13.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3515625, + "logprob": -13.9609375, "text": "" }, { @@ -5372,182 +5297,7 @@ }, { "id": 32000, - "logprob": -14.5078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.953125, + "logprob": -13.46875, "text": "" }, { @@ -5557,12 +5307,7 @@ }, { "id": 32000, - "logprob": -13.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, + "logprob": -13.59375, "text": "" }, { @@ -5577,112 +5322,87 @@ }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -14.265625, "text": "" }, { "id": 32000, - "logprob": -14.25, + "logprob": -14.1640625, "text": "" }, { "id": 32000, - "logprob": -14.328125, + "logprob": -13.65625, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.2734375, "text": "" }, { "id": 32000, - "logprob": -15.3125, + "logprob": -14.09375, "text": "" }, { "id": 32000, - "logprob": -13.4296875, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -15.640625, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -12.3828125, "text": "" }, { "id": 32000, - "logprob": -12.2578125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -14.3515625, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -12.546875, + "logprob": -13.609375, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -11.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.984375, + "logprob": -12.1875, "text": "" }, { @@ -5692,262 +5412,87 @@ }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.6796875, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.421875, "text": "" }, { "id": 32000, - "logprob": -12.4375, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.1015625, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -14.5625, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -13.2578125, "text": "" }, { "id": 32000, - "logprob": -11.40625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -13.265625, + "logprob": -11.2578125, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -11.8828125, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -11.546875, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0, - "text": "" - }, - { - "id": 32000, - "logprob": -11.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.734375, + "logprob": -11.15625, "text": "" }, { @@ -5957,12 +5502,257 @@ }, { "id": 32000, - "logprob": -12.484375, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -13.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, "text": "" }, { @@ -5972,17 +5762,227 @@ }, { "id": 32000, - "logprob": -12.640625, + "logprob": -11.0625, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, "text": "" }, { @@ -5997,102 +5997,12 @@ }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.125, + "logprob": -12.390625, "text": "" }, { @@ -6102,7 +6012,97 @@ }, { "id": 32000, - "logprob": -11.625, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, "text": "" }, { @@ -6112,32 +6112,32 @@ }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -14.0, + "logprob": -13.984375, "text": "" }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.2265625, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.796875, "text": "" }, { @@ -6147,87 +6147,17 @@ }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -11.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5625, + "logprob": -11.59375, "text": "" }, { @@ -6237,27 +6167,97 @@ }, { "id": 32000, - "logprob": -10.4140625, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -10.875, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, "text": "" }, { @@ -6267,7 +6267,7 @@ }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.5, "text": "" }, { @@ -6282,322 +6282,12 @@ }, { "id": 32000, - "logprob": -14.15625, + "logprob": -14.171875, "text": "" }, { "id": 32000, - "logprob": -12.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.015625, + "logprob": -12.34375, "text": "" }, { @@ -6607,7 +6297,317 @@ }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, "text": "" }, { @@ -6617,7 +6617,7 @@ }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.65625, "text": "" }, { @@ -6627,7 +6627,7 @@ }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.59375, "text": "" }, { @@ -6647,7 +6647,7 @@ }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.296875, "text": "" }, { @@ -6657,27 +6657,27 @@ }, { "id": 32000, - "logprob": -11.1953125, + "logprob": -11.203125, "text": "" }, { "id": 32000, - "logprob": -10.984375, + "logprob": -10.9921875, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -11.4296875, + "logprob": -11.40625, "text": "" }, { "id": 32000, - "logprob": -12.5390625, + "logprob": -12.53125, "text": "" }, { @@ -6692,7 +6692,7 @@ }, { "id": 32000, - "logprob": -11.109375, + "logprob": -11.125, "text": "" }, { @@ -6702,17 +6702,17 @@ }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.921875, "text": "" }, { "id": 32000, - "logprob": -10.796875, + "logprob": -10.7890625, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -11.109375, "text": "" }, { @@ -6722,192 +6722,27 @@ }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -12.734375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.609375, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -12.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4921875, + "logprob": -12.7890625, "text": "" }, { @@ -6915,6 +6750,171 @@ "logprob": -12.28125, "text": "" }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, { "id": 32000, "logprob": -12.21875, @@ -6922,22 +6922,22 @@ }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.1875, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -11.2578125, + "logprob": -11.2421875, "text": "" }, { @@ -6972,17 +6972,17 @@ }, { "id": 32000, - "logprob": -11.40625, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.15625, "text": "" }, { @@ -6992,12 +6992,12 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2421875, "text": "" }, { @@ -7012,7 +7012,7 @@ }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.8671875, "text": "" }, { @@ -7022,62 +7022,62 @@ }, { "id": 32000, - "logprob": -15.796875, + "logprob": -15.765625, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.609375, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.34375, "text": "" }, { "id": 32000, - "logprob": -13.6640625, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -13.75, + "logprob": -13.7265625, "text": "" }, { "id": 32000, - "logprob": -13.515625, + "logprob": -13.53125, "text": "" }, { "id": 32000, - "logprob": -13.2421875, + "logprob": -13.25, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.6171875, "text": "" }, { "id": 32000, - "logprob": -13.796875, + "logprob": -13.8046875, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.375, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.171875, "text": "" }, { @@ -7092,17 +7092,17 @@ }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.640625, "text": "" }, { @@ -7112,17 +7112,17 @@ }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.59375, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.359375, "text": "" }, { @@ -7132,7 +7132,7 @@ }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0234375, "text": "" }, { @@ -7147,17 +7147,17 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.2578125, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.328125, "text": "" }, { @@ -7167,12 +7167,17 @@ }, { "id": 32000, - "logprob": -12.0, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, "text": "" }, { @@ -7182,57 +7187,22 @@ }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.0390625, "text": "" }, { "id": 32000, - "logprob": -11.046875, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -13.6640625, "text": "" }, { "id": 32000, - "logprob": -13.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, + "logprob": -12.6640625, "text": "" }, { @@ -7242,102 +7212,17 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -12.25, "text": "" }, { "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.59375, + "logprob": -11.7109375, "text": "" }, { @@ -7347,27 +7232,47 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.296875, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, "text": "" }, { @@ -7377,12 +7282,107 @@ }, { "id": 32000, - "logprob": -11.0703125, + "logprob": -13.1875, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, "text": "" }, { @@ -7402,7 +7402,7 @@ }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5546875, "text": "" }, { @@ -7412,37 +7412,37 @@ }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.2890625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -12.8984375, "text": "" }, { @@ -7462,42 +7462,42 @@ }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.53125, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.3515625, "text": "" }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.03125, "text": "" }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.96875, "text": "" }, { @@ -7507,47 +7507,47 @@ }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.390625, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -15.1484375, + "logprob": -15.1796875, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -14.7734375, + "logprob": -14.6484375, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.5703125, "text": "" }, { @@ -7567,37 +7567,37 @@ }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9609375, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.453125, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.8046875, "text": "" }, { @@ -7607,7 +7607,7 @@ }, { "id": 32000, - "logprob": -13.6171875, + "logprob": -13.7890625, "text": "" }, { @@ -7622,7 +7622,7 @@ }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.09375, "text": "" }, { @@ -7632,22 +7632,22 @@ }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -13.109375, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.015625, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { @@ -7657,17 +7657,17 @@ }, { "id": 32000, - "logprob": -11.3203125, + "logprob": -11.328125, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5859375, "text": "" }, { @@ -7677,27 +7677,27 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4609375, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.1328125, "text": "" }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.0625, "text": "" }, { @@ -7712,12 +7712,12 @@ }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.21875, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7421875, "text": "" }, { @@ -7732,42 +7732,42 @@ }, { "id": 32000, - "logprob": -13.15625, + "logprob": -13.203125, "text": "" }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -14.8515625, + "logprob": -14.6640625, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -15.1796875, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.53125, "text": "" }, { "id": 32000, - "logprob": -13.0078125, + "logprob": -12.9921875, "text": "" }, { @@ -7777,52 +7777,52 @@ }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -13.7578125, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -13.7421875, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -14.140625, + "logprob": -14.1015625, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.703125, "text": "" }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.7265625, "text": "" }, { @@ -7832,27 +7832,27 @@ }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.75, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -11.8203125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -11.25, + "logprob": -11.34375, "text": "" }, { @@ -7867,37 +7867,37 @@ }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -15.15625, + "logprob": -15.1875, "text": "" }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.515625, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5703125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.703125, "text": "" }, { @@ -7907,22 +7907,22 @@ }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -14.578125, + "logprob": -14.5546875, "text": "" }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.390625, "text": "" }, { @@ -7942,12 +7942,12 @@ }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -13.25, + "logprob": -13.2421875, "text": "" }, { @@ -7962,32 +7962,32 @@ }, { "id": 32000, - "logprob": -11.3671875, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -11.1953125, + "logprob": -11.1875, "text": "" }, { "id": 32000, - "logprob": -13.390625, + "logprob": -13.359375, "text": "" }, { @@ -7997,27 +7997,27 @@ }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.3203125, "text": "" }, { @@ -8027,42 +8027,42 @@ }, { "id": 32000, - "logprob": -13.125, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -11.6796875, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.828125, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -11.5390625, "text": "" }, { @@ -8072,97 +8072,32 @@ }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -11.3046875, + "logprob": -11.3125, "text": "" }, { "id": 32000, - "logprob": -14.2265625, + "logprob": -14.265625, "text": "" }, { "id": 32000, - "logprob": -12.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3046875, + "logprob": -12.0078125, "text": "" }, { @@ -8177,7 +8112,72 @@ }, { "id": 32000, - "logprob": -11.328125, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, "text": "" }, { @@ -8187,7 +8187,7 @@ }, { "id": 32000, - "logprob": -11.25, + "logprob": -11.2421875, "text": "" }, { @@ -8202,67 +8202,67 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.7265625, "text": "" }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.046875, "text": "" }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3828125, "text": "" }, { "id": 32000, - "logprob": -12.546875, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -14.1796875, + "logprob": -14.15625, "text": "" }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5703125, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.65625, "text": "" }, { @@ -8272,227 +8272,17 @@ }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.6484375, "text": "" }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -11.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0390625, + "logprob": -11.7734375, "text": "" }, { @@ -8502,42 +8292,62 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -14.03125, + "logprob": -14.6015625, "text": "" }, { "id": 32000, - "logprob": -14.75, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -10.0234375, + "logprob": -11.8828125, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -13.078125, "text": "" }, { "id": 32000, - "logprob": -14.046875, + "logprob": -11.234375, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -14.8984375, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7109375, "text": "" }, { @@ -8547,62 +8357,67 @@ }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.7890625, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -10.7578125, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.9609375, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.09375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.7890625, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, "text": "" }, { @@ -8612,12 +8427,72 @@ }, { "id": 32000, - "logprob": -12.953125, + "logprob": -11.2109375, "text": "" }, { "id": 32000, - "logprob": -10.40625, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, "text": "" }, { @@ -8627,12 +8502,137 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -11.3828125, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -14.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, "text": "" }, { @@ -8647,92 +8647,47 @@ }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.390625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3515625, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -11.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.109375, + "logprob": -11.71875, "text": "" }, { @@ -8742,52 +8697,27 @@ }, { "id": 32000, - "logprob": -14.4453125, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -14.8671875, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, + "logprob": -11.8828125, "text": "" }, { @@ -8795,6 +8725,76 @@ "logprob": -12.1015625, "text": "" }, + { + "id": 32000, + "logprob": -15.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, { "id": 32000, "logprob": -12.6015625, @@ -8802,12 +8802,12 @@ }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.84375, "text": "" }, { @@ -8817,27 +8817,27 @@ }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4609375, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.4765625, "text": "" }, { @@ -8852,7 +8852,7 @@ }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.953125, "text": "" }, { @@ -8862,37 +8862,37 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -13.2265625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -10.84375, + "logprob": -10.8203125, "text": "" }, { "id": 32000, - "logprob": -10.6796875, + "logprob": -10.6953125, "text": "" }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9375, "text": "" }, { @@ -8902,22 +8902,22 @@ }, { "id": 32000, - "logprob": -10.4921875, + "logprob": -10.484375, "text": "" }, { "id": 32000, - "logprob": -11.1875, + "logprob": -11.1796875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9609375, "text": "" }, { @@ -8937,12 +8937,12 @@ }, { "id": 32000, - "logprob": -11.125, + "logprob": -11.140625, "text": "" }, { "id": 32000, - "logprob": -11.109375, + "logprob": -11.09375, "text": "" }, { @@ -8952,7 +8952,7 @@ }, { "id": 32000, - "logprob": -15.0546875, + "logprob": -15.578125, "text": "" }, { @@ -8962,62 +8962,62 @@ }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -11.0, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -11.0703125, + "logprob": -11.0625, "text": "" }, { "id": 32000, - "logprob": -13.6796875, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -13.5234375, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -14.015625, + "logprob": -14.0234375, "text": "" }, { @@ -9032,32 +9032,32 @@ }, { "id": 32000, - "logprob": -12.2421875, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -12.3359375, "text": "" }, { @@ -9067,32 +9067,32 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -14.6796875, + "logprob": -14.6875, "text": "" }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.0625, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.8125, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9296875, "text": "" }, { @@ -9107,12 +9107,12 @@ }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.46875, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0703125, "text": "" }, { @@ -9137,17 +9137,17 @@ }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6640625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -10.84375, + "logprob": -10.8671875, "text": "" }, { @@ -9157,7 +9157,7 @@ }, { "id": 32000, - "logprob": -11.015625, + "logprob": -11.0078125, "text": "" }, { @@ -9167,17 +9167,17 @@ }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -10.796875, "text": "" }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.59375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { @@ -9202,12 +9202,12 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -10.8359375, + "logprob": -10.9375, "text": "" }, { @@ -9217,12 +9217,12 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -12.0, "text": "" }, { @@ -9232,12 +9232,12 @@ }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.3671875, "text": "" }, { "id": 32000, - "logprob": -9.6171875, + "logprob": -9.625, "text": "" }, { @@ -9247,42 +9247,42 @@ }, { "id": 32000, - "logprob": -13.046875, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -13.484375, + "logprob": -13.3359375, "text": "" }, { "id": 32000, - "logprob": -14.1328125, + "logprob": -14.015625, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -13.484375, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -13.5625, + "logprob": -13.5, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.71875, "text": "" }, { @@ -9297,27 +9297,27 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -11.2265625, + "logprob": -11.21875, "text": "" }, { @@ -9327,7 +9327,7 @@ }, { "id": 32000, - "logprob": -12.2890625, + "logprob": -12.296875, "text": "" }, { @@ -9342,7 +9342,7 @@ }, { "id": 32000, - "logprob": -15.671875, + "logprob": -15.6953125, "text": "" }, { @@ -9352,7 +9352,7 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5859375, "text": "" }, { @@ -9367,12 +9367,12 @@ }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -12.328125, "text": "" }, { @@ -9382,17 +9382,17 @@ }, { "id": 32000, - "logprob": -10.9375, + "logprob": -10.9453125, "text": "" }, { "id": 32000, - "logprob": -10.9375, + "logprob": -10.921875, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8515625, "text": "" }, { @@ -9417,7 +9417,7 @@ }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.90625, "text": "" }, { @@ -9427,122 +9427,22 @@ }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -12.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.75, - "text": "" - }, - { - "id": 32000, - "logprob": -15.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -17.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.921875, + "logprob": -12.5703125, "text": "" }, { @@ -9552,12 +9452,112 @@ }, { "id": 32000, - "logprob": -10.9375, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -18.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, "text": "" }, { @@ -9572,67 +9572,7 @@ }, { "id": 32000, - "logprob": -10.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, + "logprob": -10.8046875, "text": "" }, { @@ -9642,32 +9582,32 @@ }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -15.2421875, "text": "" }, { "id": 32000, - "logprob": -11.421875, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -12.9609375, + "logprob": -11.671875, "text": "" }, { @@ -9677,127 +9617,17 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -11.109375, "text": "" }, { "id": 32000, - "logprob": -11.125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6796875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.515625, + "logprob": -12.734375, "text": "" }, { @@ -9807,77 +9637,12 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -11.2109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -16.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, + "logprob": -11.5078125, "text": "" }, { @@ -9885,6 +9650,76 @@ "logprob": -12.2109375, "text": "" }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, { "id": 32000, "logprob": -12.9453125, @@ -9892,17 +9727,182 @@ }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -14.5546875, "text": "" }, { "id": 32000, - "logprob": -11.109375, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, "text": "" }, { @@ -9917,12 +9917,12 @@ }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -14.96875, + "logprob": -14.9921875, "text": "" }, { @@ -9932,7 +9932,7 @@ }, { "id": 32000, - "logprob": -14.734375, + "logprob": -14.7109375, "text": "" }, { @@ -9942,112 +9942,22 @@ }, { "id": 32000, - "logprob": -14.8671875, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -13.1796875, + "logprob": -13.1875, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -11.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, + "logprob": -11.9296875, "text": "" }, { @@ -10057,47 +9967,107 @@ }, { "id": 32000, - "logprob": -12.46875, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -13.1484375, "text": "" }, { "id": 32000, - "logprob": -12.875, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -15.125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -15.046875, "text": "" }, { "id": 32000, - "logprob": -12.484375, + "logprob": -14.8203125, "text": "" }, { "id": 32000, - "logprob": -14.9765625, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -14.09375, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -13.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, "text": "" }, { @@ -10107,7 +10077,7 @@ }, { "id": 32000, - "logprob": -15.1875, + "logprob": -12.390625, "text": "" }, { @@ -10117,7 +10087,37 @@ }, { "id": 32000, - "logprob": -11.375, + "logprob": -14.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3671875, "text": "" }, { @@ -10132,7 +10132,7 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5859375, "text": "" }, { @@ -10142,47 +10142,47 @@ }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.3125, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.921875, "text": "" }, { "id": 32000, - "logprob": -13.484375, + "logprob": -13.515625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { @@ -10197,12 +10197,12 @@ }, { "id": 32000, - "logprob": -15.2265625, + "logprob": -15.21875, "text": "" }, { "id": 32000, - "logprob": -17.90625, + "logprob": -17.84375, "text": "" }, { @@ -10212,52 +10212,52 @@ }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -11.6875, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.515625, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -13.4609375, "text": "" }, { "id": 32000, - "logprob": -14.8125, + "logprob": -14.84375, "text": "" }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.6171875, "text": "" }, { @@ -10267,12 +10267,12 @@ }, { "id": 32000, - "logprob": -13.453125, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4453125, "text": "" }, { @@ -10282,17 +10282,17 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -12.5546875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.890625, "text": "" }, { @@ -10302,17 +10302,37 @@ }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.40625, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -14.2890625, + "logprob": -14.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.140625, "text": "" }, { @@ -10322,32 +10342,12 @@ }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -11.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9765625, + "logprob": -13.9453125, "text": "" }, { @@ -10372,12 +10372,12 @@ }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.953125, "text": "" }, { @@ -10387,7 +10387,7 @@ }, { "id": 32000, - "logprob": -12.484375, + "logprob": -12.5, "text": "" }, { @@ -10412,52 +10412,52 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.828125, "text": "" }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -11.234375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0703125, "text": "" }, { @@ -10472,37 +10472,37 @@ }, { "id": 32000, - "logprob": -13.4375, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.96875, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -13.4296875, + "logprob": -13.421875, "text": "" }, { "id": 32000, - "logprob": -14.953125, + "logprob": -14.9453125, "text": "" }, { @@ -10517,12 +10517,12 @@ }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.453125, "text": "" }, { @@ -10547,17 +10547,17 @@ }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.3359375, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2734375, "text": "" }, { @@ -10567,22 +10567,7 @@ }, { "id": 32000, - "logprob": -11.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7578125, + "logprob": -11.6328125, "text": "" }, { @@ -10592,7 +10577,22 @@ }, { "id": 32000, - "logprob": -10.5546875, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, "text": "" }, { @@ -10602,17 +10602,17 @@ }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -12.3828125, + "logprob": -12.40625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5390625, "text": "" }, { @@ -10622,17 +10622,17 @@ }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.515625, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5390625, "text": "" }, { @@ -10642,12 +10642,12 @@ }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -13.0859375, + "logprob": -13.0703125, "text": "" }, { @@ -10662,17 +10662,17 @@ }, { "id": 32000, - "logprob": -10.5859375, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -10.546875, + "logprob": -10.5390625, "text": "" }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -11.453125, "text": "" }, { @@ -10682,7 +10682,7 @@ }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.0859375, "text": "" }, { @@ -10692,7 +10692,7 @@ }, { "id": 32000, - "logprob": -15.8046875, + "logprob": -15.8203125, "text": "" }, { @@ -10702,267 +10702,17 @@ }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -10.1640625, + "logprob": -10.109375, "text": "" }, { "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -16.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -16.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, + "logprob": -11.8671875, "text": "" }, { @@ -10972,12 +10722,262 @@ }, { "id": 32000, - "logprob": -14.375, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -14.59375, + "logprob": -16.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, "text": "" }, { @@ -10992,7 +10992,7 @@ }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.3828125, "text": "" }, { @@ -11012,12 +11012,12 @@ }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -17.375, + "logprob": -17.34375, "text": "" }, { @@ -11027,7 +11027,7 @@ }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.46875, "text": "" }, { @@ -11042,47 +11042,12 @@ }, { "id": 32000, - "logprob": -13.4921875, + "logprob": -13.3828125, "text": "" }, { "id": 32000, - "logprob": -14.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2421875, + "logprob": -14.1953125, "text": "" }, { @@ -11092,32 +11057,67 @@ }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -11.2578125, "text": "" }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -14.8125, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.125, "text": "" }, { "id": 32000, - "logprob": -14.296875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, "text": "" }, { @@ -11127,27 +11127,27 @@ }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8046875, "text": "" }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -13.765625, + "logprob": -13.8203125, "text": "" }, { @@ -11162,37 +11162,27 @@ }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -10.8125, + "logprob": -10.8203125, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2734375, + "logprob": -12.125, "text": "" }, { @@ -11202,17 +11192,27 @@ }, { "id": 32000, - "logprob": -11.671875, + "logprob": -14.25, "text": "" }, { "id": 32000, - "logprob": -11.6875, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, "text": "" }, { @@ -11227,72 +11227,72 @@ }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.6171875, + "logprob": -13.625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -13.2265625, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -12.5390625, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -15.1171875, + "logprob": -15.09375, "text": "" }, { "id": 32000, - "logprob": -15.9765625, + "logprob": -15.8515625, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.859375, "text": "" }, { @@ -11302,17 +11302,17 @@ }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -10.609375, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -10.8828125, + "logprob": -10.890625, "text": "" }, { @@ -11322,17 +11322,17 @@ }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.7109375, "text": "" }, { @@ -11342,12 +11342,12 @@ }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.75, "text": "" }, { @@ -11357,17 +11357,17 @@ }, { "id": 32000, - "logprob": -11.0, + "logprob": -10.9296875, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -10.53125, + "logprob": -10.5390625, "text": "" }, { @@ -11377,12 +11377,12 @@ }, { "id": 32000, - "logprob": -12.546875, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -16.96875, + "logprob": -16.953125, "text": "" }, { @@ -11397,7 +11397,7 @@ }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.671875, "text": "" }, { @@ -11412,37 +11412,37 @@ }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -13.46875, "text": "" }, { @@ -11462,22 +11462,22 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.234375, "text": "" }, { "id": 32000, - "logprob": -15.375, + "logprob": -15.34375, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.4921875, "text": "" }, { @@ -11487,27 +11487,27 @@ }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.53125, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6953125, "text": "" }, { "id": 32000, - "logprob": -13.234375, + "logprob": -13.203125, "text": "" }, { "id": 32000, - "logprob": -17.171875, + "logprob": -17.078125, "text": "" }, { "id": 32000, - "logprob": -15.03125, + "logprob": -15.25, "text": "" }, { @@ -11527,7 +11527,7 @@ }, { "id": 32000, - "logprob": -16.09375, + "logprob": -16.0625, "text": "" }, { @@ -11537,27 +11537,27 @@ }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.890625, "text": "" }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.9375, "text": "" }, { "id": 32000, - "logprob": -13.28125, + "logprob": -13.3203125, "text": "" }, { @@ -11567,82 +11567,12 @@ }, { "id": 32000, - "logprob": -13.0078125, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -12.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.65625, + "logprob": -12.9375, "text": "" }, { @@ -11652,17 +11582,87 @@ }, { "id": 32000, - "logprob": -11.078125, + "logprob": -13.796875, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.7578125, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -12.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, "text": "" }, { @@ -11672,12 +11672,7 @@ }, { "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, + "logprob": -12.6875, "text": "" }, { @@ -11685,6 +11680,11 @@ "logprob": -12.125, "text": "" }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, { "id": 32000, "logprob": -16.109375, @@ -11692,32 +11692,12 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -13.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.5078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.828125, + "logprob": -13.40625, "text": "" }, { @@ -11725,6 +11705,26 @@ "logprob": -13.375, "text": "" }, + { + "id": 32000, + "logprob": -15.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, { "id": 32000, "logprob": -12.0546875, @@ -11732,7 +11732,7 @@ }, { "id": 32000, - "logprob": -15.1875, + "logprob": -15.21875, "text": "" }, { @@ -11742,37 +11742,37 @@ }, { "id": 32000, - "logprob": -10.5390625, + "logprob": -10.5234375, "text": "" }, { "id": 32000, - "logprob": -14.921875, + "logprob": -14.8984375, "text": "" }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -11.6875, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -17.484375, + "logprob": -17.4375, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -10.6484375, + "logprob": -10.640625, "text": "" }, { @@ -11787,17 +11787,17 @@ }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -14.2109375, + "logprob": -14.2421875, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.7265625, "text": "" }, { @@ -11807,57 +11807,57 @@ }, { "id": 32000, - "logprob": -10.5859375, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -14.7109375, + "logprob": -14.7421875, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -14.75, + "logprob": -14.71875, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -13.015625, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.796875, "text": "" }, { "id": 32000, - "logprob": -11.015625, + "logprob": -11.0078125, "text": "" }, { "id": 32000, - "logprob": -16.390625, + "logprob": -16.46875, "text": "" }, { @@ -11867,12 +11867,12 @@ }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.8515625, "text": "" }, { @@ -11887,17 +11887,17 @@ }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -13.359375, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.96875, "text": "" }, { @@ -11912,12 +11912,12 @@ }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { @@ -11927,7 +11927,7 @@ }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.625, "text": "" }, { @@ -11935,16 +11935,6 @@ "logprob": -11.8046875, "text": "" }, - { - "id": 32000, - "logprob": -12.125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.09375, - "text": "" - }, { "id": 32000, "logprob": -12.1328125, @@ -11952,7 +11942,17 @@ }, { "id": 32000, - "logprob": -17.203125, + "logprob": -14.0546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -17.21875, "text": "" }, { @@ -11962,7 +11962,7 @@ }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.3671875, "text": "" }, { @@ -11972,17 +11972,17 @@ }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.7265625, "text": "" }, { @@ -11992,7 +11992,7 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { @@ -12002,17 +12002,17 @@ }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8515625, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.828125, "text": "" }, { "id": 32000, - "logprob": -11.6484375, + "logprob": -11.640625, "text": "" }, { @@ -12022,7 +12022,7 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { @@ -12032,27 +12032,27 @@ }, { "id": 32000, - "logprob": -14.7734375, + "logprob": -14.7578125, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.2578125, "text": "" }, { "id": 32000, - "logprob": -10.734375, + "logprob": -10.7265625, "text": "" }, { "id": 32000, - "logprob": -10.8671875, + "logprob": -10.875, "text": "" }, { @@ -12062,27 +12062,27 @@ }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -17.03125, + "logprob": -17.015625, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.234375, "text": "" }, { @@ -12092,12 +12092,12 @@ }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0390625, "text": "" }, { @@ -12107,22 +12107,22 @@ }, { "id": 32000, - "logprob": -15.2421875, + "logprob": -15.265625, "text": "" }, { "id": 32000, - "logprob": -17.0, + "logprob": -16.984375, "text": "" }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.0546875, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.453125, "text": "" }, { @@ -12132,32 +12132,32 @@ }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.140625, "text": "" }, { "id": 32000, - "logprob": -10.671875, + "logprob": -10.6796875, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -17.96875, + "logprob": -17.984375, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -14.703125, "text": "" }, { @@ -12167,12 +12167,17 @@ }, { "id": 32000, - "logprob": -14.4140625, + "logprob": -14.3828125, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.890625, "text": "" }, { @@ -12182,22 +12187,17 @@ }, { "id": 32000, - "logprob": -12.828125, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -13.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -16.296875, + "logprob": -16.25, "text": "" }, { @@ -12207,12 +12207,12 @@ }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -14.3671875, + "logprob": -14.375, "text": "" }, { @@ -12222,17 +12222,17 @@ }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { @@ -12242,17 +12242,17 @@ }, { "id": 32000, - "logprob": -17.546875, + "logprob": -17.5625, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -15.0703125, + "logprob": -15.0625, "text": "" }, { @@ -12267,7 +12267,7 @@ }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.328125, "text": "" }, { @@ -12277,17 +12277,17 @@ }, { "id": 32000, - "logprob": -11.3125, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.3515625, "text": "" }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.4609375, "text": "" }, { @@ -12307,27 +12307,27 @@ }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.890625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { @@ -12337,22 +12337,22 @@ }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -12.546875, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9609375, "text": "" }, { @@ -12362,12 +12362,12 @@ }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.40625, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8125, "text": "" }, { @@ -12377,12 +12377,12 @@ }, { "id": 32000, - "logprob": -13.078125, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.6328125, "text": "" }, { @@ -12392,7 +12392,7 @@ }, { "id": 32000, - "logprob": -11.125, + "logprob": -11.1328125, "text": "" }, { @@ -12402,22 +12402,22 @@ }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -14.265625, "text": "" }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -16.65625, + "logprob": -16.640625, "text": "" }, { @@ -12427,32 +12427,32 @@ }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -14.296875, + "logprob": -14.3046875, "text": "" }, { @@ -12462,27 +12462,27 @@ }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -14.5625, + "logprob": -14.5390625, "text": "" }, { "id": 32000, - "logprob": -19.46875, + "logprob": -19.4375, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.6796875, "text": "" }, { @@ -12492,12 +12492,12 @@ }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.2109375, "text": "" }, { @@ -12512,27 +12512,27 @@ }, { "id": 32000, - "logprob": -17.640625, + "logprob": -17.625, "text": "" }, { "id": 32000, - "logprob": -17.671875, + "logprob": -17.75, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.5546875, "text": "" }, { @@ -12542,17 +12542,17 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.4921875, "text": "" }, { @@ -12562,47 +12562,47 @@ }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.3046875, "text": "" }, { "id": 32000, - "logprob": -14.3671875, + "logprob": -14.3359375, "text": "" }, { "id": 32000, - "logprob": -14.5, + "logprob": -14.5078125, "text": "" }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -14.953125, + "logprob": -14.9375, "text": "" }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0390625, "text": "" }, { @@ -12617,12 +12617,22 @@ }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, "text": "" }, { @@ -12632,27 +12642,17 @@ }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -15.0546875, "text": "" }, { "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, + "logprob": -12.203125, "text": "" }, { @@ -12662,22 +12662,22 @@ }, { "id": 32000, - "logprob": -16.875, + "logprob": -16.84375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.9296875, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.96875, "text": "" }, { @@ -12697,47 +12697,47 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -14.5, + "logprob": -14.515625, "text": "" }, { "id": 32000, - "logprob": -10.09375, + "logprob": -10.109375, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.5625, "text": "" }, { "id": 32000, - "logprob": -14.890625, + "logprob": -14.8125, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.6484375, "text": "" }, { @@ -12747,12 +12747,12 @@ }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.1484375, "text": "" }, { "id": 32000, - "logprob": -14.890625, + "logprob": -14.8671875, "text": "" }, { @@ -12762,7 +12762,7 @@ }, { "id": 32000, - "logprob": -10.7578125, + "logprob": -10.75, "text": "" }, { @@ -12772,32 +12772,32 @@ }, { "id": 32000, - "logprob": -13.2734375, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -16.90625, + "logprob": -16.890625, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.625, "text": "" }, { @@ -12807,22 +12807,22 @@ }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.3828125, "text": "" }, { "id": 32000, - "logprob": -17.5, + "logprob": -17.6875, "text": "" }, { "id": 32000, - "logprob": -13.75, + "logprob": -13.7265625, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.796875, "text": "" }, { @@ -12837,32 +12837,32 @@ }, { "id": 32000, - "logprob": -11.2109375, + "logprob": -11.203125, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -14.328125, + "logprob": -14.3125, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.203125, "text": "" }, { @@ -12877,17 +12877,17 @@ }, { "id": 32000, - "logprob": -11.0703125, + "logprob": -11.078125, "text": "" }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6015625, "text": "" }, { @@ -12897,37 +12897,37 @@ }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -13.46875, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -12.5546875, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.46875, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.140625, "text": "" }, { @@ -12937,12 +12937,12 @@ }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -14.109375, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.84375, "text": "" }, { @@ -12957,47 +12957,47 @@ }, { "id": 32000, - "logprob": -11.9296875, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.8984375, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.625, "text": "" }, { "id": 32000, - "logprob": -14.125, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -14.6953125, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.625, "text": "" }, { @@ -13012,12 +13012,12 @@ }, { "id": 32000, - "logprob": -14.890625, + "logprob": -14.6484375, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.546875, "text": "" }, { @@ -13032,7 +13032,7 @@ }, { "id": 32000, - "logprob": -15.234375, + "logprob": -15.2265625, "text": "" }, { @@ -13042,7 +13042,7 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9375, "text": "" }, { @@ -13052,17 +13052,17 @@ }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -13.46875, "text": "" }, { "id": 32000, - "logprob": -15.5078125, + "logprob": -15.5, "text": "" }, { @@ -13072,27 +13072,27 @@ }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.7734375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.90625, "text": "" }, { @@ -13102,17 +13102,17 @@ }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.75, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -16.4375, + "logprob": -16.390625, "text": "" }, { @@ -13122,47 +13122,47 @@ }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -13.890625, + "logprob": -13.8984375, "text": "" }, { "id": 32000, - "logprob": -14.984375, + "logprob": -14.9921875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -16.015625, + "logprob": -16.046875, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.6484375, "text": "" }, { "id": 32000, - "logprob": -15.328125, + "logprob": -15.3203125, "text": "" }, { @@ -13172,7 +13172,7 @@ }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.7109375, "text": "" }, { @@ -13182,7 +13182,7 @@ }, { "id": 32000, - "logprob": -14.921875, + "logprob": -15.4765625, "text": "" }, { @@ -13192,37 +13192,37 @@ }, { "id": 32000, - "logprob": -14.578125, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -15.8125, + "logprob": -15.8359375, "text": "" }, { "id": 32000, - "logprob": -17.671875, + "logprob": -17.65625, "text": "" }, { @@ -13237,7 +13237,7 @@ }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.71875, "text": "" }, { @@ -13247,7 +13247,7 @@ }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.59375, "text": "" }, { @@ -13267,67 +13267,67 @@ }, { "id": 32000, - "logprob": -14.90625, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -15.1875, + "logprob": -15.203125, "text": "" }, { "id": 32000, - "logprob": -11.8203125, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.3671875, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -17.640625, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -13.109375, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.7890625, + "logprob": -14.8671875, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -11.3671875, + "logprob": -11.375, "text": "" }, { "id": 32000, - "logprob": -11.6796875, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.359375, "text": "" }, { @@ -13337,22 +13337,22 @@ }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.765625, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -14.6796875, + "logprob": -14.71875, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.6015625, "text": "" }, { @@ -13362,12 +13362,12 @@ }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.703125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.40625, "text": "" }, { @@ -13382,17 +13382,17 @@ }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.5234375, "text": "" }, { @@ -13402,7 +13402,7 @@ }, { "id": 32000, - "logprob": -11.6796875, + "logprob": -11.6875, "text": "" }, { @@ -13412,157 +13412,17 @@ }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -18.734375, + "logprob": -18.703125, "text": "" }, { "id": 32000, - "logprob": -15.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7578125, + "logprob": -15.6484375, "text": "" }, { @@ -13570,6 +13430,146 @@ "logprob": -12.0703125, "text": "" }, + { + "id": 32000, + "logprob": -13.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, { "id": 32000, "logprob": -11.9375, @@ -13577,7 +13577,7 @@ }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.5078125, "text": "" }, { @@ -13592,12 +13592,12 @@ }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -13.5234375, + "logprob": -13.546875, "text": "" }, { @@ -13607,22 +13607,22 @@ }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -12.828125, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -15.0078125, + "logprob": -14.9453125, "text": "" }, { "id": 32000, - "logprob": -16.578125, + "logprob": -16.5625, "text": "" }, { @@ -13632,27 +13632,27 @@ }, { "id": 32000, - "logprob": -14.7265625, + "logprob": -14.6953125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.75, "text": "" }, { @@ -13662,12 +13662,12 @@ }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.796875, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.4765625, "text": "" }, { @@ -13677,17 +13677,17 @@ }, { "id": 32000, - "logprob": -15.328125, + "logprob": -15.484375, "text": "" }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.6328125, "text": "" }, { "id": 32000, - "logprob": -13.609375, + "logprob": -13.6015625, "text": "" }, { @@ -13697,22 +13697,22 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -13.3046875, + "logprob": -13.3125, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.96875, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.484375, "text": "" }, { @@ -13722,7 +13722,7 @@ }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.4453125, "text": "" }, { @@ -13732,37 +13732,37 @@ }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -16.546875, + "logprob": -16.53125, "text": "" }, { "id": 32000, - "logprob": -14.1171875, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -11.8203125, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -15.078125, + "logprob": -15.03125, "text": "" }, { "id": 32000, - "logprob": -15.4765625, + "logprob": -15.484375, "text": "" }, { @@ -13782,17 +13782,17 @@ }, { "id": 32000, - "logprob": -11.15625, + "logprob": -11.1640625, "text": "" }, { "id": 32000, - "logprob": -12.8046875, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.5625, "text": "" }, { @@ -13802,12 +13802,12 @@ }, { "id": 32000, - "logprob": -17.96875, + "logprob": -18.0, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.5859375, "text": "" }, { @@ -13817,7 +13817,7 @@ }, { "id": 32000, - "logprob": -14.9140625, + "logprob": -14.921875, "text": "" }, { @@ -13827,57 +13827,57 @@ }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -15.2421875, + "logprob": -15.3046875, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.1875, "text": "" }, { "id": 32000, - "logprob": -12.734375, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -15.140625, + "logprob": -15.125, "text": "" }, { "id": 32000, - "logprob": -14.9765625, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -15.5234375, + "logprob": -15.546875, "text": "" }, { "id": 32000, - "logprob": -16.03125, + "logprob": -16.015625, "text": "" }, { "id": 32000, - "logprob": -14.125, + "logprob": -14.109375, "text": "" }, { "id": 32000, - "logprob": -13.265625, + "logprob": -13.234375, "text": "" }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -13.15625, "text": "" }, { @@ -13892,17 +13892,17 @@ }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.7734375, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.3515625, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7421875, "text": "" }, { @@ -13912,12 +13912,12 @@ }, { "id": 32000, - "logprob": -15.3046875, + "logprob": -15.296875, "text": "" }, { "id": 32000, - "logprob": -13.640625, + "logprob": -13.6015625, "text": "" }, { @@ -13927,7 +13927,7 @@ }, { "id": 32000, - "logprob": -13.4921875, + "logprob": -13.5, "text": "" }, { @@ -13942,52 +13942,52 @@ }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.1328125, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.3359375, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -10.9375, + "logprob": -10.953125, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.8046875, + "logprob": -12.796875, "text": "" }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.5625, "text": "" }, { @@ -13997,22 +13997,22 @@ }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.4375, "text": "" }, { "id": 32000, - "logprob": -19.671875, + "logprob": -19.65625, "text": "" }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.5, "text": "" }, { @@ -14022,32 +14022,32 @@ }, { "id": 32000, - "logprob": -13.875, + "logprob": -13.859375, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.34375, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.828125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -13.734375, + "logprob": -13.71875, "text": "" }, { @@ -14057,27 +14057,27 @@ }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -13.84375, + "logprob": -13.8984375, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -16.203125, + "logprob": -16.234375, "text": "" }, { @@ -14092,12 +14092,12 @@ }, { "id": 32000, - "logprob": -15.1953125, + "logprob": -15.2109375, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.5546875, "text": "" }, { @@ -14107,17 +14107,17 @@ }, { "id": 32000, - "logprob": -15.296875, + "logprob": -15.28125, "text": "" }, { "id": 32000, - "logprob": -14.078125, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -12.96875, "text": "" }, { @@ -14127,7 +14127,7 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3828125, "text": "" }, { @@ -14137,47 +14137,47 @@ }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -14.2265625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.6171875, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -11.2578125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -14.9609375, + "logprob": -15.0703125, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.375, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.1484375, "text": "" }, { @@ -14192,32 +14192,32 @@ }, { "id": 32000, - "logprob": -15.8203125, + "logprob": -15.796875, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.921875, + "logprob": -14.0390625, "text": "" }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -14.2734375, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.671875, "text": "" }, { @@ -14227,22 +14227,22 @@ }, { "id": 32000, - "logprob": -16.3125, + "logprob": -16.375, "text": "" }, { "id": 32000, - "logprob": -13.859375, + "logprob": -13.8828125, "text": "" }, { "id": 32000, - "logprob": -14.671875, + "logprob": -14.6171875, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.625, "text": "" }, { @@ -14272,67 +14272,37 @@ }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.0, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -12.2890625, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -12.2421875, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4609375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.9375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.296875, + "logprob": -11.9765625, "text": "" }, { @@ -14342,7 +14312,37 @@ }, { "id": 32000, - "logprob": -11.78125, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, "text": "" }, { @@ -14352,22 +14352,22 @@ }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -15.265625, + "logprob": -15.1953125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7421875, "text": "" }, { @@ -14382,12 +14382,12 @@ }, { "id": 32000, - "logprob": -15.5859375, + "logprob": -15.59375, "text": "" }, { "id": 32000, - "logprob": -11.6796875, + "logprob": -11.671875, "text": "" }, { @@ -14397,27 +14397,27 @@ }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.609375, "text": "" }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.671875, "text": "" }, { "id": 32000, - "logprob": -15.3515625, + "logprob": -15.34375, "text": "" }, { "id": 32000, - "logprob": -15.21875, + "logprob": -15.2265625, "text": "" }, { @@ -14427,7 +14427,7 @@ }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6875, "text": "" }, { @@ -14437,37 +14437,37 @@ }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -16.90625, + "logprob": -16.515625, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -13.375, + "logprob": -13.3984375, "text": "" }, { @@ -14477,22 +14477,22 @@ }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8828125, "text": "" }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -11.4375, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.828125, "text": "" }, { @@ -14502,52 +14502,52 @@ }, { "id": 32000, - "logprob": -14.7734375, + "logprob": -14.734375, "text": "" }, { "id": 32000, - "logprob": -14.375, + "logprob": -14.3984375, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.578125, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.578125, "text": "" }, { "id": 32000, - "logprob": -11.3125, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.421875, "text": "" }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -14.25, + "logprob": -14.34375, "text": "" }, { @@ -14557,12 +14557,12 @@ }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.890625, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.3203125, "text": "" }, { @@ -14572,7 +14572,7 @@ }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.9765625, "text": "" }, { @@ -14587,52 +14587,52 @@ }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0390625, "text": "" }, { "id": 32000, - "logprob": -14.3984375, + "logprob": -14.40625, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -13.875, + "logprob": -13.8203125, "text": "" }, { "id": 32000, - "logprob": -13.4609375, + "logprob": -13.5078125, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -16.96875, + "logprob": -17.3125, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.5234375, "text": "" }, { "id": 32000, - "logprob": -17.640625, + "logprob": -17.625, "text": "" }, { @@ -14647,17 +14647,17 @@ }, { "id": 32000, - "logprob": -15.953125, + "logprob": -15.9140625, "text": "" }, { "id": 32000, - "logprob": -16.625, + "logprob": -16.65625, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.5, "text": "" }, { @@ -14667,22 +14667,22 @@ }, { "id": 368, - "logprob": -0.19799805, + "logprob": -0.19726562, "text": "you" }, { "id": 1912, - "logprob": -1.5029297, + "logprob": -1.4990234, "text": "tell" }, { "id": 528, - "logprob": -0.30932617, + "logprob": -0.31152344, "text": "me" }, { "id": 264, - "logprob": -2.6328125, + "logprob": -2.6367188, "text": "a" }, { @@ -14692,22 +14692,22 @@ }, { "id": 2485, - "logprob": -0.99853516, + "logprob": -0.9941406, "text": "short" }, { "id": 2838, - "logprob": -0.4609375, + "logprob": -0.46118164, "text": "story" }, { "id": 2818, - "logprob": -3.3144531, + "logprob": -3.3183594, "text": "based" }, { "id": 356, - "logprob": -0.0289917, + "logprob": -0.029129028, "text": "on" }, { @@ -14717,7 +14717,7 @@ }, { "id": 3469, - "logprob": -0.28955078, + "logprob": -0.29052734, "text": "image" }, { @@ -14730,25 +14730,25 @@ "tokens": [ { "id": 13, - "logprob": -0.0075035095, + "logprob": -0.0076828003, "special": false, "text": "\n" }, { "id": 13, - "logprob": -0.20129395, + "logprob": -0.20092773, "special": false, "text": "\n" }, { "id": 16114, - "logprob": -1.2607422, + "logprob": -1.2587891, "special": false, "text": "Once" }, { "id": 3714, - "logprob": -0.20825195, + "logprob": -0.20861816, "special": false, "text": " upon" }, @@ -14760,31 +14760,31 @@ }, { "id": 727, - "logprob": -0.011932373, + "logprob": -0.011909485, "special": false, "text": " time" }, { "id": 28725, - "logprob": -0.17297363, + "logprob": -0.17529297, "special": false, "text": "," }, { "id": 736, - "logprob": -0.91015625, + "logprob": -0.9082031, "special": false, "text": " there" }, { "id": 403, - "logprob": -0.05758667, + "logprob": -0.057525635, "special": false, "text": " was" }, { "id": 264, - "logprob": -0.00969696, + "logprob": -0.009651184, "special": false, "text": " a" } @@ -14826,7 +14826,7 @@ }, { "id": 32000, - "logprob": -15.9140625, + "logprob": -15.7109375, "text": "" }, { @@ -14836,37 +14836,37 @@ }, { "id": 32000, - "logprob": -10.03125, + "logprob": -10.0234375, "text": "" }, { "id": 32000, - "logprob": -10.140625, + "logprob": -10.1328125, "text": "" }, { "id": 32000, - "logprob": -10.296875, + "logprob": -10.421875, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -16.0625, + "logprob": -16.59375, "text": "" }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -13.828125, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.390625, "text": "" }, { @@ -14876,7 +14876,7 @@ }, { "id": 32000, - "logprob": -10.171875, + "logprob": -10.1640625, "text": "" }, { @@ -14886,22 +14886,22 @@ }, { "id": 32000, - "logprob": -10.359375, + "logprob": -10.3984375, "text": "" }, { "id": 32000, - "logprob": -14.953125, + "logprob": -15.015625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -13.3046875, + "logprob": -13.2734375, "text": "" }, { @@ -14911,67 +14911,37 @@ }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.0390625, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.5234375, "text": "" }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.4765625, "text": "" }, { "id": 32000, - "logprob": -14.2890625, + "logprob": -14.2421875, "text": "" }, { "id": 32000, - "logprob": -13.625, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -11.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -17.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -18.265625, + "logprob": -11.359375, "text": "" }, { @@ -14981,17 +14951,47 @@ }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -17.34375, "text": "" }, { "id": 32000, - "logprob": -9.8671875, + "logprob": -10.3984375, "text": "" }, { "id": 32000, - "logprob": -10.765625, + "logprob": -10.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7734375, "text": "" }, { @@ -15001,12 +15001,12 @@ }, { "id": 32000, - "logprob": -10.984375, + "logprob": -10.96875, "text": "" }, { "id": 32000, - "logprob": -10.6171875, + "logprob": -10.609375, "text": "" }, { @@ -15016,17 +15016,17 @@ }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.5078125, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.4453125, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.59375, "text": "" }, { @@ -15041,27 +15041,27 @@ }, { "id": 32000, - "logprob": -10.6796875, + "logprob": -10.640625, "text": "" }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -12.0234375, "text": "" }, { @@ -15076,137 +15076,12 @@ }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.0625, "text": "" }, { "id": 32000, - "logprob": -10.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -18.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.25, - "text": "" - }, - { - "id": 32000, - "logprob": -10.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.234375, + "logprob": -10.3828125, "text": "" }, { @@ -15214,6 +15089,131 @@ "logprob": -11.171875, "text": "" }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, { "id": 32000, "logprob": -14.6796875, @@ -15221,7 +15221,7 @@ }, { "id": 32000, - "logprob": -10.375, + "logprob": -10.3671875, "text": "" }, { @@ -15236,17 +15236,22 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -11.0859375, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, "text": "" }, { @@ -15256,22 +15261,17 @@ }, { "id": 32000, - "logprob": -11.109375, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -11.0390625, + "logprob": -10.96875, "text": "" }, { "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.171875, + "logprob": -11.1484375, "text": "" }, { @@ -15281,7 +15281,7 @@ }, { "id": 32000, - "logprob": -10.7109375, + "logprob": -10.71875, "text": "" }, { @@ -15291,27 +15291,27 @@ }, { "id": 32000, - "logprob": -10.9140625, + "logprob": -10.8984375, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.2890625, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -10.6328125, + "logprob": -10.640625, "text": "" }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.7109375, "text": "" }, { @@ -15326,202 +15326,17 @@ }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.6875, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2109375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -9.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, + "logprob": -11.5078125, "text": "" }, { @@ -15531,62 +15346,247 @@ }, { "id": 32000, - "logprob": -11.34375, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -10.734375, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -11.2265625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -11.890625, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.21875, "text": "" }, { "id": 32000, - "logprob": -10.4375, + "logprob": -9.984375, "text": "" }, { "id": 32000, - "logprob": -10.6640625, + "logprob": -11.0, "text": "" }, { "id": 32000, - "logprob": -10.4765625, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -13.59375, + "logprob": -11.09375, "text": "" }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -14.0546875, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, "text": "" }, { @@ -15596,22 +15596,22 @@ }, { "id": 32000, - "logprob": -12.828125, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.671875, "text": "" }, { @@ -15626,37 +15626,12 @@ }, { "id": 32000, - "logprob": -12.2421875, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -10.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, + "logprob": -10.359375, "text": "" }, { @@ -15666,12 +15641,37 @@ }, { "id": 32000, - "logprob": -10.5703125, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -10.71875, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, "text": "" }, { @@ -15681,22 +15681,22 @@ }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.0390625, "text": "" }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -10.9921875, "text": "" }, { "id": 32000, - "logprob": -10.609375, + "logprob": -10.6171875, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2421875, "text": "" }, { @@ -15706,7 +15706,7 @@ }, { "id": 32000, - "logprob": -12.2578125, + "logprob": -12.265625, "text": "" }, { @@ -15716,7 +15716,7 @@ }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -12.859375, "text": "" }, { @@ -15726,12 +15726,12 @@ }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { @@ -15741,17 +15741,17 @@ }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2421875, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -10.3046875, + "logprob": -10.2890625, "text": "" }, { @@ -15761,7 +15761,12 @@ }, { "id": 32000, - "logprob": -11.0234375, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, "text": "" }, { @@ -15771,27 +15776,22 @@ }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.515625, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.1328125, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -10.5546875, "text": "" }, { "id": 32000, - "logprob": -10.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.3828125, + "logprob": -10.359375, "text": "" }, { @@ -15801,57 +15801,37 @@ }, { "id": 32000, - "logprob": -10.828125, + "logprob": -10.8125, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8671875, "text": "" }, { "id": 32000, - "logprob": -11.2734375, + "logprob": -11.1796875, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.203125, + "logprob": -11.59375, "text": "" }, { @@ -15861,22 +15841,27 @@ }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -13.4375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -14.203125, "text": "" }, { "id": 32000, - "logprob": -10.6171875, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, "text": "" }, { @@ -15886,22 +15871,12 @@ }, { "id": 32000, - "logprob": -11.25, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -10.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, + "logprob": -10.609375, "text": "" }, { @@ -15909,6 +15884,31 @@ "logprob": -10.90625, "text": "" }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, { "id": 32000, "logprob": -10.8671875, @@ -15926,7 +15926,7 @@ }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9921875, "text": "" }, { @@ -15936,7 +15936,7 @@ }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.3828125, "text": "" }, { @@ -15946,82 +15946,32 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.9921875, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -13.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.78125, + "logprob": -13.328125, "text": "" }, { @@ -16031,17 +15981,67 @@ }, { "id": 32000, - "logprob": -13.8828125, + "logprob": -12.7109375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, "text": "" }, { @@ -16056,57 +16056,57 @@ }, { "id": 32000, - "logprob": -13.609375, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.484375, "text": "" }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -14.9140625, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -13.3125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -11.1484375, + "logprob": -11.171875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.2265625, + "logprob": -11.1875, "text": "" }, { @@ -16116,67 +16116,17 @@ }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.1953125, "text": "" }, { "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, + "logprob": -12.1328125, "text": "" }, { @@ -16186,12 +16136,62 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, "text": "" }, { @@ -16206,7 +16206,17 @@ }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, "text": "" }, { @@ -16216,32 +16226,22 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -15.0234375, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -15.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8671875, + "logprob": -11.859375, "text": "" }, { @@ -16251,27 +16251,27 @@ }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.4921875, "text": "" }, { @@ -16281,12 +16281,12 @@ }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { @@ -16301,12 +16301,12 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -14.0234375, + "logprob": -14.015625, "text": "" }, { @@ -16321,32 +16321,32 @@ }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -13.7734375, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.359375, "text": "" }, { @@ -16361,12 +16361,12 @@ }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -13.5859375, + "logprob": -13.6015625, "text": "" }, { @@ -16381,12 +16381,12 @@ }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -13.6015625, + "logprob": -13.59375, "text": "" }, { @@ -16396,7 +16396,7 @@ }, { "id": 32000, - "logprob": -14.5859375, + "logprob": -14.5703125, "text": "" }, { @@ -16406,12 +16406,12 @@ }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -11.7890625, "text": "" }, { @@ -16421,12 +16421,12 @@ }, { "id": 32000, - "logprob": -14.421875, + "logprob": -14.4296875, "text": "" }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.53125, "text": "" }, { @@ -16436,117 +16436,12 @@ }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -16.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5234375, + "logprob": -11.609375, "text": "" }, { @@ -16556,17 +16451,32 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -14.5859375, + "logprob": -12.8828125, "text": "" }, { "id": 32000, - "logprob": -13.234375, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, "text": "" }, { @@ -16576,42 +16486,132 @@ }, { "id": 32000, - "logprob": -13.8046875, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -16.359375, "text": "" }, { "id": 32000, - "logprob": -16.203125, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.75, "text": "" }, { "id": 32000, - "logprob": -15.78125, + "logprob": -11.7890625, "text": "" }, { "id": 32000, - "logprob": -12.734375, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, "text": "" }, { @@ -16621,12 +16621,12 @@ }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.71875, "text": "" }, { @@ -16641,7 +16641,7 @@ }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.3203125, "text": "" }, { @@ -16651,17 +16651,17 @@ }, { "id": 32000, - "logprob": -14.21875, + "logprob": -14.2265625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1875, "text": "" }, { @@ -16686,22 +16686,22 @@ }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.1875, "text": "" }, { @@ -16711,12 +16711,12 @@ }, { "id": 32000, - "logprob": -14.4140625, + "logprob": -14.421875, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2890625, "text": "" }, { @@ -16736,27 +16736,27 @@ }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.859375, "text": "" }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.9453125, "text": "" }, { @@ -16771,27 +16771,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.59375, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, "text": "" }, { @@ -16801,22 +16811,12 @@ }, { "id": 32000, - "logprob": -13.203125, + "logprob": -15.3515625, "text": "" }, { "id": 32000, - "logprob": -11.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2109375, + "logprob": -13.1875, "text": "" }, { @@ -16826,22 +16826,22 @@ }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -12.5390625, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -13.3203125, "text": "" }, { @@ -16851,27 +16851,27 @@ }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9921875, "text": "" }, { @@ -16881,32 +16881,32 @@ }, { "id": 32000, - "logprob": -13.375, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3359375, "text": "" }, { @@ -16916,12 +16916,12 @@ }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.984375, "text": "" }, { @@ -16931,7 +16931,7 @@ }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4140625, "text": "" }, { @@ -16941,17 +16941,17 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.421875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { @@ -16966,12 +16966,12 @@ }, { "id": 32000, - "logprob": -13.96875, + "logprob": -14.0, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.40625, "text": "" }, { @@ -16981,27 +16981,27 @@ }, { "id": 32000, - "logprob": -12.8046875, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -13.1796875, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.765625, "text": "" }, { @@ -17011,37 +17011,37 @@ }, { "id": 32000, - "logprob": -12.2578125, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -14.6328125, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.3984375, "text": "" }, { @@ -17051,27 +17051,42 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -13.8671875, + "logprob": -13.875, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, "text": "" }, { @@ -17081,27 +17096,12 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -13.59375, "text": "" }, { "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { @@ -17111,7 +17111,12 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, "text": "" }, { @@ -17121,12 +17126,7 @@ }, { "id": 32000, - "logprob": -13.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, + "logprob": -12.4609375, "text": "" }, { @@ -17136,7 +17136,12 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, "text": "" }, { @@ -17146,22 +17151,17 @@ }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -15.390625, "text": "" }, { "id": 32000, - "logprob": -15.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, + "logprob": -11.953125, "text": "" }, { @@ -17171,27 +17171,27 @@ }, { "id": 32000, - "logprob": -15.46875, + "logprob": -15.4921875, "text": "" }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.9296875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.609375, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.984375, "text": "" }, { @@ -17201,22 +17201,22 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1875, "text": "" }, { @@ -17226,42 +17226,42 @@ }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8984375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -14.2734375, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.2109375, "text": "" }, { @@ -17296,12 +17296,12 @@ }, { "id": 32000, - "logprob": -14.0546875, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.53125, "text": "" }, { @@ -17311,17 +17311,17 @@ }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.0546875, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.328125, "text": "" }, { @@ -17336,22 +17336,22 @@ }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.078125, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.828125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.8046875, "text": "" }, { @@ -17361,7 +17361,7 @@ }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.59375, "text": "" }, { @@ -17371,32 +17371,32 @@ }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5546875, "text": "" }, { @@ -17406,142 +17406,67 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -14.6015625, + "logprob": -14.609375, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -13.1953125, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.46875, "text": "" }, { "id": 32000, - "logprob": -15.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -15.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, + "logprob": -15.609375, "text": "" }, { @@ -17551,27 +17476,102 @@ }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -10.6640625, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -15.765625, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7890625, "text": "" }, { @@ -17581,52 +17581,52 @@ }, { "id": 32000, - "logprob": -11.234375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -14.5078125, + "logprob": -14.484375, "text": "" }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -16.234375, + "logprob": -16.21875, "text": "" }, { "id": 32000, - "logprob": -14.4609375, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -16.140625, + "logprob": -16.109375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -12.984375, "text": "" }, { @@ -17641,7 +17641,7 @@ }, { "id": 32000, - "logprob": -13.828125, + "logprob": -13.8671875, "text": "" }, { @@ -17651,17 +17651,17 @@ }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0703125, "text": "" }, { @@ -17681,62 +17681,62 @@ }, { "id": 32000, - "logprob": -10.8203125, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -15.4140625, + "logprob": -15.46875, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -10.5078125, + "logprob": -10.515625, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -11.015625, "text": "" }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.3984375, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.375, "text": "" }, { "id": 32000, - "logprob": -13.6484375, + "logprob": -13.5625, "text": "" }, { @@ -17746,7 +17746,7 @@ }, { "id": 32000, - "logprob": -11.203125, + "logprob": -11.2109375, "text": "" }, { @@ -17756,47 +17756,47 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6640625, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8828125, "text": "" }, { "id": 32000, - "logprob": -10.1953125, + "logprob": -9.9375, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.2734375, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -14.25, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.65625, "text": "" }, { @@ -17806,12 +17806,12 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -14.90625, + "logprob": -14.8359375, "text": "" }, { @@ -17821,7 +17821,7 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.8984375, "text": "" }, { @@ -17841,82 +17841,82 @@ }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -15.578125, + "logprob": -15.5390625, "text": "" }, { "id": 32000, - "logprob": -15.0546875, + "logprob": -15.2578125, "text": "" }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.1171875, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -11.0, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.296875, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -13.6640625, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.5859375, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.3828125, "text": "" }, { @@ -17931,27 +17931,27 @@ }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -13.1796875, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.125, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.9375, "text": "" }, { @@ -17961,62 +17961,7 @@ }, { "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5, - "text": "" - }, - { - "id": 32000, - "logprob": -11.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -9.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, + "logprob": -11.3203125, "text": "" }, { @@ -18026,12 +17971,12 @@ }, { "id": 32000, - "logprob": -12.1875, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.3359375, "text": "" }, { @@ -18041,17 +17986,32 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.359375, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -9.6953125, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, "text": "" }, { @@ -18061,27 +18021,67 @@ }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, "text": "" }, { @@ -18091,12 +18091,12 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -13.875, + "logprob": -13.9453125, "text": "" }, { @@ -18106,7 +18106,7 @@ }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.0859375, "text": "" }, { @@ -18121,162 +18121,17 @@ }, { "id": 32000, - "logprob": -13.875, + "logprob": -13.7890625, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -16.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5078125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.625, + "logprob": -12.671875, "text": "" }, { @@ -18286,42 +18141,187 @@ }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, "text": "" }, { @@ -18331,22 +18331,22 @@ }, { "id": 32000, - "logprob": -14.984375, + "logprob": -15.0234375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9453125, "text": "" }, { @@ -18361,27 +18361,27 @@ }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.9609375, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -16.15625, + "logprob": -16.140625, "text": "" }, { "id": 32000, - "logprob": -13.4375, + "logprob": -13.4609375, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7265625, "text": "" }, { @@ -18391,12 +18391,12 @@ }, { "id": 32000, - "logprob": -13.25, + "logprob": -13.234375, "text": "" }, { "id": 32000, - "logprob": -13.2421875, + "logprob": -13.2578125, "text": "" }, { @@ -18406,12 +18406,12 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -13.8359375, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.6171875, "text": "" }, { @@ -18421,12 +18421,12 @@ }, { "id": 32000, - "logprob": -14.4609375, + "logprob": -14.4765625, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.15625, "text": "" }, { @@ -18436,17 +18436,17 @@ }, { "id": 32000, - "logprob": -14.1015625, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.265625, "text": "" }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.6328125, "text": "" }, { @@ -18461,42 +18461,42 @@ }, { "id": 32000, - "logprob": -13.03125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -10.3984375, + "logprob": -10.46875, "text": "" }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -13.5625, + "logprob": -13.59375, "text": "" }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -14.09375, + "logprob": -14.140625, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.15625, "text": "" }, { @@ -18506,32 +18506,32 @@ }, { "id": 32000, - "logprob": -14.0625, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -14.1484375, + "logprob": -14.1328125, "text": "" }, { "id": 32000, - "logprob": -13.859375, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.34375, "text": "" }, { "id": 32000, - "logprob": -13.0078125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.40625, "text": "" }, { @@ -18541,7 +18541,7 @@ }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.8125, "text": "" }, { @@ -18556,32 +18556,7 @@ }, { "id": 32000, - "logprob": -11.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.859375, + "logprob": -11.46875, "text": "" }, { @@ -18591,32 +18566,57 @@ }, { "id": 32000, - "logprob": -14.171875, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -14.5, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -18.125, + "logprob": -14.8359375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -18.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, "text": "" }, { @@ -18626,37 +18626,37 @@ }, { "id": 32000, - "logprob": -14.9765625, + "logprob": -14.9921875, "text": "" }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -15.34375, + "logprob": -15.40625, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -14.5390625, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -15.265625, + "logprob": -15.2890625, "text": "" }, { "id": 32000, - "logprob": -13.625, + "logprob": -13.609375, "text": "" }, { @@ -18666,7 +18666,7 @@ }, { "id": 32000, - "logprob": -15.828125, + "logprob": -15.8359375, "text": "" }, { @@ -18681,12 +18681,12 @@ }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.328125, "text": "" }, { "id": 32000, - "logprob": -13.7734375, + "logprob": -13.78125, "text": "" }, { @@ -18696,27 +18696,27 @@ }, { "id": 32000, - "logprob": -13.484375, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -13.265625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.7578125, + "logprob": -13.75, "text": "" }, { @@ -18726,17 +18726,17 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0546875, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.65625, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6953125, "text": "" }, { @@ -18746,12 +18746,12 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -13.3203125, + "logprob": -13.328125, "text": "" }, { @@ -18761,17 +18761,12 @@ }, { "id": 32000, - "logprob": -13.6328125, + "logprob": -13.640625, "text": "" }, { "id": 32000, - "logprob": -15.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.234375, + "logprob": -15.15625, "text": "" }, { @@ -18781,32 +18776,37 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -13.25, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -11.3125, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -10.6328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -10.6484375, "text": "" }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, "text": "" }, { @@ -18816,77 +18816,52 @@ }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.8125, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.828125, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.578125, "text": "" }, { "id": 32000, - "logprob": -14.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.453125, + "logprob": -14.625, "text": "" }, { @@ -18896,22 +18871,47 @@ }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, "text": "" }, { @@ -18926,7 +18926,7 @@ }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.2265625, "text": "" }, { @@ -18941,32 +18941,32 @@ }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.796875, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -13.6328125, + "logprob": -13.65625, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.90625, "text": "" }, { @@ -18976,7 +18976,22 @@ }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, "text": "" }, { @@ -18986,27 +19001,12 @@ }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { @@ -19016,17 +19016,17 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -10.5, + "logprob": -10.5078125, "text": "" }, { @@ -19036,12 +19036,12 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.375, "text": "" }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.0625, "text": "" }, { @@ -19056,7 +19056,7 @@ }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.3515625, "text": "" }, { @@ -19066,12 +19066,12 @@ }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.203125, "text": "" }, { @@ -19081,7 +19081,7 @@ }, { "id": 32000, - "logprob": -13.828125, + "logprob": -13.8359375, "text": "" }, { @@ -19091,12 +19091,17 @@ }, { "id": 32000, - "logprob": -14.1953125, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -14.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, "text": "" }, { @@ -19106,12 +19111,7 @@ }, { "id": 32000, - "logprob": -14.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0625, "text": "" }, { @@ -19126,42 +19126,42 @@ }, { "id": 32000, - "logprob": -14.6875, + "logprob": -14.703125, "text": "" }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.296875, "text": "" }, { "id": 32000, - "logprob": -14.875, + "logprob": -14.8828125, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -13.109375, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.3203125, "text": "" }, { @@ -19171,17 +19171,17 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.734375, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.3984375, "text": "" }, { @@ -19191,47 +19191,47 @@ }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.8984375, "text": "" }, { "id": 32000, - "logprob": -13.671875, + "logprob": -13.6953125, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -13.3125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9921875, "text": "" }, { @@ -19241,7 +19241,7 @@ }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.03125, "text": "" }, { @@ -19261,7 +19261,7 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.6484375, "text": "" }, { @@ -19271,17 +19271,17 @@ }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9140625, "text": "" }, { @@ -19296,32 +19296,12 @@ }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -10.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, + "logprob": -10.84375, "text": "" }, { @@ -19331,22 +19311,12 @@ }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, + "logprob": -12.7421875, "text": "" }, { @@ -19356,52 +19326,82 @@ }, { "id": 32000, - "logprob": -13.609375, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -14.046875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -13.796875, + "logprob": -13.625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -13.7265625, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, "text": "" }, { @@ -19411,7 +19411,7 @@ }, { "id": 32000, - "logprob": -15.8046875, + "logprob": -15.796875, "text": "" }, { @@ -19421,27 +19421,27 @@ }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -11.3203125, + "logprob": -11.328125, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { @@ -19456,17 +19456,17 @@ }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.7578125, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4765625, "text": "" }, { @@ -19476,37 +19476,37 @@ }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.234375, + "logprob": -15.2578125, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.0078125, "text": "" }, { "id": 32000, - "logprob": -15.2421875, + "logprob": -15.3828125, "text": "" }, { "id": 32000, - "logprob": -11.1953125, + "logprob": -11.203125, "text": "" }, { @@ -19521,12 +19521,12 @@ }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -13.4296875, + "logprob": -13.4453125, "text": "" }, { @@ -19536,12 +19536,12 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { @@ -19551,37 +19551,37 @@ }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.171875, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -13.375, "text": "" }, { @@ -19596,12 +19596,12 @@ }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.046875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0859375, "text": "" }, { @@ -19611,7 +19611,7 @@ }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.4765625, "text": "" }, { @@ -19621,7 +19621,7 @@ }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7265625, "text": "" }, { @@ -19631,122 +19631,122 @@ }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.3359375, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -14.296875, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -13.796875, + "logprob": -13.8046875, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.2109375, "text": "" }, { "id": 32000, - "logprob": -13.3046875, + "logprob": -13.2890625, "text": "" }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -14.1015625, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -13.96875, + "logprob": -13.90625, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.3203125, "text": "" }, { @@ -19756,7 +19756,12 @@ }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, "text": "" }, { @@ -19766,12 +19771,7 @@ }, { "id": 32000, - "logprob": -12.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, + "logprob": -11.265625, "text": "" }, { @@ -19781,7 +19781,7 @@ }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -13.15625, "text": "" }, { @@ -19791,7 +19791,7 @@ }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.0390625, "text": "" }, { @@ -19801,7 +19801,7 @@ }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -14.0390625, "text": "" }, { @@ -19811,12 +19811,12 @@ }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.359375, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.953125, "text": "" }, { @@ -19826,97 +19826,27 @@ }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7109375, "text": "" }, { "id": 32000, - "logprob": -14.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7890625, + "logprob": -14.4765625, "text": "" }, { @@ -19926,7 +19856,37 @@ }, { "id": 32000, - "logprob": -11.859375, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, "text": "" }, { @@ -19936,7 +19896,47 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, "text": "" }, { @@ -19946,42 +19946,42 @@ }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.828125, "text": "" }, { @@ -19996,17 +19996,17 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.1328125, "text": "" }, { "id": 32000, - "logprob": -10.796875, + "logprob": -10.7890625, "text": "" }, { @@ -20016,7 +20016,7 @@ }, { "id": 32000, - "logprob": -10.8984375, + "logprob": -10.890625, "text": "" }, { @@ -20031,12 +20031,7 @@ }, { "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1484375, + "logprob": -12.078125, "text": "" }, { @@ -20046,37 +20041,42 @@ }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.15625, "text": "" }, { "id": 32000, - "logprob": -12.8046875, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -14.03125, + "logprob": -13.09375, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -12.96875, "text": "" }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, "text": "" }, { @@ -20086,12 +20086,12 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.46875, "text": "" }, { @@ -20106,7 +20106,7 @@ }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.40625, "text": "" }, { @@ -20116,7 +20116,7 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.265625, "text": "" }, { @@ -20126,7 +20126,7 @@ }, { "id": 32000, - "logprob": -13.6875, + "logprob": -13.65625, "text": "" }, { @@ -20136,17 +20136,17 @@ }, { "id": 32000, - "logprob": -14.03125, + "logprob": -14.09375, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -15.65625, + "logprob": -15.640625, "text": "" }, { @@ -20156,37 +20156,42 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.3828125, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -14.515625, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.609375, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, "text": "" }, { @@ -20196,22 +20201,17 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -11.59375, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -11.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1796875, "text": "" }, { @@ -20221,17 +20221,17 @@ }, { "id": 32000, - "logprob": -11.40625, + "logprob": -11.421875, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -11.1015625, "text": "" }, { @@ -20241,32 +20241,32 @@ }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -13.265625, + "logprob": -13.2578125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.2578125, "text": "" }, { @@ -20281,7 +20281,7 @@ }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.84375, "text": "" }, { @@ -20291,42 +20291,42 @@ }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6953125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6796875, "text": "" }, { "id": 32000, - "logprob": -12.546875, + "logprob": -12.5546875, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0859375, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.234375, "text": "" }, { @@ -20336,42 +20336,32 @@ }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -13.5234375, + "logprob": -13.5078125, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -13.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9140625, + "logprob": -13.3984375, "text": "" }, { @@ -20381,202 +20371,12 @@ }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -14.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.25, - "text": "" - }, - { - "id": 32000, - "logprob": -14.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6171875, + "logprob": -14.265625, "text": "" }, { @@ -20586,32 +20386,232 @@ }, { "id": 32000, - "logprob": -13.140625, + "logprob": -14.40625, "text": "" }, { "id": 32000, - "logprob": -13.421875, + "logprob": -15.296875, "text": "" }, { "id": 32000, - "logprob": -14.328125, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -13.7578125, + "logprob": -12.3828125, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, "text": "" }, { @@ -20626,32 +20626,32 @@ }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -14.921875, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -13.921875, + "logprob": -13.6953125, "text": "" }, { @@ -20661,67 +20661,67 @@ }, { "id": 32000, - "logprob": -12.1796875, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.5, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -14.375, + "logprob": -14.4140625, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -11.0, + "logprob": -11.0234375, "text": "" }, { @@ -20731,232 +20731,17 @@ }, { "id": 32000, - "logprob": -11.1640625, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.75, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7265625, "text": "" }, { @@ -20966,22 +20751,237 @@ }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, "text": "" }, { @@ -20996,12 +20996,12 @@ }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -11.375, + "logprob": -11.3828125, "text": "" }, { @@ -21011,7 +21011,7 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9296875, "text": "" }, { @@ -21021,7 +21021,7 @@ }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.5546875, "text": "" }, { @@ -21031,22 +21031,22 @@ }, { "id": 32000, - "logprob": -10.4140625, + "logprob": -10.40625, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.59375, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.03125, "text": "" }, { @@ -21056,12 +21056,12 @@ }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.5, "text": "" }, { @@ -21071,12 +21071,12 @@ }, { "id": 32000, - "logprob": -13.0, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -14.140625, + "logprob": -14.171875, "text": "" }, { @@ -21086,27 +21086,27 @@ }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -13.9453125, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.4609375, + "logprob": -12.46875, "text": "" }, { @@ -21116,7 +21116,7 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.53125, "text": "" }, { @@ -21126,92 +21126,92 @@ }, { "id": 32000, - "logprob": -15.0546875, + "logprob": -15.0625, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -13.515625, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.375, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -14.0390625, + "logprob": -14.09375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9375, "text": "" }, { "id": 32000, - "logprob": -11.0234375, + "logprob": -11.0546875, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -14.9609375, + "logprob": -14.9765625, "text": "" }, { @@ -21221,37 +21221,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.703125, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -10.9921875, + "logprob": -10.984375, "text": "" }, { @@ -21266,7 +21266,7 @@ }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4921875, "text": "" }, { @@ -21276,12 +21276,17 @@ }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.40625, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, "text": "" }, { @@ -21291,17 +21296,27 @@ }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -14.4609375, "text": "" }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, "text": "" }, { @@ -21311,17 +21326,7 @@ }, { "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, + "logprob": -13.328125, "text": "" }, { @@ -21331,27 +21336,22 @@ }, { "id": 32000, - "logprob": -13.25, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.8359375, "text": "" }, { "id": 32000, - "logprob": -13.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, + "logprob": -12.2734375, "text": "" }, { @@ -21361,12 +21361,12 @@ }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.96875, "text": "" }, { @@ -21376,12 +21376,12 @@ }, { "id": 32000, - "logprob": -13.2421875, + "logprob": -13.25, "text": "" }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.96875, "text": "" }, { @@ -21396,132 +21396,27 @@ }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.0859375, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -10.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, + "logprob": -11.890625, "text": "" }, { @@ -21531,57 +21426,7 @@ }, { "id": 32000, - "logprob": -12.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.015625, + "logprob": -11.4375, "text": "" }, { @@ -21591,352 +21436,27 @@ }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -11.109375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -11.296875, "text": "" }, { "id": 32000, - "logprob": -13.609375, + "logprob": -11.1015625, "text": "" }, { "id": 32000, - "logprob": -13.75, + "logprob": -11.203125, "text": "" }, { "id": 32000, - "logprob": -14.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, + "logprob": -10.9921875, "text": "" }, { @@ -21944,11 +21464,491 @@ "logprob": -12.046875, "text": "" }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, { "id": 32000, "logprob": -11.2421875, "text": "" }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, { "id": 32000, "logprob": -11.328125, @@ -21956,7 +21956,7 @@ }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.953125, "text": "" }, { @@ -21966,7 +21966,7 @@ }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { @@ -21981,7 +21981,7 @@ }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.0390625, "text": "" }, { @@ -21991,27 +21991,27 @@ }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.6640625, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -11.6484375, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.25, "text": "" }, { @@ -22026,7 +22026,7 @@ }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.34375, "text": "" }, { @@ -22036,32 +22036,12 @@ }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, + "logprob": -11.296875, "text": "" }, { @@ -22071,27 +22051,47 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -13.828125, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, "text": "" }, { @@ -22106,72 +22106,72 @@ }, { "id": 32000, - "logprob": -14.5546875, + "logprob": -14.5625, "text": "" }, { "id": 32000, - "logprob": -14.015625, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.7109375, "text": "" }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -14.359375, + "logprob": -14.3359375, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.296875, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -11.0625, "text": "" }, { @@ -22181,7 +22181,7 @@ }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { @@ -22191,12 +22191,12 @@ }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5546875, "text": "" }, { @@ -22206,37 +22206,42 @@ }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -11.453125, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.2890625, "text": "" }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, "text": "" }, { @@ -22246,12 +22251,7 @@ }, { "id": 32000, - "logprob": -11.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3984375, + "logprob": -11.40625, "text": "" }, { @@ -22271,32 +22271,32 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.03125, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.671875, "text": "" }, { @@ -22306,7 +22306,7 @@ }, { "id": 32000, - "logprob": -14.3828125, + "logprob": -14.2890625, "text": "" }, { @@ -22321,22 +22321,42 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -14.6953125, + "logprob": -14.6484375, "text": "" }, { "id": 32000, - "logprob": -13.515625, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, "text": "" }, { @@ -22346,67 +22366,47 @@ }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -11.9609375, "text": "" }, { "id": 32000, - "logprob": -14.375, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -12.453125, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -13.8046875, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -13.7890625, "text": "" }, { "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -14.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.421875, + "logprob": -14.3828125, "text": "" }, { @@ -22426,22 +22426,22 @@ }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.015625, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { @@ -22451,7 +22451,7 @@ }, { "id": 32000, - "logprob": -11.3203125, + "logprob": -11.328125, "text": "" }, { @@ -22461,7 +22461,7 @@ }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.5859375, "text": "" }, { @@ -22471,7 +22471,7 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0390625, "text": "" }, { @@ -22481,7 +22481,7 @@ }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4609375, "text": "" }, { @@ -22501,12 +22501,12 @@ }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.21875, "text": "" }, { @@ -22516,7 +22516,7 @@ }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9140625, "text": "" }, { @@ -22526,37 +22526,37 @@ }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.203125, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.140625, + "logprob": -14.6640625, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -14.2734375, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.53125, "text": "" }, { @@ -22566,62 +22566,62 @@ }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.1015625, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.703125, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { @@ -22631,22 +22631,22 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.34375, "text": "" }, { @@ -22661,37 +22661,37 @@ }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -15.15625, + "logprob": -15.1875, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.515625, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.5703125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.703125, "text": "" }, { @@ -22711,27 +22711,27 @@ }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5546875, "text": "" }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -11.1875, + "logprob": -11.1953125, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7578125, "text": "" }, { @@ -22741,7 +22741,7 @@ }, { "id": 32000, - "logprob": -13.2734375, + "logprob": -13.2421875, "text": "" }, { @@ -22751,62 +22751,62 @@ }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -11.1796875, + "logprob": -11.1875, "text": "" }, { "id": 32000, - "logprob": -13.375, + "logprob": -13.359375, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -13.59375, + "logprob": -13.5625, "text": "" }, { @@ -22814,21 +22814,6 @@ "logprob": -13.3203125, "text": "" }, - { - "id": 32000, - "logprob": -12.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6796875, - "text": "" - }, { "id": 32000, "logprob": -12.8046875, @@ -22836,12 +22821,17 @@ }, { "id": 32000, - "logprob": -12.78125, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, "text": "" }, { @@ -22849,6 +22839,16 @@ "logprob": -12.78125, "text": "" }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, { "id": 32000, "logprob": -11.484375, @@ -22856,37 +22856,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -11.3046875, + "logprob": -11.3125, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.265625, "text": "" }, { @@ -22921,7 +22921,7 @@ }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.046875, "text": "" }, { @@ -22931,7 +22931,7 @@ }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.7109375, "text": "" }, { @@ -22941,27 +22941,27 @@ }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -14.3046875, + "logprob": -14.3125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7578125, "text": "" }, { @@ -22971,142 +22971,12 @@ }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -14.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, + "logprob": -14.1640625, "text": "" }, { @@ -23116,7 +22986,137 @@ }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, "text": "" }, { @@ -23131,12 +23131,12 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.9296875, + "logprob": -11.9375, "text": "" }, { @@ -23146,17 +23146,17 @@ }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.7890625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0390625, "text": "" }, { @@ -23166,12 +23166,12 @@ }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -10.75, + "logprob": -10.7578125, "text": "" }, { @@ -23181,12 +23181,12 @@ }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.2578125, + "logprob": -11.265625, "text": "" }, { @@ -23196,27 +23196,27 @@ }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.7890625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -11.25, + "logprob": -11.234375, "text": "" }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.46875, "text": "" }, { @@ -23226,7 +23226,7 @@ }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8515625, "text": "" }, { @@ -23241,17 +23241,17 @@ }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.7890625, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.28125, "text": "" }, { @@ -23261,7 +23261,7 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.34375, "text": "" }, { @@ -23271,27 +23271,27 @@ }, { "id": 32000, - "logprob": -13.0078125, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -15.25, + "logprob": -15.28125, "text": "" }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.109375, "text": "" }, { @@ -23306,32 +23306,32 @@ }, { "id": 32000, - "logprob": -14.7265625, + "logprob": -14.7109375, "text": "" }, { "id": 32000, - "logprob": -10.015625, + "logprob": -10.0234375, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.46875, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.9765625, "text": "" }, { "id": 32000, - "logprob": -14.2734375, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -14.9140625, + "logprob": -14.890625, "text": "" }, { @@ -23346,12 +23346,12 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3515625, "text": "" }, { @@ -23361,47 +23361,47 @@ }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.890625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5625, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.4609375, + "logprob": -12.4765625, "text": "" }, { @@ -23416,17 +23416,17 @@ }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.125, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8125, "text": "" }, { @@ -23441,52 +23441,52 @@ }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.375, + "logprob": -12.390625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3515625, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.25, "text": "" }, { @@ -23496,17 +23496,17 @@ }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.4921875, "text": "" }, { @@ -23516,72 +23516,12 @@ }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -14.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, + "logprob": -15.0625, "text": "" }, { @@ -23591,62 +23531,72 @@ }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -13.5546875, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -14.96875, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -13.9296875, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -10.5859375, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -15.0078125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -12.3359375, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, "text": "" }, { @@ -23656,37 +23606,87 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -10.8359375, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -10.7109375, + "logprob": -11.4609375, "text": "" }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, "text": "" }, { @@ -23701,27 +23701,27 @@ }, { "id": 32000, - "logprob": -11.171875, + "logprob": -11.1796875, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4453125, "text": "" }, { @@ -23736,17 +23736,47 @@ }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.09375, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -15.4375, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, "text": "" }, { @@ -23754,36 +23784,6 @@ "logprob": -11.8515625, "text": "" }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, { "id": 32000, "logprob": -11.0625, @@ -23791,27 +23791,27 @@ }, { "id": 32000, - "logprob": -13.8828125, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -13.984375, + "logprob": -14.0234375, "text": "" }, { @@ -23821,22 +23821,22 @@ }, { "id": 32000, - "logprob": -14.1328125, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3515625, "text": "" }, { @@ -23846,7 +23846,7 @@ }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.90625, "text": "" }, { @@ -23856,7 +23856,7 @@ }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.5703125, "text": "" }, { @@ -23866,7 +23866,7 @@ }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.6875, "text": "" }, { @@ -23876,12 +23876,12 @@ }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.8125, "text": "" }, { @@ -23901,12 +23901,12 @@ }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.46875, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.0703125, "text": "" }, { @@ -23936,7 +23936,7 @@ }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.9765625, "text": "" }, { @@ -23946,32 +23946,32 @@ }, { "id": 32000, - "logprob": -10.8828125, + "logprob": -10.890625, "text": "" }, { "id": 32000, - "logprob": -11.015625, + "logprob": -11.0078125, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -10.609375, "text": "" }, { "id": 32000, - "logprob": -10.7890625, + "logprob": -10.796875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.59375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { @@ -23981,12 +23981,12 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5390625, "text": "" }, { @@ -23996,12 +23996,12 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -10.9375, "text": "" }, { @@ -24011,117 +24011,52 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.3671875, "text": "" }, { "id": 32000, - "logprob": -9.609375, + "logprob": -9.625, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8515625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.3359375, "text": "" }, { "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, + "logprob": -14.015625, "text": "" }, { @@ -24131,12 +24066,22 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -15.6875, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, "text": "" }, { @@ -24146,12 +24091,67 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, "text": "" }, { @@ -24161,12 +24161,12 @@ }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -12.328125, "text": "" }, { @@ -24181,12 +24181,12 @@ }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.921875, "text": "" }, { "id": 32000, - "logprob": -10.84375, + "logprob": -10.8515625, "text": "" }, { @@ -24196,47 +24196,47 @@ }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.40625, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -10.8125, + "logprob": -10.8046875, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -12.5546875, + "logprob": -12.5703125, "text": "" }, { @@ -24251,7 +24251,7 @@ }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.734375, "text": "" }, { @@ -24266,47 +24266,47 @@ }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -14.203125, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -14.828125, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -18.140625, + "logprob": -18.046875, "text": "" }, { "id": 32000, - "logprob": -15.59375, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -14.515625, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -10.625, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0546875, "text": "" }, { @@ -24316,47 +24316,47 @@ }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9296875, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -10.9453125, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.828125, "text": "" }, { @@ -24371,27 +24371,27 @@ }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.53125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -15.171875, + "logprob": -15.2421875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { @@ -24401,7 +24401,7 @@ }, { "id": 32000, - "logprob": -11.6875, + "logprob": -11.671875, "text": "" }, { @@ -24421,12 +24421,12 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.609375, "text": "" }, { @@ -24436,12 +24436,12 @@ }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2109375, "text": "" }, { @@ -24456,12 +24456,12 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { @@ -24481,87 +24481,87 @@ }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -11.5078125, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -14.46875, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -14.9453125, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -14.7734375, + "logprob": -14.5546875, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.4765625, "text": "" }, { "id": 32000, - "logprob": -13.4375, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.3984375, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -14.796875, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.6953125, "text": "" }, { @@ -24571,12 +24571,7 @@ }, { "id": 32000, - "logprob": -12.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.96875, + "logprob": -12.734375, "text": "" }, { @@ -24586,12 +24581,17 @@ }, { "id": 32000, - "logprob": -11.4296875, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, "text": "" }, { @@ -24606,17 +24606,17 @@ }, { "id": 32000, - "logprob": -11.2109375, + "logprob": -11.1640625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.5, "text": "" }, { @@ -24626,7 +24626,7 @@ }, { "id": 32000, - "logprob": -14.140625, + "logprob": -14.1171875, "text": "" }, { @@ -24636,47 +24636,12 @@ }, { "id": 32000, - "logprob": -12.484375, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -10.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, + "logprob": -10.6015625, "text": "" }, { @@ -24686,207 +24651,7 @@ }, { "id": 32000, - "logprob": -11.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -15.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8984375, + "logprob": -13.625, "text": "" }, { @@ -24896,12 +24661,247 @@ }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -15.1640625, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, "text": "" }, { @@ -24911,12 +24911,12 @@ }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3671875, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.6171875, "text": "" }, { @@ -24941,22 +24941,22 @@ }, { "id": 32000, - "logprob": -11.3046875, + "logprob": -11.3125, "text": "" }, { "id": 32000, - "logprob": -11.171875, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0859375, "text": "" }, { @@ -24966,17 +24966,17 @@ }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.515625, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { @@ -24986,12 +24986,12 @@ }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.0078125, "text": "" }, { "id": 32000, - "logprob": -15.171875, + "logprob": -15.21875, "text": "" }, { @@ -25001,27 +25001,27 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.2890625, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.515625, "text": "" }, { @@ -25031,42 +25031,42 @@ }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.4609375, "text": "" }, { "id": 32000, - "logprob": -14.796875, + "logprob": -14.84375, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4453125, "text": "" }, { @@ -25076,22 +25076,22 @@ }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -15.8984375, + "logprob": -15.890625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.953125, "text": "" }, { @@ -25106,17 +25106,17 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.1875, "text": "" }, { "id": 32000, - "logprob": -12.1796875, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.125, "text": "" }, { @@ -25126,27 +25126,27 @@ }, { "id": 32000, - "logprob": -13.125, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1484375, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.9453125, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.2890625, "text": "" }, { @@ -25156,7 +25156,7 @@ }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.734375, "text": "" }, { @@ -25166,32 +25166,32 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.140625, "text": "" }, { @@ -25206,12 +25206,12 @@ }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { @@ -25221,7 +25221,7 @@ }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.375, "text": "" }, { @@ -25231,52 +25231,52 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -14.265625, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -11.234375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -15.3203125, + "logprob": -15.328125, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.671875, "text": "" }, { @@ -25286,7 +25286,7 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.9921875, "text": "" }, { @@ -25296,7 +25296,7 @@ }, { "id": 32000, - "logprob": -14.953125, + "logprob": -14.9453125, "text": "" }, { @@ -25306,12 +25306,12 @@ }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.265625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { @@ -25336,32 +25336,32 @@ }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3359375, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.171875, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { @@ -25371,17 +25371,17 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3515625, "text": "" }, { @@ -25401,17 +25401,17 @@ }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.40625, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -16.609375, + "logprob": -16.59375, "text": "" }, { @@ -25421,12 +25421,12 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.5390625, "text": "" }, { @@ -25441,12 +25441,12 @@ }, { "id": 32000, - "logprob": -13.0859375, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.03125, "text": "" }, { @@ -25456,7 +25456,7 @@ }, { "id": 32000, - "logprob": -10.5859375, + "logprob": -10.59375, "text": "" }, { @@ -25466,22 +25466,22 @@ }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -11.203125, + "logprob": -11.2109375, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1796875, "text": "" }, { @@ -25491,52 +25491,57 @@ }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -10.171875, + "logprob": -10.109375, "text": "" }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -13.09375, + "logprob": -13.1328125, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -16.0, + "logprob": -16.015625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.7265625, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, "text": "" }, { @@ -25546,12 +25551,7 @@ }, { "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.65625, + "logprob": -10.6640625, "text": "" }, { @@ -25561,7 +25561,7 @@ }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { @@ -25591,22 +25591,22 @@ }, { "id": 32000, - "logprob": -10.796875, + "logprob": -10.8046875, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -14.265625, "text": "" }, { @@ -25616,17 +25616,17 @@ }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.6171875, "text": "" }, { @@ -25636,12 +25636,12 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.890625, "text": "" }, { @@ -25651,27 +25651,27 @@ }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -13.0, + "logprob": -12.984375, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.046875, "text": "" }, { @@ -25681,37 +25681,37 @@ }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.5234375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.9296875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.734375, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -10.8203125, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.390625, "text": "" }, { @@ -25721,7 +25721,7 @@ }, { "id": 32000, - "logprob": -15.8203125, + "logprob": -15.84375, "text": "" }, { @@ -25731,22 +25731,22 @@ }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -16.796875, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -15.7109375, + "logprob": -15.6953125, "text": "" }, { @@ -25756,27 +25756,27 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -13.1171875, + "logprob": -13.1328125, "text": "" }, { "id": 32000, - "logprob": -14.40625, + "logprob": -14.4140625, "text": "" }, { "id": 32000, - "logprob": -14.4921875, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -10.953125, + "logprob": -10.9453125, "text": "" }, { @@ -25786,12 +25786,12 @@ }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.3828125, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.953125, "text": "" }, { @@ -25806,12 +25806,12 @@ }, { "id": 32000, - "logprob": -12.703125, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -17.265625, + "logprob": -17.34375, "text": "" }, { @@ -25821,32 +25821,32 @@ }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.46875, "text": "" }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.3828125, "text": "" }, { "id": 32000, - "logprob": -14.15625, + "logprob": -14.1953125, "text": "" }, { "id": 32000, - "logprob": -12.9609375, + "logprob": -12.984375, "text": "" }, { @@ -25861,12 +25861,12 @@ }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.125, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9375, "text": "" }, { @@ -25876,7 +25876,7 @@ }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { @@ -25886,37 +25886,37 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -11.8203125, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -14.2890625, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { @@ -25926,7 +25926,7 @@ }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2578125, "text": "" }, { @@ -25936,12 +25936,12 @@ }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.8203125, "text": "" }, { @@ -25956,42 +25956,42 @@ }, { "id": 32000, - "logprob": -10.953125, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -10.8203125, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -13.125, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.25, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0703125, "text": "" }, { @@ -26006,32 +26006,32 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -17.0625, + "logprob": -17.109375, "text": "" }, { "id": 32000, - "logprob": -15.5, + "logprob": -15.4375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.6171875, + "logprob": -13.625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.5078125, "text": "" }, { @@ -26041,82 +26041,12 @@ }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -13.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, + "logprob": -13.21875, "text": "" }, { @@ -26126,17 +26056,87 @@ }, { "id": 32000, - "logprob": -12.6875, + "logprob": -15.09375, "text": "" }, { "id": 32000, - "logprob": -10.75, + "logprob": -15.8515625, "text": "" }, { "id": 32000, - "logprob": -11.40625, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, "text": "" }, { @@ -26156,12 +26156,12 @@ }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -10.53125, + "logprob": -10.5390625, "text": "" }, { @@ -26171,47 +26171,17 @@ }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -16.984375, + "logprob": -16.953125, "text": "" }, { "id": 32000, - "logprob": -11.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, + "logprob": -11.921875, "text": "" }, { @@ -26221,27 +26191,57 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, "text": "" }, { @@ -26251,7 +26251,7 @@ }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.34375, "text": "" }, { @@ -26266,22 +26266,22 @@ }, { "id": 32000, - "logprob": -15.3359375, + "logprob": -15.34375, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -10.765625, + "logprob": -10.7578125, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.53125, "text": "" }, { @@ -26291,17 +26291,17 @@ }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.203125, "text": "" }, { "id": 32000, - "logprob": -17.15625, + "logprob": -17.078125, "text": "" }, { "id": 32000, - "logprob": -15.078125, + "logprob": -15.25, "text": "" }, { @@ -26311,32 +26311,32 @@ }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -16.109375, + "logprob": -16.0625, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -14.6796875, + "logprob": -14.5859375, "text": "" }, { @@ -26351,37 +26351,37 @@ }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -13.84375, + "logprob": -13.796875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7578125, "text": "" }, { @@ -26391,67 +26391,67 @@ }, { "id": 32000, - "logprob": -14.265625, + "logprob": -14.328125, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -13.84375, "text": "" }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.2109375, "text": "" }, { "id": 32000, - "logprob": -12.375, + "logprob": -12.390625, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -14.71875, + "logprob": -14.6796875, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -10.6484375, + "logprob": -10.65625, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -11.0625, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5234375, "text": "" }, { @@ -26466,12 +26466,12 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.125, "text": "" }, { @@ -26486,7 +26486,7 @@ }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.984375, "text": "" }, { @@ -26496,17 +26496,17 @@ }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -15.4375, + "logprob": -15.4921875, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.921875, "text": "" }, { @@ -26516,17 +26516,17 @@ }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.0546875, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.21875, "text": "" }, { @@ -26541,12 +26541,12 @@ }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8984375, "text": "" }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8515625, "text": "" }, { @@ -26556,7 +26556,7 @@ }, { "id": 32000, - "logprob": -17.453125, + "logprob": -17.4375, "text": "" }, { @@ -26571,7 +26571,7 @@ }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { @@ -26586,12 +26586,12 @@ }, { "id": 32000, - "logprob": -14.203125, + "logprob": -14.2421875, "text": "" }, { "id": 32000, - "logprob": -13.6953125, + "logprob": -13.7265625, "text": "" }, { @@ -26601,37 +26601,37 @@ }, { "id": 32000, - "logprob": -10.5859375, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.7421875, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -14.734375, + "logprob": -14.71875, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.578125, "text": "" }, { @@ -26641,7 +26641,7 @@ }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.796875, "text": "" }, { @@ -26651,12 +26651,12 @@ }, { "id": 32000, - "logprob": -16.390625, + "logprob": -16.46875, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9296875, "text": "" }, { @@ -26666,7 +26666,7 @@ }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8515625, "text": "" }, { @@ -26676,22 +26676,22 @@ }, { "id": 32000, - "logprob": -16.515625, + "logprob": -16.53125, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -13.359375, "text": "" }, { "id": 32000, - "logprob": -14.0, + "logprob": -13.96875, "text": "" }, { @@ -26701,22 +26701,22 @@ }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.5078125, "text": "" }, { @@ -26736,77 +26736,77 @@ }, { "id": 32000, - "logprob": -14.0390625, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -17.1875, + "logprob": -17.21875, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -14.6015625, + "logprob": -14.6171875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -15.0234375, + "logprob": -15.03125, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -15.921875, + "logprob": -15.890625, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8515625, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.828125, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.640625, "text": "" }, { @@ -26816,27 +26816,27 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -14.7421875, + "logprob": -14.7578125, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.2578125, "text": "" }, { @@ -26856,7 +26856,37 @@ }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, "text": "" }, { @@ -26864,36 +26894,6 @@ "logprob": -13.0390625, "text": "" }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -17.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, { "id": 32000, "logprob": -11.84375, @@ -26901,12 +26901,12 @@ }, { "id": 32000, - "logprob": -15.25, + "logprob": -15.265625, "text": "" }, { "id": 32000, - "logprob": -16.96875, + "logprob": -16.984375, "text": "" }, { @@ -26916,17 +26916,17 @@ }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.140625, "text": "" }, { @@ -26936,77 +26936,77 @@ }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -17.953125, + "logprob": -17.984375, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -14.6796875, + "logprob": -14.703125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.3828125, "text": "" }, { "id": 32000, - "logprob": -11.6484375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -16.1875, + "logprob": -16.25, "text": "" }, { "id": 32000, - "logprob": -16.796875, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -14.359375, + "logprob": -14.375, "text": "" }, { @@ -27016,112 +27016,17 @@ }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -17.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -16.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.421875, + "logprob": -12.28125, "text": "" }, { @@ -27131,47 +27036,7 @@ }, { "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, + "logprob": -17.5625, "text": "" }, { @@ -27181,7 +27046,142 @@ }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -15.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, "text": "" }, { @@ -27191,17 +27191,17 @@ }, { "id": 32000, - "logprob": -15.6171875, + "logprob": -15.640625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -14.25, + "logprob": -14.265625, "text": "" }, { @@ -27216,17 +27216,17 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.828125, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { @@ -27236,7 +27236,7 @@ }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3203125, "text": "" }, { @@ -27246,37 +27246,37 @@ }, { "id": 32000, - "logprob": -14.2265625, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -14.890625, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5390625, "text": "" }, { "id": 32000, - "logprob": -19.421875, + "logprob": -19.4375, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6796875, "text": "" }, { @@ -27291,7 +27291,7 @@ }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2109375, "text": "" }, { @@ -27301,27 +27301,27 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -17.65625, + "logprob": -17.625, "text": "" }, { "id": 32000, - "logprob": -17.703125, + "logprob": -17.75, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -12.0234375, "text": "" }, { @@ -27331,7 +27331,7 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5859375, "text": "" }, { @@ -27341,37 +27341,37 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -10.5625, + "logprob": -10.5703125, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -13.2734375, + "logprob": -13.3046875, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.3359375, "text": "" }, { @@ -27386,17 +27386,17 @@ }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -14.859375, + "logprob": -14.9375, "text": "" }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0390625, "text": "" }, { @@ -27421,27 +27421,27 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.0703125, + "logprob": -15.0546875, "text": "" }, { @@ -27456,17 +27456,17 @@ }, { "id": 32000, - "logprob": -16.859375, + "logprob": -16.84375, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -14.8515625, + "logprob": -14.9296875, "text": "" }, { @@ -27476,12 +27476,12 @@ }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.984375, "text": "" }, { @@ -27491,12 +27491,12 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -14.4921875, + "logprob": -14.515625, "text": "" }, { @@ -27506,17 +27506,17 @@ }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5625, "text": "" }, { "id": 32000, - "logprob": -14.859375, + "logprob": -14.8125, "text": "" }, { @@ -27526,12 +27526,12 @@ }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6484375, "text": "" }, { @@ -27541,12 +27541,12 @@ }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1484375, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8671875, "text": "" }, { @@ -27561,27 +27561,27 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.453125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -16.9375, + "logprob": -16.890625, "text": "" }, { "id": 32000, - "logprob": -12.890625, + "logprob": -12.84375, "text": "" }, { @@ -27591,12 +27591,12 @@ }, { "id": 32000, - "logprob": -14.6484375, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.9375, "text": "" }, { @@ -27606,7 +27606,7 @@ }, { "id": 32000, - "logprob": -17.15625, + "logprob": -17.6875, "text": "" }, { @@ -27621,17 +27621,17 @@ }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.2109375, + "logprob": -11.203125, "text": "" }, { @@ -27646,17 +27646,17 @@ }, { "id": 32000, - "logprob": -14.3046875, + "logprob": -14.3125, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.203125, "text": "" }, { @@ -27666,22 +27666,22 @@ }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -11.0703125, + "logprob": -11.078125, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.6015625, "text": "" }, { @@ -27691,12 +27691,12 @@ }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -13.4453125, + "logprob": -13.46875, "text": "" }, { @@ -27706,22 +27706,22 @@ }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.46875, "text": "" }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.140625, "text": "" }, { @@ -27731,17 +27731,17 @@ }, { "id": 32000, - "logprob": -14.171875, + "logprob": -14.109375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -14.34375, "text": "" }, { @@ -27751,47 +27751,47 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -12.890625, + "logprob": -12.8984375, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.625, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -14.71875, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.625, "text": "" }, { @@ -27806,12 +27806,12 @@ }, { "id": 32000, - "logprob": -15.0, + "logprob": -14.6484375, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.546875, "text": "" }, { @@ -27821,7 +27821,7 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { @@ -27836,7 +27836,7 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9375, "text": "" }, { @@ -27846,12 +27846,12 @@ }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -13.4453125, + "logprob": -13.46875, "text": "" }, { @@ -27861,17 +27861,17 @@ }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.7734375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1640625, "text": "" }, { @@ -27881,22 +27881,22 @@ }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.75, "text": "" }, { @@ -27906,7 +27906,7 @@ }, { "id": 32000, - "logprob": -16.40625, + "logprob": -16.390625, "text": "" }, { @@ -27916,17 +27916,17 @@ }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -13.921875, + "logprob": -13.8984375, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9921875, "text": "" }, { @@ -27936,27 +27936,27 @@ }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -16.03125, + "logprob": -16.046875, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6484375, "text": "" }, { "id": 32000, - "logprob": -15.3125, + "logprob": -15.3203125, "text": "" }, { @@ -27966,17 +27966,17 @@ }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3984375, "text": "" }, { "id": 32000, - "logprob": -14.484375, + "logprob": -15.4765625, "text": "" }, { @@ -27986,37 +27986,12 @@ }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -17.640625, + "logprob": -11.5859375, "text": "" }, { @@ -28024,6 +27999,31 @@ "logprob": -12.1015625, "text": "" }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, { "id": 32000, "logprob": -11.84375, @@ -28031,17 +28031,17 @@ }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.59375, "text": "" }, { @@ -28051,17 +28051,17 @@ }, { "id": 32000, - "logprob": -16.703125, + "logprob": -16.6875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -14.90625, + "logprob": -14.859375, "text": "" }, { @@ -28071,42 +28071,42 @@ }, { "id": 32000, - "logprob": -15.21875, + "logprob": -15.203125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -17.0, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.734375, + "logprob": -14.8671875, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.1171875, "text": "" }, { @@ -28121,7 +28121,7 @@ }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.359375, "text": "" }, { @@ -28131,7 +28131,7 @@ }, { "id": 32000, - "logprob": -13.75, + "logprob": -13.765625, "text": "" }, { @@ -28146,22 +28146,22 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.6015625, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.703125, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.40625, "text": "" }, { @@ -28171,17 +28171,17 @@ }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6875, "text": "" }, { @@ -28191,47 +28191,47 @@ }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9609375, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -18.71875, + "logprob": -18.703125, "text": "" }, { "id": 32000, - "logprob": -15.59375, + "logprob": -15.6484375, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -13.6875, + "logprob": -13.703125, "text": "" }, { "id": 32000, - "logprob": -15.0703125, + "logprob": -15.0859375, "text": "" }, { @@ -28241,12 +28241,12 @@ }, { "id": 32000, - "logprob": -14.53125, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3671875, "text": "" }, { @@ -28256,7 +28256,7 @@ }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.640625, "text": "" }, { @@ -28266,37 +28266,37 @@ }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.3515625, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -14.125, + "logprob": -14.15625, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.90625, "text": "" }, { @@ -28311,22 +28311,22 @@ }, { "id": 32000, - "logprob": -10.53125, + "logprob": -10.5625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9296875, "text": "" }, { @@ -28336,7 +28336,7 @@ }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.875, "text": "" }, { @@ -28351,17 +28351,17 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.109375, "text": "" }, { @@ -28371,22 +28371,22 @@ }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { @@ -28396,87 +28396,87 @@ }, { "id": 32000, - "logprob": -16.6875, + "logprob": -16.671875, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -15.0234375, + "logprob": -14.9453125, "text": "" }, { "id": 32000, - "logprob": -16.578125, + "logprob": -16.5625, "text": "" }, { "id": 32000, - "logprob": -15.1875, + "logprob": -15.203125, "text": "" }, { "id": 32000, - "logprob": -14.7109375, + "logprob": -14.6953125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -13.8046875, + "logprob": -13.796875, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -15.3125, + "logprob": -15.484375, "text": "" }, { "id": 32000, - "logprob": -14.6171875, + "logprob": -14.6328125, "text": "" }, { @@ -28486,17 +28486,17 @@ }, { "id": 32000, - "logprob": -13.7265625, + "logprob": -13.75, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.3125, "text": "" }, { @@ -28506,62 +28506,62 @@ }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.484375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.2734375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -16.5, + "logprob": -16.53125, "text": "" }, { "id": 32000, - "logprob": -14.1171875, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -15.078125, + "logprob": -15.03125, "text": "" }, { "id": 32000, - "logprob": -15.4609375, + "logprob": -15.484375, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6015625, "text": "" }, { @@ -28576,7 +28576,7 @@ }, { "id": 32000, - "logprob": -11.15625, + "logprob": -11.1640625, "text": "" }, { @@ -28586,82 +28586,82 @@ }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -18.015625, + "logprob": -18.0, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.625, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -15.1015625, + "logprob": -15.3046875, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1875, "text": "" }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -15.1640625, + "logprob": -15.125, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -15.4453125, + "logprob": -15.546875, "text": "" }, { "id": 32000, - "logprob": -16.03125, + "logprob": -16.015625, "text": "" }, { "id": 32000, - "logprob": -14.125, + "logprob": -14.109375, "text": "" }, { @@ -28671,12 +28671,12 @@ }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.734375, "text": "" }, { @@ -28696,7 +28696,7 @@ }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.7421875, "text": "" }, { @@ -28706,12 +28706,12 @@ }, { "id": 32000, - "logprob": -15.3046875, + "logprob": -15.296875, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6015625, "text": "" }, { @@ -28721,12 +28721,12 @@ }, { "id": 32000, - "logprob": -13.4921875, + "logprob": -13.5, "text": "" }, { "id": 32000, - "logprob": -10.8984375, + "logprob": -10.890625, "text": "" }, { @@ -28736,22 +28736,22 @@ }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1328125, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3359375, "text": "" }, { @@ -28766,127 +28766,17 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.796875, "text": "" }, { "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -19.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -16.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5, - "text": "" - }, - { - "id": 32000, - "logprob": -15.265625, + "logprob": -13.4296875, "text": "" }, { @@ -28896,32 +28786,142 @@ }, { "id": 32000, - "logprob": -14.59375, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -15.34375, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -13.4375, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -19.65625, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, "text": "" }, { @@ -28931,17 +28931,17 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.2265625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6171875, "text": "" }, { @@ -28956,17 +28956,17 @@ }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -14.96875, + "logprob": -15.0703125, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.375, "text": "" }, { @@ -28976,7 +28976,7 @@ }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1796875, "text": "" }, { @@ -28986,17 +28986,17 @@ }, { "id": 32000, - "logprob": -15.828125, + "logprob": -15.796875, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.640625, + "logprob": -14.0390625, "text": "" }, { @@ -29006,12 +29006,12 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { @@ -29021,22 +29021,22 @@ }, { "id": 32000, - "logprob": -16.34375, + "logprob": -16.375, "text": "" }, { "id": 32000, - "logprob": -13.8671875, + "logprob": -13.8828125, "text": "" }, { "id": 32000, - "logprob": -14.6484375, + "logprob": -14.6171875, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.625, "text": "" }, { @@ -29056,72 +29056,72 @@ }, { "id": 32000, - "logprob": -11.6796875, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5625, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4609375, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.953125, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6484375, "text": "" }, { @@ -29131,17 +29131,17 @@ }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { @@ -29156,17 +29156,17 @@ }, { "id": 32000, - "logprob": -15.28125, + "logprob": -15.1953125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.09375, "text": "" }, { @@ -29176,47 +29176,47 @@ }, { "id": 32000, - "logprob": -15.5625, + "logprob": -15.59375, "text": "" }, { "id": 32000, - "logprob": -11.6875, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.609375, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.671875, "text": "" }, { "id": 32000, - "logprob": -15.3515625, + "logprob": -15.34375, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.2265625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.78125, "text": "" }, { @@ -29226,122 +29226,17 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -12.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -16.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.34375, + "logprob": -12.03125, "text": "" }, { @@ -29351,27 +29246,132 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -16.515625, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -13.3984375, "text": "" }, { "id": 32000, - "logprob": -15.1484375, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, "text": "" }, { @@ -29386,12 +29386,12 @@ }, { "id": 32000, - "logprob": -14.421875, + "logprob": -14.40625, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.046875, "text": "" }, { @@ -29401,52 +29401,52 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5078125, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -17.28125, + "logprob": -17.3125, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5234375, "text": "" }, { "id": 32000, - "logprob": -17.59375, + "logprob": -17.625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.9140625, "text": "" }, { "id": 32000, - "logprob": -16.625, + "logprob": -16.65625, "text": "" }, { @@ -29456,27 +29456,27 @@ }, { "id": 2418, - "logprob": -19.078125, + "logprob": -19.0625, "text": "Can" }, { "id": 368, - "logprob": -0.19665527, + "logprob": -0.19726562, "text": "you" }, { "id": 1912, - "logprob": -1.5009766, + "logprob": -1.4990234, "text": "tell" }, { "id": 528, - "logprob": -0.31054688, + "logprob": -0.31152344, "text": "me" }, { "id": 264, - "logprob": -2.6269531, + "logprob": -2.6367188, "text": "a" }, { @@ -29486,12 +29486,12 @@ }, { "id": 2485, - "logprob": -0.99365234, + "logprob": -0.9941406, "text": "short" }, { "id": 2838, - "logprob": -0.45996094, + "logprob": -0.46118164, "text": "story" }, { @@ -29501,22 +29501,22 @@ }, { "id": 356, - "logprob": -0.029006958, + "logprob": -0.029129028, "text": "on" }, { "id": 272, - "logprob": -0.9897461, + "logprob": -0.9902344, "text": "the" }, { "id": 3469, - "logprob": -0.29125977, + "logprob": -0.29052734, "text": "image" }, { "id": 28804, - "logprob": -0.43017578, + "logprob": -0.43188477, "text": "?" } ], @@ -29524,13 +29524,13 @@ "tokens": [ { "id": 13, - "logprob": -0.007446289, + "logprob": -0.0076828003, "special": false, "text": "\n" }, { "id": 13, - "logprob": -0.20129395, + "logprob": -0.19958496, "special": false, "text": "\n" }, @@ -29542,43 +29542,43 @@ }, { "id": 3714, - "logprob": -0.20825195, + "logprob": -0.20861816, "special": false, "text": " upon" }, { "id": 264, - "logprob": -0.0017786026, + "logprob": -0.0017719269, "special": false, "text": " a" }, { "id": 727, - "logprob": -0.011955261, + "logprob": -0.011749268, "special": false, "text": " time" }, { "id": 28725, - "logprob": -0.17297363, + "logprob": -0.17529297, "special": false, "text": "," }, { "id": 736, - "logprob": -0.91015625, + "logprob": -0.9086914, "special": false, "text": " there" }, { "id": 403, - "logprob": -0.05758667, + "logprob": -0.056732178, "special": false, "text": " was" }, { "id": 264, - "logprob": -0.009544373, + "logprob": -0.00970459, "special": false, "text": " a" } @@ -29620,7 +29620,7 @@ }, { "id": 32000, - "logprob": -15.9140625, + "logprob": -15.7109375, "text": "" }, { @@ -29630,37 +29630,37 @@ }, { "id": 32000, - "logprob": -10.03125, + "logprob": -10.0234375, "text": "" }, { "id": 32000, - "logprob": -10.140625, + "logprob": -10.1328125, "text": "" }, { "id": 32000, - "logprob": -10.296875, + "logprob": -10.421875, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -16.0625, + "logprob": -16.59375, "text": "" }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -13.828125, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.390625, "text": "" }, { @@ -29670,7 +29670,7 @@ }, { "id": 32000, - "logprob": -10.171875, + "logprob": -10.1640625, "text": "" }, { @@ -29680,22 +29680,22 @@ }, { "id": 32000, - "logprob": -10.359375, + "logprob": -10.3984375, "text": "" }, { "id": 32000, - "logprob": -14.953125, + "logprob": -15.015625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -13.3046875, + "logprob": -13.2734375, "text": "" }, { @@ -29705,67 +29705,37 @@ }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.0390625, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.5234375, "text": "" }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.4765625, "text": "" }, { "id": 32000, - "logprob": -14.2890625, + "logprob": -14.2421875, "text": "" }, { "id": 32000, - "logprob": -13.625, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -11.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -17.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -18.265625, + "logprob": -11.359375, "text": "" }, { @@ -29775,17 +29745,47 @@ }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -17.34375, "text": "" }, { "id": 32000, - "logprob": -9.8671875, + "logprob": -10.3984375, "text": "" }, { "id": 32000, - "logprob": -10.765625, + "logprob": -10.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7734375, "text": "" }, { @@ -29795,12 +29795,12 @@ }, { "id": 32000, - "logprob": -10.984375, + "logprob": -10.96875, "text": "" }, { "id": 32000, - "logprob": -10.6171875, + "logprob": -10.609375, "text": "" }, { @@ -29810,17 +29810,17 @@ }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.5078125, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.4453125, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.59375, "text": "" }, { @@ -29835,27 +29835,27 @@ }, { "id": 32000, - "logprob": -10.6796875, + "logprob": -10.640625, "text": "" }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -12.0234375, "text": "" }, { @@ -29870,137 +29870,12 @@ }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.0625, "text": "" }, { "id": 32000, - "logprob": -10.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -18.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.25, - "text": "" - }, - { - "id": 32000, - "logprob": -10.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.234375, + "logprob": -10.3828125, "text": "" }, { @@ -30008,6 +29883,131 @@ "logprob": -11.171875, "text": "" }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, { "id": 32000, "logprob": -14.6796875, @@ -30015,7 +30015,7 @@ }, { "id": 32000, - "logprob": -10.375, + "logprob": -10.3671875, "text": "" }, { @@ -30030,17 +30030,22 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -11.0859375, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, "text": "" }, { @@ -30050,22 +30055,17 @@ }, { "id": 32000, - "logprob": -11.109375, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -11.0390625, + "logprob": -10.96875, "text": "" }, { "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.171875, + "logprob": -11.1484375, "text": "" }, { @@ -30075,7 +30075,7 @@ }, { "id": 32000, - "logprob": -10.7109375, + "logprob": -10.71875, "text": "" }, { @@ -30085,27 +30085,27 @@ }, { "id": 32000, - "logprob": -10.9140625, + "logprob": -10.8984375, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.2890625, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -10.6328125, + "logprob": -10.640625, "text": "" }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.7109375, "text": "" }, { @@ -30120,202 +30120,17 @@ }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.6875, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2109375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -9.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, + "logprob": -11.5078125, "text": "" }, { @@ -30325,62 +30140,247 @@ }, { "id": 32000, - "logprob": -11.34375, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -10.734375, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -11.2265625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -11.890625, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.21875, "text": "" }, { "id": 32000, - "logprob": -10.4375, + "logprob": -9.984375, "text": "" }, { "id": 32000, - "logprob": -10.6640625, + "logprob": -11.0, "text": "" }, { "id": 32000, - "logprob": -10.4765625, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -13.59375, + "logprob": -11.09375, "text": "" }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -14.0546875, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, "text": "" }, { @@ -30390,22 +30390,22 @@ }, { "id": 32000, - "logprob": -12.828125, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.671875, "text": "" }, { @@ -30420,37 +30420,12 @@ }, { "id": 32000, - "logprob": -12.2421875, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -10.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, + "logprob": -10.359375, "text": "" }, { @@ -30460,12 +30435,37 @@ }, { "id": 32000, - "logprob": -10.5703125, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -10.71875, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, "text": "" }, { @@ -30475,22 +30475,22 @@ }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.0390625, "text": "" }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -10.9921875, "text": "" }, { "id": 32000, - "logprob": -10.609375, + "logprob": -10.6171875, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2421875, "text": "" }, { @@ -30500,7 +30500,7 @@ }, { "id": 32000, - "logprob": -12.2578125, + "logprob": -12.265625, "text": "" }, { @@ -30510,7 +30510,7 @@ }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -12.859375, "text": "" }, { @@ -30520,12 +30520,12 @@ }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { @@ -30535,17 +30535,17 @@ }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2421875, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -10.3046875, + "logprob": -10.2890625, "text": "" }, { @@ -30555,7 +30555,12 @@ }, { "id": 32000, - "logprob": -11.0234375, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, "text": "" }, { @@ -30565,27 +30570,22 @@ }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.515625, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.1328125, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -10.5546875, "text": "" }, { "id": 32000, - "logprob": -10.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.3828125, + "logprob": -10.359375, "text": "" }, { @@ -30595,57 +30595,37 @@ }, { "id": 32000, - "logprob": -10.828125, + "logprob": -10.8125, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8671875, "text": "" }, { "id": 32000, - "logprob": -11.2734375, + "logprob": -11.1796875, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.203125, + "logprob": -11.59375, "text": "" }, { @@ -30655,22 +30635,27 @@ }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -13.4375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -14.203125, "text": "" }, { "id": 32000, - "logprob": -10.6171875, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, "text": "" }, { @@ -30680,22 +30665,12 @@ }, { "id": 32000, - "logprob": -11.25, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -10.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, + "logprob": -10.609375, "text": "" }, { @@ -30703,6 +30678,31 @@ "logprob": -10.90625, "text": "" }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, { "id": 32000, "logprob": -10.8671875, @@ -30720,7 +30720,7 @@ }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9921875, "text": "" }, { @@ -30730,7 +30730,7 @@ }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.3828125, "text": "" }, { @@ -30740,82 +30740,32 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.9921875, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -13.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.78125, + "logprob": -13.328125, "text": "" }, { @@ -30825,17 +30775,67 @@ }, { "id": 32000, - "logprob": -13.8828125, + "logprob": -12.7109375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, "text": "" }, { @@ -30850,57 +30850,57 @@ }, { "id": 32000, - "logprob": -13.609375, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.484375, "text": "" }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -14.9140625, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -13.3125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -11.1484375, + "logprob": -11.171875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.2265625, + "logprob": -11.1875, "text": "" }, { @@ -30910,67 +30910,17 @@ }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.1953125, "text": "" }, { "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, + "logprob": -12.1328125, "text": "" }, { @@ -30980,12 +30930,62 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, "text": "" }, { @@ -31000,7 +31000,17 @@ }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, "text": "" }, { @@ -31010,32 +31020,22 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -15.0234375, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -15.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8671875, + "logprob": -11.859375, "text": "" }, { @@ -31045,27 +31045,27 @@ }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.4921875, "text": "" }, { @@ -31075,12 +31075,12 @@ }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { @@ -31095,12 +31095,12 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -14.0234375, + "logprob": -14.015625, "text": "" }, { @@ -31115,32 +31115,32 @@ }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -13.7734375, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.359375, "text": "" }, { @@ -31155,12 +31155,12 @@ }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -13.5859375, + "logprob": -13.6015625, "text": "" }, { @@ -31175,12 +31175,12 @@ }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -13.6015625, + "logprob": -13.59375, "text": "" }, { @@ -31190,7 +31190,7 @@ }, { "id": 32000, - "logprob": -14.5859375, + "logprob": -14.5703125, "text": "" }, { @@ -31200,12 +31200,12 @@ }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -11.7890625, "text": "" }, { @@ -31215,12 +31215,12 @@ }, { "id": 32000, - "logprob": -14.421875, + "logprob": -14.4296875, "text": "" }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.53125, "text": "" }, { @@ -31230,117 +31230,12 @@ }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -16.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5234375, + "logprob": -11.609375, "text": "" }, { @@ -31350,17 +31245,32 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -14.5859375, + "logprob": -12.8828125, "text": "" }, { "id": 32000, - "logprob": -13.234375, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, "text": "" }, { @@ -31370,42 +31280,132 @@ }, { "id": 32000, - "logprob": -13.8046875, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -16.359375, "text": "" }, { "id": 32000, - "logprob": -16.203125, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.75, "text": "" }, { "id": 32000, - "logprob": -15.78125, + "logprob": -11.7890625, "text": "" }, { "id": 32000, - "logprob": -12.734375, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, "text": "" }, { @@ -31415,12 +31415,12 @@ }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.71875, "text": "" }, { @@ -31435,7 +31435,7 @@ }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.3203125, "text": "" }, { @@ -31445,17 +31445,17 @@ }, { "id": 32000, - "logprob": -14.21875, + "logprob": -14.2265625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1875, "text": "" }, { @@ -31480,22 +31480,22 @@ }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.1875, "text": "" }, { @@ -31505,12 +31505,12 @@ }, { "id": 32000, - "logprob": -14.4140625, + "logprob": -14.421875, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2890625, "text": "" }, { @@ -31530,27 +31530,27 @@ }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.859375, "text": "" }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.9453125, "text": "" }, { @@ -31565,27 +31565,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.59375, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, "text": "" }, { @@ -31595,22 +31605,12 @@ }, { "id": 32000, - "logprob": -13.203125, + "logprob": -15.3515625, "text": "" }, { "id": 32000, - "logprob": -11.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2109375, + "logprob": -13.1875, "text": "" }, { @@ -31620,22 +31620,22 @@ }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -12.5390625, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -13.3203125, "text": "" }, { @@ -31645,27 +31645,27 @@ }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9921875, "text": "" }, { @@ -31675,32 +31675,32 @@ }, { "id": 32000, - "logprob": -13.375, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3359375, "text": "" }, { @@ -31710,12 +31710,12 @@ }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.984375, "text": "" }, { @@ -31725,7 +31725,7 @@ }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4140625, "text": "" }, { @@ -31735,17 +31735,17 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.421875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { @@ -31760,12 +31760,12 @@ }, { "id": 32000, - "logprob": -13.96875, + "logprob": -14.0, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.40625, "text": "" }, { @@ -31775,27 +31775,27 @@ }, { "id": 32000, - "logprob": -12.8046875, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -13.1796875, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.765625, "text": "" }, { @@ -31805,37 +31805,37 @@ }, { "id": 32000, - "logprob": -12.2578125, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -14.6328125, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.3984375, "text": "" }, { @@ -31845,27 +31845,42 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -13.8671875, + "logprob": -13.875, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, "text": "" }, { @@ -31875,27 +31890,12 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -13.59375, "text": "" }, { "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { @@ -31905,7 +31905,12 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, "text": "" }, { @@ -31915,12 +31920,7 @@ }, { "id": 32000, - "logprob": -13.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, + "logprob": -12.4609375, "text": "" }, { @@ -31930,7 +31930,12 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, "text": "" }, { @@ -31940,22 +31945,17 @@ }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -15.390625, "text": "" }, { "id": 32000, - "logprob": -15.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, + "logprob": -11.953125, "text": "" }, { @@ -31965,27 +31965,27 @@ }, { "id": 32000, - "logprob": -15.46875, + "logprob": -15.4921875, "text": "" }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.9296875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.609375, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.984375, "text": "" }, { @@ -31995,22 +31995,22 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1875, "text": "" }, { @@ -32020,42 +32020,42 @@ }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8984375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -14.2734375, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.2109375, "text": "" }, { @@ -32090,12 +32090,12 @@ }, { "id": 32000, - "logprob": -14.0546875, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.53125, "text": "" }, { @@ -32105,17 +32105,17 @@ }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.0546875, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.328125, "text": "" }, { @@ -32130,22 +32130,22 @@ }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.078125, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.828125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.8046875, "text": "" }, { @@ -32155,7 +32155,7 @@ }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.59375, "text": "" }, { @@ -32165,32 +32165,32 @@ }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5546875, "text": "" }, { @@ -32200,142 +32200,67 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -14.6015625, + "logprob": -14.609375, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -13.1953125, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.46875, "text": "" }, { "id": 32000, - "logprob": -15.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -15.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, + "logprob": -15.609375, "text": "" }, { @@ -32345,27 +32270,102 @@ }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -10.6640625, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -15.765625, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7890625, "text": "" }, { @@ -32375,52 +32375,52 @@ }, { "id": 32000, - "logprob": -11.234375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -14.5078125, + "logprob": -14.484375, "text": "" }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -16.234375, + "logprob": -16.21875, "text": "" }, { "id": 32000, - "logprob": -14.4609375, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -16.140625, + "logprob": -16.109375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -12.984375, "text": "" }, { @@ -32435,7 +32435,7 @@ }, { "id": 32000, - "logprob": -13.828125, + "logprob": -13.8671875, "text": "" }, { @@ -32445,17 +32445,17 @@ }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0703125, "text": "" }, { @@ -32475,62 +32475,62 @@ }, { "id": 32000, - "logprob": -10.8203125, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -15.4140625, + "logprob": -15.46875, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -10.5078125, + "logprob": -10.515625, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -11.015625, "text": "" }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.3984375, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.375, "text": "" }, { "id": 32000, - "logprob": -13.6484375, + "logprob": -13.5625, "text": "" }, { @@ -32540,7 +32540,7 @@ }, { "id": 32000, - "logprob": -11.203125, + "logprob": -11.2109375, "text": "" }, { @@ -32550,47 +32550,47 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6640625, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8828125, "text": "" }, { "id": 32000, - "logprob": -10.1953125, + "logprob": -9.9375, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.2734375, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -14.25, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.65625, "text": "" }, { @@ -32600,12 +32600,12 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -14.90625, + "logprob": -14.8359375, "text": "" }, { @@ -32615,7 +32615,7 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.8984375, "text": "" }, { @@ -32635,82 +32635,82 @@ }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -15.578125, + "logprob": -15.5390625, "text": "" }, { "id": 32000, - "logprob": -15.0546875, + "logprob": -15.2578125, "text": "" }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.1171875, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -11.0, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.296875, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -13.6640625, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.5859375, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.3828125, "text": "" }, { @@ -32725,27 +32725,27 @@ }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -13.1796875, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.125, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.9375, "text": "" }, { @@ -32755,62 +32755,7 @@ }, { "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5, - "text": "" - }, - { - "id": 32000, - "logprob": -11.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -9.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, + "logprob": -11.3203125, "text": "" }, { @@ -32820,12 +32765,12 @@ }, { "id": 32000, - "logprob": -12.1875, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.3359375, "text": "" }, { @@ -32835,17 +32780,32 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.359375, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -9.6953125, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, "text": "" }, { @@ -32855,27 +32815,67 @@ }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, "text": "" }, { @@ -32885,12 +32885,12 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -13.875, + "logprob": -13.9453125, "text": "" }, { @@ -32900,7 +32900,7 @@ }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.0859375, "text": "" }, { @@ -32915,162 +32915,17 @@ }, { "id": 32000, - "logprob": -13.875, + "logprob": -13.7890625, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -16.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5078125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.625, + "logprob": -12.671875, "text": "" }, { @@ -33080,42 +32935,187 @@ }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, "text": "" }, { @@ -33125,22 +33125,22 @@ }, { "id": 32000, - "logprob": -14.984375, + "logprob": -15.0234375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9453125, "text": "" }, { @@ -33155,27 +33155,27 @@ }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.9609375, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -16.15625, + "logprob": -16.140625, "text": "" }, { "id": 32000, - "logprob": -13.4375, + "logprob": -13.4609375, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7265625, "text": "" }, { @@ -33185,12 +33185,12 @@ }, { "id": 32000, - "logprob": -13.25, + "logprob": -13.234375, "text": "" }, { "id": 32000, - "logprob": -13.2421875, + "logprob": -13.2578125, "text": "" }, { @@ -33200,12 +33200,12 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -13.8359375, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.6171875, "text": "" }, { @@ -33215,12 +33215,12 @@ }, { "id": 32000, - "logprob": -14.4609375, + "logprob": -14.4765625, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.15625, "text": "" }, { @@ -33230,17 +33230,17 @@ }, { "id": 32000, - "logprob": -14.1015625, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.265625, "text": "" }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.6328125, "text": "" }, { @@ -33255,42 +33255,42 @@ }, { "id": 32000, - "logprob": -13.03125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -10.3984375, + "logprob": -10.46875, "text": "" }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -13.5625, + "logprob": -13.59375, "text": "" }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -14.09375, + "logprob": -14.140625, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.15625, "text": "" }, { @@ -33300,32 +33300,32 @@ }, { "id": 32000, - "logprob": -14.0625, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -14.1484375, + "logprob": -14.1328125, "text": "" }, { "id": 32000, - "logprob": -13.859375, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.34375, "text": "" }, { "id": 32000, - "logprob": -13.0078125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.40625, "text": "" }, { @@ -33335,7 +33335,7 @@ }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.8125, "text": "" }, { @@ -33350,32 +33350,7 @@ }, { "id": 32000, - "logprob": -11.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.859375, + "logprob": -11.46875, "text": "" }, { @@ -33385,32 +33360,57 @@ }, { "id": 32000, - "logprob": -14.171875, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -14.5, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -18.125, + "logprob": -14.8359375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -18.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, "text": "" }, { @@ -33420,37 +33420,37 @@ }, { "id": 32000, - "logprob": -14.9765625, + "logprob": -14.9921875, "text": "" }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -15.34375, + "logprob": -15.40625, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -14.5390625, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -15.265625, + "logprob": -15.2890625, "text": "" }, { "id": 32000, - "logprob": -13.625, + "logprob": -13.609375, "text": "" }, { @@ -33460,7 +33460,7 @@ }, { "id": 32000, - "logprob": -15.828125, + "logprob": -15.8359375, "text": "" }, { @@ -33475,12 +33475,12 @@ }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.328125, "text": "" }, { "id": 32000, - "logprob": -13.7734375, + "logprob": -13.78125, "text": "" }, { @@ -33490,27 +33490,27 @@ }, { "id": 32000, - "logprob": -13.484375, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -13.265625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.7578125, + "logprob": -13.75, "text": "" }, { @@ -33520,17 +33520,17 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0546875, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.65625, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6953125, "text": "" }, { @@ -33540,12 +33540,12 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -13.3203125, + "logprob": -13.328125, "text": "" }, { @@ -33555,17 +33555,12 @@ }, { "id": 32000, - "logprob": -13.6328125, + "logprob": -13.640625, "text": "" }, { "id": 32000, - "logprob": -15.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.234375, + "logprob": -15.15625, "text": "" }, { @@ -33575,32 +33570,37 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -13.25, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -11.3125, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -10.6328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -10.6484375, "text": "" }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, "text": "" }, { @@ -33610,77 +33610,52 @@ }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.8125, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.828125, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.578125, "text": "" }, { "id": 32000, - "logprob": -14.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.453125, + "logprob": -14.625, "text": "" }, { @@ -33690,22 +33665,47 @@ }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, "text": "" }, { @@ -33720,7 +33720,7 @@ }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.2265625, "text": "" }, { @@ -33735,32 +33735,32 @@ }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.796875, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -13.6328125, + "logprob": -13.65625, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.90625, "text": "" }, { @@ -33770,7 +33770,22 @@ }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, "text": "" }, { @@ -33780,27 +33795,12 @@ }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { @@ -33810,17 +33810,17 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -10.5, + "logprob": -10.5078125, "text": "" }, { @@ -33830,12 +33830,12 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.375, "text": "" }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.0625, "text": "" }, { @@ -33850,7 +33850,7 @@ }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.3515625, "text": "" }, { @@ -33860,12 +33860,12 @@ }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.203125, "text": "" }, { @@ -33875,7 +33875,7 @@ }, { "id": 32000, - "logprob": -13.828125, + "logprob": -13.8359375, "text": "" }, { @@ -33885,12 +33885,17 @@ }, { "id": 32000, - "logprob": -14.1953125, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -14.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, "text": "" }, { @@ -33900,12 +33905,7 @@ }, { "id": 32000, - "logprob": -14.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0625, "text": "" }, { @@ -33920,42 +33920,42 @@ }, { "id": 32000, - "logprob": -14.6875, + "logprob": -14.703125, "text": "" }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.296875, "text": "" }, { "id": 32000, - "logprob": -14.875, + "logprob": -14.8828125, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -13.109375, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.3203125, "text": "" }, { @@ -33965,17 +33965,17 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.734375, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.3984375, "text": "" }, { @@ -33985,47 +33985,47 @@ }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.8984375, "text": "" }, { "id": 32000, - "logprob": -13.671875, + "logprob": -13.6953125, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -13.3125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9921875, "text": "" }, { @@ -34035,7 +34035,7 @@ }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.03125, "text": "" }, { @@ -34055,7 +34055,7 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.6484375, "text": "" }, { @@ -34065,17 +34065,17 @@ }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9140625, "text": "" }, { @@ -34090,32 +34090,12 @@ }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -10.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, + "logprob": -10.84375, "text": "" }, { @@ -34125,22 +34105,12 @@ }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, + "logprob": -12.7421875, "text": "" }, { @@ -34150,52 +34120,82 @@ }, { "id": 32000, - "logprob": -13.609375, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -14.046875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -13.796875, + "logprob": -13.625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -13.7265625, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, "text": "" }, { @@ -34205,7 +34205,7 @@ }, { "id": 32000, - "logprob": -15.8046875, + "logprob": -15.796875, "text": "" }, { @@ -34215,27 +34215,27 @@ }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -11.3203125, + "logprob": -11.328125, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { @@ -34250,17 +34250,17 @@ }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.7578125, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4765625, "text": "" }, { @@ -34270,37 +34270,37 @@ }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.234375, + "logprob": -15.2578125, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.0078125, "text": "" }, { "id": 32000, - "logprob": -15.2421875, + "logprob": -15.3828125, "text": "" }, { "id": 32000, - "logprob": -11.1953125, + "logprob": -11.203125, "text": "" }, { @@ -34315,12 +34315,12 @@ }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -13.4296875, + "logprob": -13.4453125, "text": "" }, { @@ -34330,12 +34330,12 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { @@ -34345,37 +34345,37 @@ }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.171875, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -13.375, "text": "" }, { @@ -34390,12 +34390,12 @@ }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.046875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0859375, "text": "" }, { @@ -34405,7 +34405,7 @@ }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.4765625, "text": "" }, { @@ -34415,7 +34415,7 @@ }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7265625, "text": "" }, { @@ -34425,122 +34425,122 @@ }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.3359375, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -14.296875, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -13.796875, + "logprob": -13.8046875, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.2109375, "text": "" }, { "id": 32000, - "logprob": -13.3046875, + "logprob": -13.2890625, "text": "" }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -14.1015625, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -13.96875, + "logprob": -13.90625, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.3203125, "text": "" }, { @@ -34550,7 +34550,12 @@ }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, "text": "" }, { @@ -34560,12 +34565,7 @@ }, { "id": 32000, - "logprob": -12.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, + "logprob": -11.265625, "text": "" }, { @@ -34575,7 +34575,7 @@ }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -13.15625, "text": "" }, { @@ -34585,7 +34585,7 @@ }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.0390625, "text": "" }, { @@ -34595,7 +34595,7 @@ }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -14.0390625, "text": "" }, { @@ -34605,12 +34605,12 @@ }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.359375, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.953125, "text": "" }, { @@ -34620,97 +34620,27 @@ }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7109375, "text": "" }, { "id": 32000, - "logprob": -14.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7890625, + "logprob": -14.4765625, "text": "" }, { @@ -34720,7 +34650,37 @@ }, { "id": 32000, - "logprob": -11.859375, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, "text": "" }, { @@ -34730,7 +34690,47 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, "text": "" }, { @@ -34740,42 +34740,42 @@ }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.828125, "text": "" }, { @@ -34790,17 +34790,17 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.1328125, "text": "" }, { "id": 32000, - "logprob": -10.796875, + "logprob": -10.7890625, "text": "" }, { @@ -34810,7 +34810,7 @@ }, { "id": 32000, - "logprob": -10.8984375, + "logprob": -10.890625, "text": "" }, { @@ -34825,12 +34825,7 @@ }, { "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1484375, + "logprob": -12.078125, "text": "" }, { @@ -34840,37 +34835,42 @@ }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.15625, "text": "" }, { "id": 32000, - "logprob": -12.8046875, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -14.03125, + "logprob": -13.09375, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -12.96875, "text": "" }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, "text": "" }, { @@ -34880,12 +34880,12 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.46875, "text": "" }, { @@ -34900,7 +34900,7 @@ }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.40625, "text": "" }, { @@ -34910,7 +34910,7 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.265625, "text": "" }, { @@ -34920,7 +34920,7 @@ }, { "id": 32000, - "logprob": -13.6875, + "logprob": -13.65625, "text": "" }, { @@ -34930,17 +34930,17 @@ }, { "id": 32000, - "logprob": -14.03125, + "logprob": -14.09375, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -15.65625, + "logprob": -15.640625, "text": "" }, { @@ -34950,37 +34950,42 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.3828125, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -14.515625, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.609375, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, "text": "" }, { @@ -34990,22 +34995,17 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -11.59375, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -11.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1796875, "text": "" }, { @@ -35015,17 +35015,17 @@ }, { "id": 32000, - "logprob": -11.40625, + "logprob": -11.421875, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -11.1015625, "text": "" }, { @@ -35035,32 +35035,32 @@ }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -13.265625, + "logprob": -13.2578125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.2578125, "text": "" }, { @@ -35075,7 +35075,7 @@ }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.84375, "text": "" }, { @@ -35085,42 +35085,42 @@ }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6953125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6796875, "text": "" }, { "id": 32000, - "logprob": -12.546875, + "logprob": -12.5546875, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0859375, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.234375, "text": "" }, { @@ -35130,42 +35130,32 @@ }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -13.5234375, + "logprob": -13.5078125, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -13.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9140625, + "logprob": -13.3984375, "text": "" }, { @@ -35175,202 +35165,12 @@ }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -14.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.25, - "text": "" - }, - { - "id": 32000, - "logprob": -14.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6171875, + "logprob": -14.265625, "text": "" }, { @@ -35380,32 +35180,232 @@ }, { "id": 32000, - "logprob": -13.140625, + "logprob": -14.40625, "text": "" }, { "id": 32000, - "logprob": -13.421875, + "logprob": -15.296875, "text": "" }, { "id": 32000, - "logprob": -14.328125, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -13.7578125, + "logprob": -12.3828125, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, "text": "" }, { @@ -35420,32 +35420,32 @@ }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -14.921875, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -13.921875, + "logprob": -13.6953125, "text": "" }, { @@ -35455,67 +35455,67 @@ }, { "id": 32000, - "logprob": -12.1796875, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.5, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -14.375, + "logprob": -14.4140625, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -11.0, + "logprob": -11.0234375, "text": "" }, { @@ -35525,232 +35525,17 @@ }, { "id": 32000, - "logprob": -11.1640625, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.75, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7265625, "text": "" }, { @@ -35760,22 +35545,237 @@ }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, "text": "" }, { @@ -35790,12 +35790,12 @@ }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -11.375, + "logprob": -11.3828125, "text": "" }, { @@ -35805,7 +35805,7 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9296875, "text": "" }, { @@ -35815,7 +35815,7 @@ }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.5546875, "text": "" }, { @@ -35825,22 +35825,22 @@ }, { "id": 32000, - "logprob": -10.4140625, + "logprob": -10.40625, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.59375, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.03125, "text": "" }, { @@ -35850,12 +35850,12 @@ }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.5, "text": "" }, { @@ -35865,12 +35865,12 @@ }, { "id": 32000, - "logprob": -13.0, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -14.140625, + "logprob": -14.171875, "text": "" }, { @@ -35880,27 +35880,27 @@ }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -13.9453125, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.4609375, + "logprob": -12.46875, "text": "" }, { @@ -35910,7 +35910,7 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.53125, "text": "" }, { @@ -35920,92 +35920,92 @@ }, { "id": 32000, - "logprob": -15.0546875, + "logprob": -15.0625, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -13.515625, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.375, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -14.0390625, + "logprob": -14.09375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9375, "text": "" }, { "id": 32000, - "logprob": -11.0234375, + "logprob": -11.0546875, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -14.9609375, + "logprob": -14.9765625, "text": "" }, { @@ -36015,37 +36015,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.703125, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -10.9921875, + "logprob": -10.984375, "text": "" }, { @@ -36060,7 +36060,7 @@ }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4921875, "text": "" }, { @@ -36070,12 +36070,17 @@ }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.40625, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, "text": "" }, { @@ -36085,17 +36090,27 @@ }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -14.4609375, "text": "" }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, "text": "" }, { @@ -36105,17 +36120,7 @@ }, { "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, + "logprob": -13.328125, "text": "" }, { @@ -36125,27 +36130,22 @@ }, { "id": 32000, - "logprob": -13.25, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.8359375, "text": "" }, { "id": 32000, - "logprob": -13.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, + "logprob": -12.2734375, "text": "" }, { @@ -36155,12 +36155,12 @@ }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.96875, "text": "" }, { @@ -36170,12 +36170,12 @@ }, { "id": 32000, - "logprob": -13.2421875, + "logprob": -13.25, "text": "" }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.96875, "text": "" }, { @@ -36190,132 +36190,27 @@ }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.0859375, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -10.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, + "logprob": -11.890625, "text": "" }, { @@ -36325,57 +36220,7 @@ }, { "id": 32000, - "logprob": -12.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.015625, + "logprob": -11.4375, "text": "" }, { @@ -36385,352 +36230,27 @@ }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -11.109375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -11.296875, "text": "" }, { "id": 32000, - "logprob": -13.609375, + "logprob": -11.1015625, "text": "" }, { "id": 32000, - "logprob": -13.75, + "logprob": -11.203125, "text": "" }, { "id": 32000, - "logprob": -14.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, + "logprob": -10.9921875, "text": "" }, { @@ -36738,11 +36258,491 @@ "logprob": -12.046875, "text": "" }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, { "id": 32000, "logprob": -11.2421875, "text": "" }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, { "id": 32000, "logprob": -11.328125, @@ -36750,7 +36750,7 @@ }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.953125, "text": "" }, { @@ -36760,7 +36760,7 @@ }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { @@ -36775,7 +36775,7 @@ }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.0390625, "text": "" }, { @@ -36785,27 +36785,27 @@ }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.6640625, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -11.6484375, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.25, "text": "" }, { @@ -36820,7 +36820,7 @@ }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.34375, "text": "" }, { @@ -36830,32 +36830,12 @@ }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, + "logprob": -11.296875, "text": "" }, { @@ -36865,27 +36845,47 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -13.828125, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, "text": "" }, { @@ -36900,72 +36900,72 @@ }, { "id": 32000, - "logprob": -14.5546875, + "logprob": -14.5625, "text": "" }, { "id": 32000, - "logprob": -14.015625, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.7109375, "text": "" }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -14.359375, + "logprob": -14.3359375, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.296875, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -11.0625, "text": "" }, { @@ -36975,7 +36975,7 @@ }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { @@ -36985,12 +36985,12 @@ }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5546875, "text": "" }, { @@ -37000,37 +37000,42 @@ }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -11.453125, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.2890625, "text": "" }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, "text": "" }, { @@ -37040,12 +37045,7 @@ }, { "id": 32000, - "logprob": -11.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3984375, + "logprob": -11.40625, "text": "" }, { @@ -37065,32 +37065,32 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.03125, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.671875, "text": "" }, { @@ -37100,7 +37100,7 @@ }, { "id": 32000, - "logprob": -14.3828125, + "logprob": -14.2890625, "text": "" }, { @@ -37115,22 +37115,42 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -14.6953125, + "logprob": -14.6484375, "text": "" }, { "id": 32000, - "logprob": -13.515625, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, "text": "" }, { @@ -37140,67 +37160,47 @@ }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -11.9609375, "text": "" }, { "id": 32000, - "logprob": -14.375, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -12.453125, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -13.8046875, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -13.7890625, "text": "" }, { "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -14.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.421875, + "logprob": -14.3828125, "text": "" }, { @@ -37220,22 +37220,22 @@ }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.015625, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { @@ -37245,7 +37245,7 @@ }, { "id": 32000, - "logprob": -11.3203125, + "logprob": -11.328125, "text": "" }, { @@ -37255,7 +37255,7 @@ }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.5859375, "text": "" }, { @@ -37265,7 +37265,7 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0390625, "text": "" }, { @@ -37275,7 +37275,7 @@ }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4609375, "text": "" }, { @@ -37295,12 +37295,12 @@ }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.21875, "text": "" }, { @@ -37310,7 +37310,7 @@ }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9140625, "text": "" }, { @@ -37320,37 +37320,37 @@ }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.203125, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.140625, + "logprob": -14.6640625, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -14.2734375, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.53125, "text": "" }, { @@ -37360,62 +37360,62 @@ }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.1015625, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.703125, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { @@ -37425,22 +37425,22 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.34375, "text": "" }, { @@ -37455,37 +37455,37 @@ }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -15.15625, + "logprob": -15.1875, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.515625, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.5703125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.703125, "text": "" }, { @@ -37505,27 +37505,27 @@ }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5546875, "text": "" }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -11.1875, + "logprob": -11.1953125, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7578125, "text": "" }, { @@ -37535,7 +37535,7 @@ }, { "id": 32000, - "logprob": -13.2734375, + "logprob": -13.2421875, "text": "" }, { @@ -37545,62 +37545,62 @@ }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -11.1796875, + "logprob": -11.1875, "text": "" }, { "id": 32000, - "logprob": -13.375, + "logprob": -13.359375, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -13.59375, + "logprob": -13.5625, "text": "" }, { @@ -37608,21 +37608,6 @@ "logprob": -13.3203125, "text": "" }, - { - "id": 32000, - "logprob": -12.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6796875, - "text": "" - }, { "id": 32000, "logprob": -12.8046875, @@ -37630,12 +37615,17 @@ }, { "id": 32000, - "logprob": -12.78125, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, "text": "" }, { @@ -37643,6 +37633,16 @@ "logprob": -12.78125, "text": "" }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, { "id": 32000, "logprob": -11.484375, @@ -37650,37 +37650,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -11.3046875, + "logprob": -11.3125, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.265625, "text": "" }, { @@ -37715,7 +37715,7 @@ }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.046875, "text": "" }, { @@ -37725,7 +37725,7 @@ }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.7109375, "text": "" }, { @@ -37735,27 +37735,27 @@ }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -14.3046875, + "logprob": -14.3125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7578125, "text": "" }, { @@ -37765,142 +37765,12 @@ }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -14.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, + "logprob": -14.1640625, "text": "" }, { @@ -37910,7 +37780,137 @@ }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, "text": "" }, { @@ -37925,12 +37925,12 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.9296875, + "logprob": -11.9375, "text": "" }, { @@ -37940,17 +37940,17 @@ }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.7890625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0390625, "text": "" }, { @@ -37960,12 +37960,12 @@ }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -10.75, + "logprob": -10.7578125, "text": "" }, { @@ -37975,12 +37975,12 @@ }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.2578125, + "logprob": -11.265625, "text": "" }, { @@ -37990,27 +37990,27 @@ }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.7890625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -11.25, + "logprob": -11.234375, "text": "" }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.46875, "text": "" }, { @@ -38020,7 +38020,7 @@ }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8515625, "text": "" }, { @@ -38035,17 +38035,17 @@ }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.7890625, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.28125, "text": "" }, { @@ -38055,7 +38055,7 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.34375, "text": "" }, { @@ -38065,27 +38065,27 @@ }, { "id": 32000, - "logprob": -13.0078125, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -15.25, + "logprob": -15.28125, "text": "" }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.109375, "text": "" }, { @@ -38100,32 +38100,32 @@ }, { "id": 32000, - "logprob": -14.7265625, + "logprob": -14.7109375, "text": "" }, { "id": 32000, - "logprob": -10.015625, + "logprob": -10.0234375, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.46875, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.9765625, "text": "" }, { "id": 32000, - "logprob": -14.2734375, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -14.9140625, + "logprob": -14.890625, "text": "" }, { @@ -38140,12 +38140,12 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3515625, "text": "" }, { @@ -38155,47 +38155,47 @@ }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.890625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5625, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.4609375, + "logprob": -12.4765625, "text": "" }, { @@ -38210,17 +38210,17 @@ }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.125, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8125, "text": "" }, { @@ -38235,52 +38235,52 @@ }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.375, + "logprob": -12.390625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3515625, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.25, "text": "" }, { @@ -38290,17 +38290,17 @@ }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.4921875, "text": "" }, { @@ -38310,72 +38310,12 @@ }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -14.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, + "logprob": -15.0625, "text": "" }, { @@ -38385,62 +38325,72 @@ }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -13.5546875, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -14.96875, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -13.9296875, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -10.5859375, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -15.0078125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -12.3359375, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, "text": "" }, { @@ -38450,37 +38400,87 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -10.8359375, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -10.7109375, + "logprob": -11.4609375, "text": "" }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, "text": "" }, { @@ -38495,27 +38495,27 @@ }, { "id": 32000, - "logprob": -11.171875, + "logprob": -11.1796875, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4453125, "text": "" }, { @@ -38530,17 +38530,47 @@ }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.09375, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -15.4375, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, "text": "" }, { @@ -38548,36 +38578,6 @@ "logprob": -11.8515625, "text": "" }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, { "id": 32000, "logprob": -11.0625, @@ -38585,27 +38585,27 @@ }, { "id": 32000, - "logprob": -13.8828125, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -13.984375, + "logprob": -14.0234375, "text": "" }, { @@ -38615,22 +38615,22 @@ }, { "id": 32000, - "logprob": -14.1328125, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3515625, "text": "" }, { @@ -38640,7 +38640,7 @@ }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.90625, "text": "" }, { @@ -38650,7 +38650,7 @@ }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.5703125, "text": "" }, { @@ -38660,7 +38660,7 @@ }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.6875, "text": "" }, { @@ -38670,12 +38670,12 @@ }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.8125, "text": "" }, { @@ -38695,12 +38695,12 @@ }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.46875, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.0703125, "text": "" }, { @@ -38730,7 +38730,7 @@ }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.9765625, "text": "" }, { @@ -38740,32 +38740,32 @@ }, { "id": 32000, - "logprob": -10.8828125, + "logprob": -10.890625, "text": "" }, { "id": 32000, - "logprob": -11.015625, + "logprob": -11.0078125, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -10.609375, "text": "" }, { "id": 32000, - "logprob": -10.7890625, + "logprob": -10.796875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.59375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { @@ -38775,12 +38775,12 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5390625, "text": "" }, { @@ -38790,12 +38790,12 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -10.9375, "text": "" }, { @@ -38805,117 +38805,52 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.3671875, "text": "" }, { "id": 32000, - "logprob": -9.609375, + "logprob": -9.625, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8515625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.3359375, "text": "" }, { "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, + "logprob": -14.015625, "text": "" }, { @@ -38925,12 +38860,22 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -15.6875, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, "text": "" }, { @@ -38940,12 +38885,67 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, "text": "" }, { @@ -38955,12 +38955,12 @@ }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -12.328125, "text": "" }, { @@ -38975,12 +38975,12 @@ }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.921875, "text": "" }, { "id": 32000, - "logprob": -10.84375, + "logprob": -10.8515625, "text": "" }, { @@ -38990,47 +38990,47 @@ }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.40625, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -10.8125, + "logprob": -10.8046875, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -12.5546875, + "logprob": -12.5703125, "text": "" }, { @@ -39045,7 +39045,7 @@ }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.734375, "text": "" }, { @@ -39060,47 +39060,47 @@ }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -14.203125, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -14.828125, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -18.140625, + "logprob": -18.046875, "text": "" }, { "id": 32000, - "logprob": -15.59375, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -14.515625, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -10.625, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0546875, "text": "" }, { @@ -39110,47 +39110,47 @@ }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9296875, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -10.9453125, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.828125, "text": "" }, { @@ -39165,27 +39165,27 @@ }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.53125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -15.171875, + "logprob": -15.2421875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { @@ -39195,7 +39195,7 @@ }, { "id": 32000, - "logprob": -11.6875, + "logprob": -11.671875, "text": "" }, { @@ -39215,12 +39215,12 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.609375, "text": "" }, { @@ -39230,12 +39230,12 @@ }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2109375, "text": "" }, { @@ -39250,12 +39250,12 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { @@ -39275,87 +39275,87 @@ }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -11.5078125, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -14.46875, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -14.9453125, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -14.7734375, + "logprob": -14.5546875, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.4765625, "text": "" }, { "id": 32000, - "logprob": -13.4375, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.3984375, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -14.796875, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.6953125, "text": "" }, { @@ -39365,12 +39365,7 @@ }, { "id": 32000, - "logprob": -12.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.96875, + "logprob": -12.734375, "text": "" }, { @@ -39380,12 +39375,17 @@ }, { "id": 32000, - "logprob": -11.4296875, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, "text": "" }, { @@ -39400,17 +39400,17 @@ }, { "id": 32000, - "logprob": -11.2109375, + "logprob": -11.1640625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.5, "text": "" }, { @@ -39420,7 +39420,7 @@ }, { "id": 32000, - "logprob": -14.140625, + "logprob": -14.1171875, "text": "" }, { @@ -39430,47 +39430,12 @@ }, { "id": 32000, - "logprob": -12.484375, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -10.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, + "logprob": -10.6015625, "text": "" }, { @@ -39480,207 +39445,7 @@ }, { "id": 32000, - "logprob": -11.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -15.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8984375, + "logprob": -13.625, "text": "" }, { @@ -39690,12 +39455,247 @@ }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -15.1640625, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, "text": "" }, { @@ -39705,12 +39705,12 @@ }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3671875, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.6171875, "text": "" }, { @@ -39735,22 +39735,22 @@ }, { "id": 32000, - "logprob": -11.3046875, + "logprob": -11.3125, "text": "" }, { "id": 32000, - "logprob": -11.171875, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0859375, "text": "" }, { @@ -39760,17 +39760,17 @@ }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.515625, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { @@ -39780,12 +39780,12 @@ }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.0078125, "text": "" }, { "id": 32000, - "logprob": -15.171875, + "logprob": -15.21875, "text": "" }, { @@ -39795,27 +39795,27 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.2890625, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.515625, "text": "" }, { @@ -39825,42 +39825,42 @@ }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.4609375, "text": "" }, { "id": 32000, - "logprob": -14.796875, + "logprob": -14.84375, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4453125, "text": "" }, { @@ -39870,22 +39870,22 @@ }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -15.8984375, + "logprob": -15.890625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.953125, "text": "" }, { @@ -39900,17 +39900,17 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.1875, "text": "" }, { "id": 32000, - "logprob": -12.1796875, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.125, "text": "" }, { @@ -39920,27 +39920,27 @@ }, { "id": 32000, - "logprob": -13.125, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1484375, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.9453125, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.2890625, "text": "" }, { @@ -39950,7 +39950,7 @@ }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.734375, "text": "" }, { @@ -39960,32 +39960,32 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.140625, "text": "" }, { @@ -40000,12 +40000,12 @@ }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { @@ -40015,7 +40015,7 @@ }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.375, "text": "" }, { @@ -40025,52 +40025,52 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -14.265625, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -11.234375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -15.3203125, + "logprob": -15.328125, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.671875, "text": "" }, { @@ -40080,7 +40080,7 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.9921875, "text": "" }, { @@ -40090,7 +40090,7 @@ }, { "id": 32000, - "logprob": -14.953125, + "logprob": -14.9453125, "text": "" }, { @@ -40100,12 +40100,12 @@ }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.265625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { @@ -40130,32 +40130,32 @@ }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3359375, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.171875, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { @@ -40165,17 +40165,17 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3515625, "text": "" }, { @@ -40195,17 +40195,17 @@ }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.40625, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -16.609375, + "logprob": -16.59375, "text": "" }, { @@ -40215,12 +40215,12 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.5390625, "text": "" }, { @@ -40235,12 +40235,12 @@ }, { "id": 32000, - "logprob": -13.0859375, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.03125, "text": "" }, { @@ -40250,7 +40250,7 @@ }, { "id": 32000, - "logprob": -10.5859375, + "logprob": -10.59375, "text": "" }, { @@ -40260,22 +40260,22 @@ }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -11.203125, + "logprob": -11.2109375, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1796875, "text": "" }, { @@ -40285,52 +40285,57 @@ }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -10.171875, + "logprob": -10.109375, "text": "" }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -13.09375, + "logprob": -13.1328125, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -16.0, + "logprob": -16.015625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.7265625, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, "text": "" }, { @@ -40340,12 +40345,7 @@ }, { "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.65625, + "logprob": -10.6640625, "text": "" }, { @@ -40355,7 +40355,7 @@ }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { @@ -40385,22 +40385,22 @@ }, { "id": 32000, - "logprob": -10.796875, + "logprob": -10.8046875, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -14.265625, "text": "" }, { @@ -40410,17 +40410,17 @@ }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.6171875, "text": "" }, { @@ -40430,12 +40430,12 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.890625, "text": "" }, { @@ -40445,27 +40445,27 @@ }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -13.0, + "logprob": -12.984375, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.046875, "text": "" }, { @@ -40475,37 +40475,37 @@ }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.5234375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.9296875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.734375, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -10.8203125, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.390625, "text": "" }, { @@ -40515,7 +40515,7 @@ }, { "id": 32000, - "logprob": -15.8203125, + "logprob": -15.84375, "text": "" }, { @@ -40525,22 +40525,22 @@ }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -16.796875, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -15.7109375, + "logprob": -15.6953125, "text": "" }, { @@ -40550,27 +40550,27 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -13.1171875, + "logprob": -13.1328125, "text": "" }, { "id": 32000, - "logprob": -14.40625, + "logprob": -14.4140625, "text": "" }, { "id": 32000, - "logprob": -14.4921875, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -10.953125, + "logprob": -10.9453125, "text": "" }, { @@ -40580,12 +40580,12 @@ }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.3828125, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.953125, "text": "" }, { @@ -40600,12 +40600,12 @@ }, { "id": 32000, - "logprob": -12.703125, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -17.265625, + "logprob": -17.34375, "text": "" }, { @@ -40615,32 +40615,32 @@ }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.46875, "text": "" }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.3828125, "text": "" }, { "id": 32000, - "logprob": -14.15625, + "logprob": -14.1953125, "text": "" }, { "id": 32000, - "logprob": -12.9609375, + "logprob": -12.984375, "text": "" }, { @@ -40655,12 +40655,12 @@ }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.125, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9375, "text": "" }, { @@ -40670,7 +40670,7 @@ }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { @@ -40680,37 +40680,37 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -11.8203125, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -14.2890625, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { @@ -40720,7 +40720,7 @@ }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2578125, "text": "" }, { @@ -40730,12 +40730,12 @@ }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.8203125, "text": "" }, { @@ -40750,42 +40750,42 @@ }, { "id": 32000, - "logprob": -10.953125, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -10.8203125, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -13.125, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.25, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0703125, "text": "" }, { @@ -40800,32 +40800,32 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -17.0625, + "logprob": -17.109375, "text": "" }, { "id": 32000, - "logprob": -15.5, + "logprob": -15.4375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.6171875, + "logprob": -13.625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.5078125, "text": "" }, { @@ -40835,82 +40835,12 @@ }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -13.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, + "logprob": -13.21875, "text": "" }, { @@ -40920,17 +40850,87 @@ }, { "id": 32000, - "logprob": -12.6875, + "logprob": -15.09375, "text": "" }, { "id": 32000, - "logprob": -10.75, + "logprob": -15.8515625, "text": "" }, { "id": 32000, - "logprob": -11.40625, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, "text": "" }, { @@ -40950,12 +40950,12 @@ }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -10.53125, + "logprob": -10.5390625, "text": "" }, { @@ -40965,47 +40965,17 @@ }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -16.984375, + "logprob": -16.953125, "text": "" }, { "id": 32000, - "logprob": -11.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, + "logprob": -11.921875, "text": "" }, { @@ -41015,27 +40985,57 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, "text": "" }, { @@ -41045,7 +41045,7 @@ }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.34375, "text": "" }, { @@ -41060,22 +41060,22 @@ }, { "id": 32000, - "logprob": -15.3359375, + "logprob": -15.34375, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -10.765625, + "logprob": -10.7578125, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.53125, "text": "" }, { @@ -41085,17 +41085,17 @@ }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.203125, "text": "" }, { "id": 32000, - "logprob": -17.15625, + "logprob": -17.078125, "text": "" }, { "id": 32000, - "logprob": -15.078125, + "logprob": -15.25, "text": "" }, { @@ -41105,32 +41105,32 @@ }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -16.109375, + "logprob": -16.0625, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -14.6796875, + "logprob": -14.5859375, "text": "" }, { @@ -41145,37 +41145,37 @@ }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -13.84375, + "logprob": -13.796875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7578125, "text": "" }, { @@ -41185,67 +41185,67 @@ }, { "id": 32000, - "logprob": -14.265625, + "logprob": -14.328125, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -13.84375, "text": "" }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.2109375, "text": "" }, { "id": 32000, - "logprob": -12.375, + "logprob": -12.390625, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -14.71875, + "logprob": -14.6796875, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -10.6484375, + "logprob": -10.65625, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -11.0625, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5234375, "text": "" }, { @@ -41260,12 +41260,12 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.125, "text": "" }, { @@ -41280,7 +41280,7 @@ }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.984375, "text": "" }, { @@ -41290,17 +41290,17 @@ }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -15.4375, + "logprob": -15.4921875, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.921875, "text": "" }, { @@ -41310,17 +41310,17 @@ }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.0546875, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.21875, "text": "" }, { @@ -41335,12 +41335,12 @@ }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8984375, "text": "" }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8515625, "text": "" }, { @@ -41350,7 +41350,7 @@ }, { "id": 32000, - "logprob": -17.453125, + "logprob": -17.4375, "text": "" }, { @@ -41365,7 +41365,7 @@ }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { @@ -41380,12 +41380,12 @@ }, { "id": 32000, - "logprob": -14.203125, + "logprob": -14.2421875, "text": "" }, { "id": 32000, - "logprob": -13.6953125, + "logprob": -13.7265625, "text": "" }, { @@ -41395,37 +41395,37 @@ }, { "id": 32000, - "logprob": -10.5859375, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.7421875, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -14.734375, + "logprob": -14.71875, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.578125, "text": "" }, { @@ -41435,7 +41435,7 @@ }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.796875, "text": "" }, { @@ -41445,12 +41445,12 @@ }, { "id": 32000, - "logprob": -16.390625, + "logprob": -16.46875, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9296875, "text": "" }, { @@ -41460,7 +41460,7 @@ }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8515625, "text": "" }, { @@ -41470,22 +41470,22 @@ }, { "id": 32000, - "logprob": -16.515625, + "logprob": -16.53125, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -13.359375, "text": "" }, { "id": 32000, - "logprob": -14.0, + "logprob": -13.96875, "text": "" }, { @@ -41495,22 +41495,22 @@ }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.5078125, "text": "" }, { @@ -41530,77 +41530,77 @@ }, { "id": 32000, - "logprob": -14.0390625, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -17.1875, + "logprob": -17.21875, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -14.6015625, + "logprob": -14.6171875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -15.0234375, + "logprob": -15.03125, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -15.921875, + "logprob": -15.890625, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8515625, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.828125, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.640625, "text": "" }, { @@ -41610,27 +41610,27 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -14.7421875, + "logprob": -14.7578125, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.2578125, "text": "" }, { @@ -41650,7 +41650,37 @@ }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, "text": "" }, { @@ -41658,36 +41688,6 @@ "logprob": -13.0390625, "text": "" }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -17.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, { "id": 32000, "logprob": -11.84375, @@ -41695,12 +41695,12 @@ }, { "id": 32000, - "logprob": -15.25, + "logprob": -15.265625, "text": "" }, { "id": 32000, - "logprob": -16.96875, + "logprob": -16.984375, "text": "" }, { @@ -41710,17 +41710,17 @@ }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.140625, "text": "" }, { @@ -41730,77 +41730,77 @@ }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -17.953125, + "logprob": -17.984375, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -14.6796875, + "logprob": -14.703125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.3828125, "text": "" }, { "id": 32000, - "logprob": -11.6484375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -16.1875, + "logprob": -16.25, "text": "" }, { "id": 32000, - "logprob": -16.796875, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -14.359375, + "logprob": -14.375, "text": "" }, { @@ -41810,112 +41810,17 @@ }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -17.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -16.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.421875, + "logprob": -12.28125, "text": "" }, { @@ -41925,47 +41830,7 @@ }, { "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, + "logprob": -17.5625, "text": "" }, { @@ -41975,7 +41840,142 @@ }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -15.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, "text": "" }, { @@ -41985,17 +41985,17 @@ }, { "id": 32000, - "logprob": -15.6171875, + "logprob": -15.640625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -14.25, + "logprob": -14.265625, "text": "" }, { @@ -42010,17 +42010,17 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.828125, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { @@ -42030,7 +42030,7 @@ }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3203125, "text": "" }, { @@ -42040,37 +42040,37 @@ }, { "id": 32000, - "logprob": -14.2265625, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -14.890625, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5390625, "text": "" }, { "id": 32000, - "logprob": -19.421875, + "logprob": -19.4375, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6796875, "text": "" }, { @@ -42085,7 +42085,7 @@ }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2109375, "text": "" }, { @@ -42095,27 +42095,27 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -17.65625, + "logprob": -17.625, "text": "" }, { "id": 32000, - "logprob": -17.703125, + "logprob": -17.75, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -12.0234375, "text": "" }, { @@ -42125,7 +42125,7 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5859375, "text": "" }, { @@ -42135,37 +42135,37 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -10.5625, + "logprob": -10.5703125, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -13.2734375, + "logprob": -13.3046875, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.3359375, "text": "" }, { @@ -42180,17 +42180,17 @@ }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -14.859375, + "logprob": -14.9375, "text": "" }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0390625, "text": "" }, { @@ -42215,27 +42215,27 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.0703125, + "logprob": -15.0546875, "text": "" }, { @@ -42250,17 +42250,17 @@ }, { "id": 32000, - "logprob": -16.859375, + "logprob": -16.84375, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -14.8515625, + "logprob": -14.9296875, "text": "" }, { @@ -42270,12 +42270,12 @@ }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.984375, "text": "" }, { @@ -42285,12 +42285,12 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -14.4921875, + "logprob": -14.515625, "text": "" }, { @@ -42300,17 +42300,17 @@ }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5625, "text": "" }, { "id": 32000, - "logprob": -14.859375, + "logprob": -14.8125, "text": "" }, { @@ -42320,12 +42320,12 @@ }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6484375, "text": "" }, { @@ -42335,12 +42335,12 @@ }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1484375, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8671875, "text": "" }, { @@ -42355,27 +42355,27 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.453125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -16.9375, + "logprob": -16.890625, "text": "" }, { "id": 32000, - "logprob": -12.890625, + "logprob": -12.84375, "text": "" }, { @@ -42385,12 +42385,12 @@ }, { "id": 32000, - "logprob": -14.6484375, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.9375, "text": "" }, { @@ -42400,7 +42400,7 @@ }, { "id": 32000, - "logprob": -17.15625, + "logprob": -17.6875, "text": "" }, { @@ -42415,17 +42415,17 @@ }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.2109375, + "logprob": -11.203125, "text": "" }, { @@ -42440,17 +42440,17 @@ }, { "id": 32000, - "logprob": -14.3046875, + "logprob": -14.3125, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.203125, "text": "" }, { @@ -42460,22 +42460,22 @@ }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -11.0703125, + "logprob": -11.078125, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.6015625, "text": "" }, { @@ -42485,12 +42485,12 @@ }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -13.4453125, + "logprob": -13.46875, "text": "" }, { @@ -42500,22 +42500,22 @@ }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.46875, "text": "" }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.140625, "text": "" }, { @@ -42525,17 +42525,17 @@ }, { "id": 32000, - "logprob": -14.171875, + "logprob": -14.109375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -14.34375, "text": "" }, { @@ -42545,47 +42545,47 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -12.890625, + "logprob": -12.8984375, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.625, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -14.71875, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.625, "text": "" }, { @@ -42600,12 +42600,12 @@ }, { "id": 32000, - "logprob": -15.0, + "logprob": -14.6484375, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.546875, "text": "" }, { @@ -42615,7 +42615,7 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { @@ -42630,7 +42630,7 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9375, "text": "" }, { @@ -42640,12 +42640,12 @@ }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -13.4453125, + "logprob": -13.46875, "text": "" }, { @@ -42655,17 +42655,17 @@ }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.7734375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1640625, "text": "" }, { @@ -42675,22 +42675,22 @@ }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.75, "text": "" }, { @@ -42700,7 +42700,7 @@ }, { "id": 32000, - "logprob": -16.40625, + "logprob": -16.390625, "text": "" }, { @@ -42710,17 +42710,17 @@ }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -13.921875, + "logprob": -13.8984375, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9921875, "text": "" }, { @@ -42730,27 +42730,27 @@ }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -16.03125, + "logprob": -16.046875, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6484375, "text": "" }, { "id": 32000, - "logprob": -15.3125, + "logprob": -15.3203125, "text": "" }, { @@ -42760,17 +42760,17 @@ }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3984375, "text": "" }, { "id": 32000, - "logprob": -14.484375, + "logprob": -15.4765625, "text": "" }, { @@ -42780,37 +42780,12 @@ }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -17.640625, + "logprob": -11.5859375, "text": "" }, { @@ -42818,6 +42793,31 @@ "logprob": -12.1015625, "text": "" }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, { "id": 32000, "logprob": -11.84375, @@ -42825,17 +42825,17 @@ }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.59375, "text": "" }, { @@ -42845,17 +42845,17 @@ }, { "id": 32000, - "logprob": -16.703125, + "logprob": -16.6875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -14.90625, + "logprob": -14.859375, "text": "" }, { @@ -42865,42 +42865,42 @@ }, { "id": 32000, - "logprob": -15.21875, + "logprob": -15.203125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -17.0, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.734375, + "logprob": -14.8671875, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.1171875, "text": "" }, { @@ -42915,7 +42915,7 @@ }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.359375, "text": "" }, { @@ -42925,7 +42925,7 @@ }, { "id": 32000, - "logprob": -13.75, + "logprob": -13.765625, "text": "" }, { @@ -42940,22 +42940,22 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.6015625, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.703125, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.40625, "text": "" }, { @@ -42965,17 +42965,17 @@ }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6875, "text": "" }, { @@ -42985,47 +42985,47 @@ }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9609375, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -18.71875, + "logprob": -18.703125, "text": "" }, { "id": 32000, - "logprob": -15.59375, + "logprob": -15.6484375, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -13.6875, + "logprob": -13.703125, "text": "" }, { "id": 32000, - "logprob": -15.0703125, + "logprob": -15.0859375, "text": "" }, { @@ -43035,12 +43035,12 @@ }, { "id": 32000, - "logprob": -14.53125, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3671875, "text": "" }, { @@ -43050,7 +43050,7 @@ }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.640625, "text": "" }, { @@ -43060,37 +43060,37 @@ }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.3515625, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -14.125, + "logprob": -14.15625, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.90625, "text": "" }, { @@ -43105,22 +43105,22 @@ }, { "id": 32000, - "logprob": -10.53125, + "logprob": -10.5625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9296875, "text": "" }, { @@ -43130,7 +43130,7 @@ }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.875, "text": "" }, { @@ -43145,17 +43145,17 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.109375, "text": "" }, { @@ -43165,22 +43165,22 @@ }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { @@ -43190,87 +43190,87 @@ }, { "id": 32000, - "logprob": -16.6875, + "logprob": -16.671875, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -15.0234375, + "logprob": -14.9453125, "text": "" }, { "id": 32000, - "logprob": -16.578125, + "logprob": -16.5625, "text": "" }, { "id": 32000, - "logprob": -15.1875, + "logprob": -15.203125, "text": "" }, { "id": 32000, - "logprob": -14.7109375, + "logprob": -14.6953125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -13.8046875, + "logprob": -13.796875, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -15.3125, + "logprob": -15.484375, "text": "" }, { "id": 32000, - "logprob": -14.6171875, + "logprob": -14.6328125, "text": "" }, { @@ -43280,17 +43280,17 @@ }, { "id": 32000, - "logprob": -13.7265625, + "logprob": -13.75, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.3125, "text": "" }, { @@ -43300,62 +43300,62 @@ }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.484375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.2734375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -16.5, + "logprob": -16.53125, "text": "" }, { "id": 32000, - "logprob": -14.1171875, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -15.078125, + "logprob": -15.03125, "text": "" }, { "id": 32000, - "logprob": -15.4609375, + "logprob": -15.484375, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6015625, "text": "" }, { @@ -43370,7 +43370,7 @@ }, { "id": 32000, - "logprob": -11.15625, + "logprob": -11.1640625, "text": "" }, { @@ -43380,82 +43380,82 @@ }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -18.015625, + "logprob": -18.0, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.625, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -15.1015625, + "logprob": -15.3046875, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1875, "text": "" }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -15.1640625, + "logprob": -15.125, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -15.4453125, + "logprob": -15.546875, "text": "" }, { "id": 32000, - "logprob": -16.03125, + "logprob": -16.015625, "text": "" }, { "id": 32000, - "logprob": -14.125, + "logprob": -14.109375, "text": "" }, { @@ -43465,12 +43465,12 @@ }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.734375, "text": "" }, { @@ -43490,7 +43490,7 @@ }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.7421875, "text": "" }, { @@ -43500,12 +43500,12 @@ }, { "id": 32000, - "logprob": -15.3046875, + "logprob": -15.296875, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6015625, "text": "" }, { @@ -43515,12 +43515,12 @@ }, { "id": 32000, - "logprob": -13.4921875, + "logprob": -13.5, "text": "" }, { "id": 32000, - "logprob": -10.8984375, + "logprob": -10.890625, "text": "" }, { @@ -43530,22 +43530,22 @@ }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1328125, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3359375, "text": "" }, { @@ -43560,127 +43560,17 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.796875, "text": "" }, { "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -19.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -16.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5, - "text": "" - }, - { - "id": 32000, - "logprob": -15.265625, + "logprob": -13.4296875, "text": "" }, { @@ -43690,32 +43580,142 @@ }, { "id": 32000, - "logprob": -14.59375, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -15.34375, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -13.4375, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -19.65625, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, "text": "" }, { @@ -43725,17 +43725,17 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.2265625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6171875, "text": "" }, { @@ -43750,17 +43750,17 @@ }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -14.96875, + "logprob": -15.0703125, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.375, "text": "" }, { @@ -43770,7 +43770,7 @@ }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1796875, "text": "" }, { @@ -43780,17 +43780,17 @@ }, { "id": 32000, - "logprob": -15.828125, + "logprob": -15.796875, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.640625, + "logprob": -14.0390625, "text": "" }, { @@ -43800,12 +43800,12 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { @@ -43815,22 +43815,22 @@ }, { "id": 32000, - "logprob": -16.34375, + "logprob": -16.375, "text": "" }, { "id": 32000, - "logprob": -13.8671875, + "logprob": -13.8828125, "text": "" }, { "id": 32000, - "logprob": -14.6484375, + "logprob": -14.6171875, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.625, "text": "" }, { @@ -43850,72 +43850,72 @@ }, { "id": 32000, - "logprob": -11.6796875, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5625, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4609375, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.953125, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6484375, "text": "" }, { @@ -43925,17 +43925,17 @@ }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { @@ -43950,17 +43950,17 @@ }, { "id": 32000, - "logprob": -15.28125, + "logprob": -15.1953125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.09375, "text": "" }, { @@ -43970,47 +43970,47 @@ }, { "id": 32000, - "logprob": -15.5625, + "logprob": -15.59375, "text": "" }, { "id": 32000, - "logprob": -11.6875, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.609375, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.671875, "text": "" }, { "id": 32000, - "logprob": -15.3515625, + "logprob": -15.34375, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.2265625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.78125, "text": "" }, { @@ -44020,122 +44020,17 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -12.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -16.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.34375, + "logprob": -12.03125, "text": "" }, { @@ -44145,27 +44040,132 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -16.515625, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -13.3984375, "text": "" }, { "id": 32000, - "logprob": -15.1484375, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, "text": "" }, { @@ -44180,12 +44180,12 @@ }, { "id": 32000, - "logprob": -14.421875, + "logprob": -14.40625, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.046875, "text": "" }, { @@ -44195,52 +44195,52 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5078125, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -17.28125, + "logprob": -17.3125, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5234375, "text": "" }, { "id": 32000, - "logprob": -17.59375, + "logprob": -17.625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.9140625, "text": "" }, { "id": 32000, - "logprob": -16.625, + "logprob": -16.65625, "text": "" }, { @@ -44250,27 +44250,27 @@ }, { "id": 2418, - "logprob": -19.078125, + "logprob": -19.0625, "text": "Can" }, { "id": 368, - "logprob": -0.19665527, + "logprob": -0.19726562, "text": "you" }, { "id": 1912, - "logprob": -1.5009766, + "logprob": -1.4990234, "text": "tell" }, { "id": 528, - "logprob": -0.31054688, + "logprob": -0.31152344, "text": "me" }, { "id": 264, - "logprob": -2.6269531, + "logprob": -2.6367188, "text": "a" }, { @@ -44280,12 +44280,12 @@ }, { "id": 2485, - "logprob": -0.99365234, + "logprob": -0.9941406, "text": "short" }, { "id": 2838, - "logprob": -0.45996094, + "logprob": -0.46118164, "text": "story" }, { @@ -44295,22 +44295,22 @@ }, { "id": 356, - "logprob": -0.029006958, + "logprob": -0.029129028, "text": "on" }, { "id": 272, - "logprob": -0.9897461, + "logprob": -0.9902344, "text": "the" }, { "id": 3469, - "logprob": -0.29125977, + "logprob": -0.29052734, "text": "image" }, { "id": 28804, - "logprob": -0.43017578, + "logprob": -0.43188477, "text": "?" } ], @@ -44318,13 +44318,13 @@ "tokens": [ { "id": 13, - "logprob": -0.007446289, + "logprob": -0.0076828003, "special": false, "text": "\n" }, { "id": 13, - "logprob": -0.20129395, + "logprob": -0.20092773, "special": false, "text": "\n" }, @@ -44336,43 +44336,43 @@ }, { "id": 3714, - "logprob": -0.20825195, + "logprob": -0.20861816, "special": false, "text": " upon" }, { "id": 264, - "logprob": -0.0017786026, + "logprob": -0.0017719269, "special": false, "text": " a" }, { "id": 727, - "logprob": -0.011955261, + "logprob": -0.011909485, "special": false, "text": " time" }, { "id": 28725, - "logprob": -0.17297363, + "logprob": -0.17529297, "special": false, "text": "," }, { "id": 736, - "logprob": -0.91015625, + "logprob": -0.9082031, "special": false, "text": " there" }, { "id": 403, - "logprob": -0.05758667, + "logprob": -0.057525635, "special": false, "text": " was" }, { "id": 264, - "logprob": -0.009544373, + "logprob": -0.009651184, "special": false, "text": " a" } @@ -44414,7 +44414,7 @@ }, { "id": 32000, - "logprob": -15.9140625, + "logprob": -15.7109375, "text": "" }, { @@ -44424,37 +44424,37 @@ }, { "id": 32000, - "logprob": -10.03125, + "logprob": -10.0234375, "text": "" }, { "id": 32000, - "logprob": -10.140625, + "logprob": -10.1328125, "text": "" }, { "id": 32000, - "logprob": -10.296875, + "logprob": -10.421875, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -16.0625, + "logprob": -16.59375, "text": "" }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -13.828125, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.390625, "text": "" }, { @@ -44464,7 +44464,7 @@ }, { "id": 32000, - "logprob": -10.171875, + "logprob": -10.1640625, "text": "" }, { @@ -44474,22 +44474,22 @@ }, { "id": 32000, - "logprob": -10.359375, + "logprob": -10.3984375, "text": "" }, { "id": 32000, - "logprob": -14.953125, + "logprob": -15.015625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -13.3046875, + "logprob": -13.2734375, "text": "" }, { @@ -44499,67 +44499,37 @@ }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.0390625, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.5234375, "text": "" }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.4765625, "text": "" }, { "id": 32000, - "logprob": -14.2890625, + "logprob": -14.2421875, "text": "" }, { "id": 32000, - "logprob": -13.625, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -11.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -17.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -18.265625, + "logprob": -11.359375, "text": "" }, { @@ -44569,17 +44539,47 @@ }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -17.34375, "text": "" }, { "id": 32000, - "logprob": -9.8671875, + "logprob": -10.3984375, "text": "" }, { "id": 32000, - "logprob": -10.765625, + "logprob": -10.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -18.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -9.875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7734375, "text": "" }, { @@ -44589,12 +44589,12 @@ }, { "id": 32000, - "logprob": -10.984375, + "logprob": -10.96875, "text": "" }, { "id": 32000, - "logprob": -10.6171875, + "logprob": -10.609375, "text": "" }, { @@ -44604,17 +44604,17 @@ }, { "id": 32000, - "logprob": -10.515625, + "logprob": -10.5078125, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.4453125, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.59375, "text": "" }, { @@ -44629,27 +44629,27 @@ }, { "id": 32000, - "logprob": -10.6796875, + "logprob": -10.640625, "text": "" }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -12.0234375, "text": "" }, { @@ -44664,137 +44664,12 @@ }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.0625, "text": "" }, { "id": 32000, - "logprob": -10.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -18.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.25, - "text": "" - }, - { - "id": 32000, - "logprob": -10.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.234375, + "logprob": -10.3828125, "text": "" }, { @@ -44802,6 +44677,131 @@ "logprob": -11.171875, "text": "" }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -18.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.09375, + "text": "" + }, { "id": 32000, "logprob": -14.6796875, @@ -44809,7 +44809,7 @@ }, { "id": 32000, - "logprob": -10.375, + "logprob": -10.3671875, "text": "" }, { @@ -44824,17 +44824,22 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -11.0859375, + "logprob": -11.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.96875, "text": "" }, { @@ -44844,22 +44849,17 @@ }, { "id": 32000, - "logprob": -11.109375, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -11.0390625, + "logprob": -10.96875, "text": "" }, { "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.171875, + "logprob": -11.1484375, "text": "" }, { @@ -44869,7 +44869,7 @@ }, { "id": 32000, - "logprob": -10.7109375, + "logprob": -10.71875, "text": "" }, { @@ -44879,27 +44879,27 @@ }, { "id": 32000, - "logprob": -10.9140625, + "logprob": -10.8984375, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.2890625, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -10.6328125, + "logprob": -10.640625, "text": "" }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.7109375, "text": "" }, { @@ -44914,202 +44914,17 @@ }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.6875, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2109375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -9.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, + "logprob": -11.5078125, "text": "" }, { @@ -45119,62 +44934,247 @@ }, { "id": 32000, - "logprob": -11.34375, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -10.734375, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -11.2265625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -11.890625, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.21875, "text": "" }, { "id": 32000, - "logprob": -10.4375, + "logprob": -9.984375, "text": "" }, { "id": 32000, - "logprob": -10.6640625, + "logprob": -11.0, "text": "" }, { "id": 32000, - "logprob": -10.4765625, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -13.59375, + "logprob": -11.09375, "text": "" }, { "id": 32000, - "logprob": -11.4453125, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -14.0546875, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, "text": "" }, { @@ -45184,22 +45184,22 @@ }, { "id": 32000, - "logprob": -12.828125, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.671875, "text": "" }, { @@ -45214,37 +45214,12 @@ }, { "id": 32000, - "logprob": -12.2421875, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -10.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -10.875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, + "logprob": -10.359375, "text": "" }, { @@ -45254,12 +45229,37 @@ }, { "id": 32000, - "logprob": -10.5703125, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -10.71875, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7421875, "text": "" }, { @@ -45269,22 +45269,22 @@ }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.0390625, "text": "" }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -10.9921875, "text": "" }, { "id": 32000, - "logprob": -10.609375, + "logprob": -10.6171875, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2421875, "text": "" }, { @@ -45294,7 +45294,7 @@ }, { "id": 32000, - "logprob": -12.2578125, + "logprob": -12.265625, "text": "" }, { @@ -45304,7 +45304,7 @@ }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -12.859375, "text": "" }, { @@ -45314,12 +45314,12 @@ }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { @@ -45329,17 +45329,17 @@ }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2421875, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -10.3046875, + "logprob": -10.2890625, "text": "" }, { @@ -45349,7 +45349,12 @@ }, { "id": 32000, - "logprob": -11.0234375, + "logprob": -10.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, "text": "" }, { @@ -45359,27 +45364,22 @@ }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.515625, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.1328125, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -10.5546875, "text": "" }, { "id": 32000, - "logprob": -10.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.3828125, + "logprob": -10.359375, "text": "" }, { @@ -45389,57 +45389,37 @@ }, { "id": 32000, - "logprob": -10.828125, + "logprob": -10.8125, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8671875, "text": "" }, { "id": 32000, - "logprob": -11.2734375, + "logprob": -11.1796875, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.203125, + "logprob": -11.59375, "text": "" }, { @@ -45449,22 +45429,27 @@ }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -13.4375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -14.203125, "text": "" }, { "id": 32000, - "logprob": -10.6171875, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, "text": "" }, { @@ -45474,22 +45459,12 @@ }, { "id": 32000, - "logprob": -11.25, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -10.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, + "logprob": -10.609375, "text": "" }, { @@ -45497,6 +45472,31 @@ "logprob": -10.90625, "text": "" }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, { "id": 32000, "logprob": -10.8671875, @@ -45514,7 +45514,7 @@ }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9921875, "text": "" }, { @@ -45524,7 +45524,7 @@ }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.3828125, "text": "" }, { @@ -45534,82 +45534,32 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.9921875, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -13.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.78125, + "logprob": -13.328125, "text": "" }, { @@ -45619,17 +45569,67 @@ }, { "id": 32000, - "logprob": -13.8828125, + "logprob": -12.7109375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -10.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4140625, "text": "" }, { @@ -45644,57 +45644,57 @@ }, { "id": 32000, - "logprob": -13.609375, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.484375, "text": "" }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -14.9140625, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -13.3125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -11.1484375, + "logprob": -11.171875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.2265625, + "logprob": -11.1875, "text": "" }, { @@ -45704,67 +45704,17 @@ }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.1953125, "text": "" }, { "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, + "logprob": -12.1328125, "text": "" }, { @@ -45774,12 +45724,62 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, "text": "" }, { @@ -45794,7 +45794,17 @@ }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, "text": "" }, { @@ -45804,32 +45814,22 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -15.0234375, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -15.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8671875, + "logprob": -11.859375, "text": "" }, { @@ -45839,27 +45839,27 @@ }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.4921875, "text": "" }, { @@ -45869,12 +45869,12 @@ }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { @@ -45889,12 +45889,12 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -14.0234375, + "logprob": -14.015625, "text": "" }, { @@ -45909,32 +45909,32 @@ }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -13.7734375, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.359375, "text": "" }, { @@ -45949,12 +45949,12 @@ }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -13.5859375, + "logprob": -13.6015625, "text": "" }, { @@ -45969,12 +45969,12 @@ }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -13.6015625, + "logprob": -13.59375, "text": "" }, { @@ -45984,7 +45984,7 @@ }, { "id": 32000, - "logprob": -14.5859375, + "logprob": -14.5703125, "text": "" }, { @@ -45994,12 +45994,12 @@ }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -11.7890625, "text": "" }, { @@ -46009,12 +46009,12 @@ }, { "id": 32000, - "logprob": -14.421875, + "logprob": -14.4296875, "text": "" }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.53125, "text": "" }, { @@ -46024,117 +46024,12 @@ }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -16.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5234375, + "logprob": -11.609375, "text": "" }, { @@ -46144,17 +46039,32 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -14.5859375, + "logprob": -12.8828125, "text": "" }, { "id": 32000, - "logprob": -13.234375, + "logprob": -12.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, "text": "" }, { @@ -46164,42 +46074,132 @@ }, { "id": 32000, - "logprob": -13.8046875, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -16.359375, "text": "" }, { "id": 32000, - "logprob": -16.203125, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.75, "text": "" }, { "id": 32000, - "logprob": -15.78125, + "logprob": -11.7890625, "text": "" }, { "id": 32000, - "logprob": -12.734375, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -16.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, "text": "" }, { @@ -46209,12 +46209,12 @@ }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.71875, "text": "" }, { @@ -46229,7 +46229,7 @@ }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.3203125, "text": "" }, { @@ -46239,17 +46239,17 @@ }, { "id": 32000, - "logprob": -14.21875, + "logprob": -14.2265625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1875, "text": "" }, { @@ -46274,22 +46274,22 @@ }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.1875, "text": "" }, { @@ -46299,12 +46299,12 @@ }, { "id": 32000, - "logprob": -14.4140625, + "logprob": -14.421875, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2890625, "text": "" }, { @@ -46324,27 +46324,27 @@ }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.859375, "text": "" }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.9453125, "text": "" }, { @@ -46359,27 +46359,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.59375, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, "text": "" }, { @@ -46389,22 +46399,12 @@ }, { "id": 32000, - "logprob": -13.203125, + "logprob": -15.3515625, "text": "" }, { "id": 32000, - "logprob": -11.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2109375, + "logprob": -13.1875, "text": "" }, { @@ -46414,22 +46414,22 @@ }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -12.5390625, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -13.3203125, "text": "" }, { @@ -46439,27 +46439,27 @@ }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9921875, "text": "" }, { @@ -46469,32 +46469,32 @@ }, { "id": 32000, - "logprob": -13.375, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3359375, "text": "" }, { @@ -46504,12 +46504,12 @@ }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.984375, "text": "" }, { @@ -46519,7 +46519,7 @@ }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4140625, "text": "" }, { @@ -46529,17 +46529,17 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.421875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { @@ -46554,12 +46554,12 @@ }, { "id": 32000, - "logprob": -13.96875, + "logprob": -14.0, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.40625, "text": "" }, { @@ -46569,27 +46569,27 @@ }, { "id": 32000, - "logprob": -12.8046875, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -13.1796875, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.765625, "text": "" }, { @@ -46599,37 +46599,37 @@ }, { "id": 32000, - "logprob": -12.2578125, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -14.6328125, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3125, "text": "" }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.3984375, "text": "" }, { @@ -46639,27 +46639,42 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -13.8671875, + "logprob": -13.875, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2890625, "text": "" }, { @@ -46669,27 +46684,12 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -13.59375, "text": "" }, { "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { @@ -46699,7 +46699,12 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.1015625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, "text": "" }, { @@ -46709,12 +46714,7 @@ }, { "id": 32000, - "logprob": -13.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, + "logprob": -12.4609375, "text": "" }, { @@ -46724,7 +46724,12 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, "text": "" }, { @@ -46734,22 +46739,17 @@ }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -15.390625, "text": "" }, { "id": 32000, - "logprob": -15.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, + "logprob": -11.953125, "text": "" }, { @@ -46759,27 +46759,27 @@ }, { "id": 32000, - "logprob": -15.46875, + "logprob": -15.4921875, "text": "" }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.9296875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.609375, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.984375, "text": "" }, { @@ -46789,22 +46789,22 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1875, "text": "" }, { @@ -46814,42 +46814,42 @@ }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8984375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -14.2734375, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.2109375, "text": "" }, { @@ -46884,12 +46884,12 @@ }, { "id": 32000, - "logprob": -14.0546875, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.53125, "text": "" }, { @@ -46899,17 +46899,17 @@ }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.0546875, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.328125, "text": "" }, { @@ -46924,22 +46924,22 @@ }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.078125, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.828125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.8046875, "text": "" }, { @@ -46949,7 +46949,7 @@ }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.59375, "text": "" }, { @@ -46959,32 +46959,32 @@ }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.7734375, + "logprob": -12.78125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5546875, "text": "" }, { @@ -46994,142 +46994,67 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -14.6015625, + "logprob": -14.609375, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -13.1953125, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.46875, "text": "" }, { "id": 32000, - "logprob": -15.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -15.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1796875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, + "logprob": -15.609375, "text": "" }, { @@ -47139,27 +47064,102 @@ }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -10.6640625, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -15.765625, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.7890625, "text": "" }, { @@ -47169,52 +47169,52 @@ }, { "id": 32000, - "logprob": -11.234375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -14.5078125, + "logprob": -14.484375, "text": "" }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -16.234375, + "logprob": -16.21875, "text": "" }, { "id": 32000, - "logprob": -14.4609375, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -16.140625, + "logprob": -16.109375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -12.984375, "text": "" }, { @@ -47229,7 +47229,7 @@ }, { "id": 32000, - "logprob": -13.828125, + "logprob": -13.8671875, "text": "" }, { @@ -47239,17 +47239,17 @@ }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0703125, "text": "" }, { @@ -47269,62 +47269,62 @@ }, { "id": 32000, - "logprob": -10.8203125, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -15.4140625, + "logprob": -15.46875, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -10.5078125, + "logprob": -10.515625, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -11.0078125, + "logprob": -11.015625, "text": "" }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.3984375, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.375, "text": "" }, { "id": 32000, - "logprob": -13.6484375, + "logprob": -13.5625, "text": "" }, { @@ -47334,7 +47334,7 @@ }, { "id": 32000, - "logprob": -11.203125, + "logprob": -11.2109375, "text": "" }, { @@ -47344,47 +47344,47 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6640625, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8828125, "text": "" }, { "id": 32000, - "logprob": -10.1953125, + "logprob": -9.9375, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.2734375, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.203125, "text": "" }, { "id": 32000, - "logprob": -14.25, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.65625, "text": "" }, { @@ -47394,12 +47394,12 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -14.90625, + "logprob": -14.8359375, "text": "" }, { @@ -47409,7 +47409,7 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.8984375, "text": "" }, { @@ -47429,82 +47429,82 @@ }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -15.578125, + "logprob": -15.5390625, "text": "" }, { "id": 32000, - "logprob": -15.0546875, + "logprob": -15.2578125, "text": "" }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.1171875, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -11.0, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.296875, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -13.6640625, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.5859375, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.3828125, "text": "" }, { @@ -47519,27 +47519,27 @@ }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -13.1796875, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.125, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.9375, "text": "" }, { @@ -47549,62 +47549,7 @@ }, { "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5, - "text": "" - }, - { - "id": 32000, - "logprob": -11.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -9.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, + "logprob": -11.3203125, "text": "" }, { @@ -47614,12 +47559,12 @@ }, { "id": 32000, - "logprob": -12.1875, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.3359375, "text": "" }, { @@ -47629,17 +47574,32 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.359375, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -9.6953125, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, "text": "" }, { @@ -47649,27 +47609,67 @@ }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6796875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, "text": "" }, { @@ -47679,12 +47679,12 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -13.875, + "logprob": -13.9453125, "text": "" }, { @@ -47694,7 +47694,7 @@ }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.0859375, "text": "" }, { @@ -47709,162 +47709,17 @@ }, { "id": 32000, - "logprob": -13.875, + "logprob": -13.7890625, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -16.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5078125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.421875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.765625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.625, + "logprob": -12.671875, "text": "" }, { @@ -47874,42 +47729,187 @@ }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -12.6328125, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, "text": "" }, { @@ -47919,22 +47919,22 @@ }, { "id": 32000, - "logprob": -14.984375, + "logprob": -15.0234375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9453125, "text": "" }, { @@ -47949,27 +47949,27 @@ }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.9609375, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -16.15625, + "logprob": -16.140625, "text": "" }, { "id": 32000, - "logprob": -13.4375, + "logprob": -13.4609375, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7265625, "text": "" }, { @@ -47979,12 +47979,12 @@ }, { "id": 32000, - "logprob": -13.25, + "logprob": -13.234375, "text": "" }, { "id": 32000, - "logprob": -13.2421875, + "logprob": -13.2578125, "text": "" }, { @@ -47994,12 +47994,12 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -13.8359375, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.6171875, "text": "" }, { @@ -48009,12 +48009,12 @@ }, { "id": 32000, - "logprob": -14.4609375, + "logprob": -14.4765625, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.15625, "text": "" }, { @@ -48024,17 +48024,17 @@ }, { "id": 32000, - "logprob": -14.1015625, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.265625, "text": "" }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.6328125, "text": "" }, { @@ -48049,42 +48049,42 @@ }, { "id": 32000, - "logprob": -13.03125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -10.3984375, + "logprob": -10.46875, "text": "" }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -13.5625, + "logprob": -13.59375, "text": "" }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -14.09375, + "logprob": -14.140625, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.15625, "text": "" }, { @@ -48094,32 +48094,32 @@ }, { "id": 32000, - "logprob": -14.0625, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -14.1484375, + "logprob": -14.1328125, "text": "" }, { "id": 32000, - "logprob": -13.859375, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.34375, "text": "" }, { "id": 32000, - "logprob": -13.0078125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.40625, "text": "" }, { @@ -48129,7 +48129,7 @@ }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.8125, "text": "" }, { @@ -48144,32 +48144,7 @@ }, { "id": 32000, - "logprob": -11.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.859375, + "logprob": -11.46875, "text": "" }, { @@ -48179,32 +48154,57 @@ }, { "id": 32000, - "logprob": -14.171875, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.6171875, "text": "" }, { "id": 32000, - "logprob": -14.5, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -18.125, + "logprob": -14.8359375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5078125, + "text": "" + }, + { + "id": 32000, + "logprob": -18.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.71875, "text": "" }, { @@ -48214,37 +48214,37 @@ }, { "id": 32000, - "logprob": -14.9765625, + "logprob": -14.9921875, "text": "" }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.8515625, "text": "" }, { "id": 32000, - "logprob": -15.34375, + "logprob": -15.40625, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -14.5390625, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -15.265625, + "logprob": -15.2890625, "text": "" }, { "id": 32000, - "logprob": -13.625, + "logprob": -13.609375, "text": "" }, { @@ -48254,7 +48254,7 @@ }, { "id": 32000, - "logprob": -15.828125, + "logprob": -15.8359375, "text": "" }, { @@ -48269,12 +48269,12 @@ }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.328125, "text": "" }, { "id": 32000, - "logprob": -13.7734375, + "logprob": -13.78125, "text": "" }, { @@ -48284,27 +48284,27 @@ }, { "id": 32000, - "logprob": -13.484375, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -13.265625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -13.7578125, + "logprob": -13.75, "text": "" }, { @@ -48314,17 +48314,17 @@ }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0546875, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.65625, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6953125, "text": "" }, { @@ -48334,12 +48334,12 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -13.3203125, + "logprob": -13.328125, "text": "" }, { @@ -48349,17 +48349,12 @@ }, { "id": 32000, - "logprob": -13.6328125, + "logprob": -13.640625, "text": "" }, { "id": 32000, - "logprob": -15.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.234375, + "logprob": -15.15625, "text": "" }, { @@ -48369,32 +48364,37 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -13.25, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -11.3125, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -10.6328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -10.6484375, "text": "" }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.234375, "text": "" }, { @@ -48404,77 +48404,52 @@ }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.8125, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.828125, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.578125, "text": "" }, { "id": 32000, - "logprob": -14.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.453125, + "logprob": -14.625, "text": "" }, { @@ -48484,22 +48459,47 @@ }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.0390625, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, "text": "" }, { @@ -48514,7 +48514,7 @@ }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.2265625, "text": "" }, { @@ -48529,32 +48529,32 @@ }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.796875, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -13.6328125, + "logprob": -13.65625, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.90625, "text": "" }, { @@ -48564,7 +48564,22 @@ }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, "text": "" }, { @@ -48574,27 +48589,12 @@ }, { "id": 32000, - "logprob": -14.2421875, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { @@ -48604,17 +48604,17 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -10.5, + "logprob": -10.5078125, "text": "" }, { @@ -48624,12 +48624,12 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.375, "text": "" }, { "id": 32000, - "logprob": -11.0546875, + "logprob": -11.0625, "text": "" }, { @@ -48644,7 +48644,7 @@ }, { "id": 32000, - "logprob": -13.328125, + "logprob": -13.3515625, "text": "" }, { @@ -48654,12 +48654,12 @@ }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.53125, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.203125, "text": "" }, { @@ -48669,7 +48669,7 @@ }, { "id": 32000, - "logprob": -13.828125, + "logprob": -13.8359375, "text": "" }, { @@ -48679,12 +48679,17 @@ }, { "id": 32000, - "logprob": -14.1953125, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -14.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0546875, "text": "" }, { @@ -48694,12 +48699,7 @@ }, { "id": 32000, - "logprob": -14.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0625, "text": "" }, { @@ -48714,42 +48714,42 @@ }, { "id": 32000, - "logprob": -14.6875, + "logprob": -14.703125, "text": "" }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.296875, "text": "" }, { "id": 32000, - "logprob": -14.875, + "logprob": -14.8828125, "text": "" }, { "id": 32000, - "logprob": -14.1640625, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -13.109375, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.3203125, "text": "" }, { @@ -48759,17 +48759,17 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.734375, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.3984375, "text": "" }, { @@ -48779,47 +48779,47 @@ }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.8984375, "text": "" }, { "id": 32000, - "logprob": -13.671875, + "logprob": -13.6953125, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -13.3125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9921875, "text": "" }, { @@ -48829,7 +48829,7 @@ }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.03125, "text": "" }, { @@ -48849,7 +48849,7 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.6484375, "text": "" }, { @@ -48859,17 +48859,17 @@ }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -10.84375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9140625, "text": "" }, { @@ -48884,32 +48884,12 @@ }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -10.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, + "logprob": -10.84375, "text": "" }, { @@ -48919,22 +48899,12 @@ }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, + "logprob": -12.7421875, "text": "" }, { @@ -48944,52 +48914,82 @@ }, { "id": 32000, - "logprob": -13.609375, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -13.109375, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -14.046875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -13.796875, + "logprob": -13.625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -13.46875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -13.7265625, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7109375, "text": "" }, { @@ -48999,7 +48999,7 @@ }, { "id": 32000, - "logprob": -15.8046875, + "logprob": -15.796875, "text": "" }, { @@ -49009,27 +49009,27 @@ }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -11.3203125, + "logprob": -11.328125, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { @@ -49044,17 +49044,17 @@ }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.7578125, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4765625, "text": "" }, { @@ -49064,37 +49064,37 @@ }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.234375, + "logprob": -15.2578125, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.0078125, "text": "" }, { "id": 32000, - "logprob": -15.2421875, + "logprob": -15.3828125, "text": "" }, { "id": 32000, - "logprob": -11.1953125, + "logprob": -11.203125, "text": "" }, { @@ -49109,12 +49109,12 @@ }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -13.4296875, + "logprob": -13.4453125, "text": "" }, { @@ -49124,12 +49124,12 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { @@ -49139,37 +49139,37 @@ }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.359375, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.171875, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -13.375, "text": "" }, { @@ -49184,12 +49184,12 @@ }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.046875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.0859375, "text": "" }, { @@ -49199,7 +49199,7 @@ }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.4765625, "text": "" }, { @@ -49209,7 +49209,7 @@ }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7265625, "text": "" }, { @@ -49219,122 +49219,122 @@ }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.3359375, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -14.296875, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -13.796875, + "logprob": -13.8046875, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.2109375, "text": "" }, { "id": 32000, - "logprob": -13.3046875, + "logprob": -13.2890625, "text": "" }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -14.1015625, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -13.96875, + "logprob": -13.90625, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.3203125, "text": "" }, { @@ -49344,7 +49344,12 @@ }, { "id": 32000, - "logprob": -11.8046875, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, "text": "" }, { @@ -49354,12 +49359,7 @@ }, { "id": 32000, - "logprob": -12.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2734375, + "logprob": -11.265625, "text": "" }, { @@ -49369,7 +49369,7 @@ }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -13.15625, "text": "" }, { @@ -49379,7 +49379,7 @@ }, { "id": 32000, - "logprob": -12.984375, + "logprob": -13.0390625, "text": "" }, { @@ -49389,7 +49389,7 @@ }, { "id": 32000, - "logprob": -13.9765625, + "logprob": -14.0390625, "text": "" }, { @@ -49399,12 +49399,12 @@ }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.359375, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.953125, "text": "" }, { @@ -49414,97 +49414,27 @@ }, { "id": 32000, - "logprob": -12.8359375, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -13.0546875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -11.7578125, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.7109375, "text": "" }, { "id": 32000, - "logprob": -14.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7890625, + "logprob": -14.4765625, "text": "" }, { @@ -49514,7 +49444,37 @@ }, { "id": 32000, - "logprob": -11.859375, + "logprob": -13.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.25, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2890625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.640625, "text": "" }, { @@ -49524,7 +49484,47 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -13.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, "text": "" }, { @@ -49534,42 +49534,42 @@ }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.828125, "text": "" }, { @@ -49584,17 +49584,17 @@ }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -11.140625, + "logprob": -11.1328125, "text": "" }, { "id": 32000, - "logprob": -10.796875, + "logprob": -10.7890625, "text": "" }, { @@ -49604,7 +49604,7 @@ }, { "id": 32000, - "logprob": -10.8984375, + "logprob": -10.890625, "text": "" }, { @@ -49619,12 +49619,7 @@ }, { "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1484375, + "logprob": -12.078125, "text": "" }, { @@ -49634,37 +49629,42 @@ }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.15625, "text": "" }, { "id": 32000, - "logprob": -12.8046875, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -13.078125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -14.03125, + "logprob": -13.09375, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -14.046875, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -12.96875, "text": "" }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8359375, "text": "" }, { @@ -49674,12 +49674,12 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.46875, "text": "" }, { @@ -49694,7 +49694,7 @@ }, { "id": 32000, - "logprob": -13.3515625, + "logprob": -13.40625, "text": "" }, { @@ -49704,7 +49704,7 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.265625, "text": "" }, { @@ -49714,7 +49714,7 @@ }, { "id": 32000, - "logprob": -13.6875, + "logprob": -13.65625, "text": "" }, { @@ -49724,17 +49724,17 @@ }, { "id": 32000, - "logprob": -14.03125, + "logprob": -14.09375, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -15.65625, + "logprob": -15.640625, "text": "" }, { @@ -49744,37 +49744,42 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.3828125, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -14.515625, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -13.5703125, + "logprob": -13.609375, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, "text": "" }, { @@ -49784,22 +49789,17 @@ }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -11.59375, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -11.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1796875, "text": "" }, { @@ -49809,17 +49809,17 @@ }, { "id": 32000, - "logprob": -11.40625, + "logprob": -11.421875, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -11.1015625, "text": "" }, { @@ -49829,32 +49829,32 @@ }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -13.265625, + "logprob": -13.2578125, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -12.3671875, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.2578125, "text": "" }, { @@ -49869,7 +49869,7 @@ }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.84375, "text": "" }, { @@ -49879,42 +49879,42 @@ }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6953125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6796875, "text": "" }, { "id": 32000, - "logprob": -12.546875, + "logprob": -12.5546875, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0859375, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.234375, "text": "" }, { @@ -49924,42 +49924,32 @@ }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8671875, "text": "" }, { "id": 32000, - "logprob": -13.9375, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -13.5234375, + "logprob": -13.5078125, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -13.390625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9140625, + "logprob": -13.3984375, "text": "" }, { @@ -49969,202 +49959,12 @@ }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -14.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.25, - "text": "" - }, - { - "id": 32000, - "logprob": -14.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6171875, + "logprob": -14.265625, "text": "" }, { @@ -50174,32 +49974,232 @@ }, { "id": 32000, - "logprob": -13.140625, + "logprob": -14.40625, "text": "" }, { "id": 32000, - "logprob": -13.421875, + "logprob": -15.296875, "text": "" }, { "id": 32000, - "logprob": -14.328125, + "logprob": -13.4140625, "text": "" }, { "id": 32000, - "logprob": -13.7578125, + "logprob": -12.3828125, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.4296875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.515625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9765625, "text": "" }, { @@ -50214,32 +50214,32 @@ }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -14.921875, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -13.921875, + "logprob": -13.6953125, "text": "" }, { @@ -50249,67 +50249,67 @@ }, { "id": 32000, - "logprob": -12.1796875, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.375, "text": "" }, { "id": 32000, - "logprob": -13.40625, + "logprob": -13.28125, "text": "" }, { "id": 32000, - "logprob": -12.5, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -14.375, + "logprob": -14.4140625, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -11.0, + "logprob": -11.0234375, "text": "" }, { @@ -50319,232 +50319,17 @@ }, { "id": 32000, - "logprob": -11.1640625, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.40625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7421875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.75, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7265625, "text": "" }, { @@ -50554,22 +50339,237 @@ }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -11.875, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.78125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.2265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.796875, "text": "" }, { @@ -50584,12 +50584,12 @@ }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -11.375, + "logprob": -11.3828125, "text": "" }, { @@ -50599,7 +50599,7 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9296875, "text": "" }, { @@ -50609,7 +50609,7 @@ }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.5546875, "text": "" }, { @@ -50619,22 +50619,22 @@ }, { "id": 32000, - "logprob": -10.4140625, + "logprob": -10.40625, "text": "" }, { "id": 32000, - "logprob": -12.640625, + "logprob": -12.59375, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -12.0234375, + "logprob": -12.03125, "text": "" }, { @@ -50644,12 +50644,12 @@ }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.5, "text": "" }, { @@ -50659,12 +50659,12 @@ }, { "id": 32000, - "logprob": -13.0, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -14.140625, + "logprob": -14.171875, "text": "" }, { @@ -50674,27 +50674,27 @@ }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -13.0234375, "text": "" }, { "id": 32000, - "logprob": -13.9453125, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.4609375, + "logprob": -12.46875, "text": "" }, { @@ -50704,7 +50704,7 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.53125, "text": "" }, { @@ -50714,92 +50714,92 @@ }, { "id": 32000, - "logprob": -15.0546875, + "logprob": -15.0625, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -13.515625, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.375, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -14.0390625, + "logprob": -14.09375, "text": "" }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9375, "text": "" }, { "id": 32000, - "logprob": -11.0234375, + "logprob": -11.0546875, "text": "" }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -14.9609375, + "logprob": -14.9765625, "text": "" }, { @@ -50809,37 +50809,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.703125, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -10.9921875, + "logprob": -10.984375, "text": "" }, { @@ -50854,7 +50854,7 @@ }, { "id": 32000, - "logprob": -12.46875, + "logprob": -12.4921875, "text": "" }, { @@ -50864,12 +50864,17 @@ }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.40625, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.953125, "text": "" }, { @@ -50879,17 +50884,27 @@ }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -14.4609375, "text": "" }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.765625, "text": "" }, { @@ -50899,17 +50914,7 @@ }, { "id": 32000, - "logprob": -12.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, + "logprob": -13.328125, "text": "" }, { @@ -50919,27 +50924,22 @@ }, { "id": 32000, - "logprob": -13.25, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.8359375, "text": "" }, { "id": 32000, - "logprob": -13.78125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, + "logprob": -12.2734375, "text": "" }, { @@ -50949,12 +50949,12 @@ }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.96875, "text": "" }, { @@ -50964,12 +50964,12 @@ }, { "id": 32000, - "logprob": -13.2421875, + "logprob": -13.25, "text": "" }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.96875, "text": "" }, { @@ -50984,132 +50984,27 @@ }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.0859375, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4296875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -10.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, + "logprob": -11.890625, "text": "" }, { @@ -51119,57 +51014,7 @@ }, { "id": 32000, - "logprob": -12.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.015625, + "logprob": -11.4375, "text": "" }, { @@ -51179,352 +51024,27 @@ }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -11.109375, "text": "" }, { "id": 32000, - "logprob": -14.6875, + "logprob": -11.296875, "text": "" }, { "id": 32000, - "logprob": -13.609375, + "logprob": -11.1015625, "text": "" }, { "id": 32000, - "logprob": -13.75, + "logprob": -11.203125, "text": "" }, { "id": 32000, - "logprob": -14.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1953125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -14.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.09375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5, - "text": "" - }, - { - "id": 32000, - "logprob": -13.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3671875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, + "logprob": -10.9921875, "text": "" }, { @@ -51532,11 +51052,491 @@ "logprob": -12.046875, "text": "" }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7890625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4140625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.25, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, { "id": 32000, "logprob": -11.2421875, "text": "" }, + { + "id": 32000, + "logprob": -12.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.453125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.1328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1640625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2578125, + "text": "" + }, { "id": 32000, "logprob": -11.328125, @@ -51544,7 +51544,7 @@ }, { "id": 32000, - "logprob": -11.9609375, + "logprob": -11.953125, "text": "" }, { @@ -51554,7 +51554,7 @@ }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { @@ -51569,7 +51569,7 @@ }, { "id": 32000, - "logprob": -11.046875, + "logprob": -11.0390625, "text": "" }, { @@ -51579,27 +51579,27 @@ }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.6640625, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -11.6484375, + "logprob": -11.65625, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.25, "text": "" }, { @@ -51614,7 +51614,7 @@ }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.34375, "text": "" }, { @@ -51624,32 +51624,12 @@ }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, + "logprob": -11.296875, "text": "" }, { @@ -51659,27 +51639,47 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -13.703125, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -13.828125, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8359375, "text": "" }, { @@ -51694,72 +51694,72 @@ }, { "id": 32000, - "logprob": -14.5546875, + "logprob": -14.5625, "text": "" }, { "id": 32000, - "logprob": -14.015625, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -10.6953125, + "logprob": -10.7109375, "text": "" }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -14.359375, + "logprob": -14.3359375, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.296875, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.09375, + "logprob": -11.0625, "text": "" }, { @@ -51769,7 +51769,7 @@ }, { "id": 32000, - "logprob": -12.2734375, + "logprob": -12.28125, "text": "" }, { @@ -51779,12 +51779,12 @@ }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.28125, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5546875, "text": "" }, { @@ -51794,37 +51794,42 @@ }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -11.453125, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.2890625, "text": "" }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -12.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.734375, "text": "" }, { @@ -51834,12 +51839,7 @@ }, { "id": 32000, - "logprob": -11.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3984375, + "logprob": -11.40625, "text": "" }, { @@ -51859,32 +51859,32 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.03125, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6640625, "text": "" }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.671875, "text": "" }, { @@ -51894,7 +51894,7 @@ }, { "id": 32000, - "logprob": -14.3828125, + "logprob": -14.2890625, "text": "" }, { @@ -51909,22 +51909,42 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -14.6953125, + "logprob": -14.6484375, "text": "" }, { "id": 32000, - "logprob": -13.515625, + "logprob": -13.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, "text": "" }, { @@ -51934,67 +51954,47 @@ }, { "id": 32000, - "logprob": -13.4140625, + "logprob": -11.9609375, "text": "" }, { "id": 32000, - "logprob": -14.375, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -12.453125, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -13.8046875, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -11.890625, + "logprob": -13.7890625, "text": "" }, { "id": 32000, - "logprob": -12.5, - "text": "" - }, - { - "id": 32000, - "logprob": -14.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.71875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.421875, + "logprob": -14.3828125, "text": "" }, { @@ -52014,22 +52014,22 @@ }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.015625, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { @@ -52039,7 +52039,7 @@ }, { "id": 32000, - "logprob": -11.3203125, + "logprob": -11.328125, "text": "" }, { @@ -52049,7 +52049,7 @@ }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.5859375, "text": "" }, { @@ -52059,7 +52059,7 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0390625, "text": "" }, { @@ -52069,7 +52069,7 @@ }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4609375, "text": "" }, { @@ -52089,12 +52089,12 @@ }, { "id": 32000, - "logprob": -11.296875, + "logprob": -11.3046875, "text": "" }, { "id": 32000, - "logprob": -12.203125, + "logprob": -12.21875, "text": "" }, { @@ -52104,7 +52104,7 @@ }, { "id": 32000, - "logprob": -10.90625, + "logprob": -10.9140625, "text": "" }, { @@ -52114,37 +52114,37 @@ }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.203125, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.140625, + "logprob": -14.6640625, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -14.2734375, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.53125, "text": "" }, { @@ -52154,62 +52154,62 @@ }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.78125, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.6015625, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.1015625, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.703125, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { @@ -52219,22 +52219,22 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -11.21875, + "logprob": -11.34375, "text": "" }, { @@ -52249,37 +52249,37 @@ }, { "id": 32000, - "logprob": -12.9921875, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -15.15625, + "logprob": -15.1875, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.515625, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.5703125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.703125, "text": "" }, { @@ -52299,27 +52299,27 @@ }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5546875, "text": "" }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -11.1875, + "logprob": -11.1953125, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7578125, "text": "" }, { @@ -52329,7 +52329,7 @@ }, { "id": 32000, - "logprob": -13.2734375, + "logprob": -13.2421875, "text": "" }, { @@ -52339,62 +52339,62 @@ }, { "id": 32000, - "logprob": -11.34375, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.3984375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -11.1796875, + "logprob": -11.1875, "text": "" }, { "id": 32000, - "logprob": -13.375, + "logprob": -13.359375, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.6796875, "text": "" }, { "id": 32000, - "logprob": -12.9453125, + "logprob": -12.9140625, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -13.59375, + "logprob": -13.5625, "text": "" }, { @@ -52402,21 +52402,6 @@ "logprob": -13.3203125, "text": "" }, - { - "id": 32000, - "logprob": -12.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6796875, - "text": "" - }, { "id": 32000, "logprob": -12.8046875, @@ -52424,12 +52409,17 @@ }, { "id": 32000, - "logprob": -12.78125, + "logprob": -13.1171875, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -11.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, "text": "" }, { @@ -52437,6 +52427,16 @@ "logprob": -12.78125, "text": "" }, + { + "id": 32000, + "logprob": -12.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7578125, + "text": "" + }, { "id": 32000, "logprob": -11.484375, @@ -52444,37 +52444,37 @@ }, { "id": 32000, - "logprob": -12.75, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -11.6328125, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -11.3046875, + "logprob": -11.3125, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.265625, "text": "" }, { @@ -52509,7 +52509,7 @@ }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.046875, "text": "" }, { @@ -52519,7 +52519,7 @@ }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.7109375, "text": "" }, { @@ -52529,27 +52529,27 @@ }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -14.3046875, + "logprob": -14.3125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7578125, "text": "" }, { @@ -52559,142 +52559,12 @@ }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -14.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.078125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0703125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.65625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, + "logprob": -14.1640625, "text": "" }, { @@ -52704,7 +52574,137 @@ }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -11.3125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.7265625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6484375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.078125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.15625, "text": "" }, { @@ -52719,12 +52719,12 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.9296875, + "logprob": -11.9375, "text": "" }, { @@ -52734,17 +52734,17 @@ }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.7890625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0390625, "text": "" }, { @@ -52754,12 +52754,12 @@ }, { "id": 32000, - "logprob": -12.5859375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -10.75, + "logprob": -10.7578125, "text": "" }, { @@ -52769,12 +52769,12 @@ }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -11.2578125, + "logprob": -11.265625, "text": "" }, { @@ -52784,27 +52784,27 @@ }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.7890625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -11.25, + "logprob": -11.234375, "text": "" }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.46875, "text": "" }, { @@ -52814,7 +52814,7 @@ }, { "id": 32000, - "logprob": -11.890625, + "logprob": -11.8515625, "text": "" }, { @@ -52829,17 +52829,17 @@ }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.7890625, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.1953125, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.28125, "text": "" }, { @@ -52849,7 +52849,7 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.34375, "text": "" }, { @@ -52859,27 +52859,27 @@ }, { "id": 32000, - "logprob": -13.0078125, + "logprob": -13.0, "text": "" }, { "id": 32000, - "logprob": -15.25, + "logprob": -15.28125, "text": "" }, { "id": 32000, - "logprob": -14.78125, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0234375, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.109375, "text": "" }, { @@ -52894,32 +52894,32 @@ }, { "id": 32000, - "logprob": -14.7265625, + "logprob": -14.7109375, "text": "" }, { "id": 32000, - "logprob": -10.015625, + "logprob": -10.0234375, "text": "" }, { "id": 32000, - "logprob": -11.8515625, + "logprob": -11.46875, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.9765625, "text": "" }, { "id": 32000, - "logprob": -14.2734375, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -14.9140625, + "logprob": -14.890625, "text": "" }, { @@ -52934,12 +52934,12 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3515625, "text": "" }, { @@ -52949,47 +52949,47 @@ }, { "id": 32000, - "logprob": -12.421875, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.890625, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -11.546875, + "logprob": -11.5625, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.4609375, + "logprob": -12.4765625, "text": "" }, { @@ -53004,17 +53004,17 @@ }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.125, "text": "" }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8125, "text": "" }, { @@ -53029,52 +53029,52 @@ }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.375, + "logprob": -12.390625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3515625, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.25, "text": "" }, { @@ -53084,17 +53084,17 @@ }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.4921875, "text": "" }, { @@ -53104,72 +53104,12 @@ }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -14.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.328125, + "logprob": -15.0625, "text": "" }, { @@ -53179,62 +53119,72 @@ }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -12.796875, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -11.5859375, + "logprob": -13.5546875, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -14.96875, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -13.9296875, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -10.5859375, "text": "" }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -15.0078125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -12.3359375, "text": "" }, { "id": 32000, - "logprob": -12.9765625, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6015625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.578125, "text": "" }, { @@ -53244,37 +53194,87 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -11.78125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -10.8359375, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -10.7109375, + "logprob": -11.4609375, "text": "" }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -11.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.9375, "text": "" }, { @@ -53289,27 +53289,27 @@ }, { "id": 32000, - "logprob": -11.171875, + "logprob": -11.1796875, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4453125, "text": "" }, { @@ -53324,17 +53324,47 @@ }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.09375, "text": "" }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -15.4375, + "logprob": -15.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8359375, "text": "" }, { @@ -53342,36 +53372,6 @@ "logprob": -11.8515625, "text": "" }, - { - "id": 32000, - "logprob": -11.4765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0, - "text": "" - }, - { - "id": 32000, - "logprob": -12.21875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, { "id": 32000, "logprob": -11.0625, @@ -53379,27 +53379,27 @@ }, { "id": 32000, - "logprob": -13.8828125, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5859375, "text": "" }, { "id": 32000, - "logprob": -13.984375, + "logprob": -14.0234375, "text": "" }, { @@ -53409,22 +53409,22 @@ }, { "id": 32000, - "logprob": -14.1328125, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.3515625, "text": "" }, { @@ -53434,7 +53434,7 @@ }, { "id": 32000, - "logprob": -11.8671875, + "logprob": -11.90625, "text": "" }, { @@ -53444,7 +53444,7 @@ }, { "id": 32000, - "logprob": -11.578125, + "logprob": -11.5703125, "text": "" }, { @@ -53454,7 +53454,7 @@ }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.6875, "text": "" }, { @@ -53464,12 +53464,12 @@ }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.78125, + "logprob": -12.8125, "text": "" }, { @@ -53489,12 +53489,12 @@ }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.46875, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.0703125, "text": "" }, { @@ -53524,7 +53524,7 @@ }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.9765625, "text": "" }, { @@ -53534,32 +53534,32 @@ }, { "id": 32000, - "logprob": -10.8828125, + "logprob": -10.890625, "text": "" }, { "id": 32000, - "logprob": -11.015625, + "logprob": -11.0078125, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -10.609375, "text": "" }, { "id": 32000, - "logprob": -10.7890625, + "logprob": -10.796875, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.59375, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { @@ -53569,12 +53569,12 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5390625, "text": "" }, { @@ -53584,12 +53584,12 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -10.8515625, + "logprob": -10.9375, "text": "" }, { @@ -53599,117 +53599,52 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -12.0, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.3671875, "text": "" }, { "id": 32000, - "logprob": -9.609375, + "logprob": -9.625, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8515625, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.3359375, "text": "" }, { "id": 32000, - "logprob": -14.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5390625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.15625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.703125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2890625, + "logprob": -14.015625, "text": "" }, { @@ -53719,12 +53654,22 @@ }, { "id": 32000, - "logprob": -12.875, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -15.6875, + "logprob": -13.5, + "text": "" + }, + { + "id": 32000, + "logprob": -12.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -10.90625, "text": "" }, { @@ -53734,12 +53679,67 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.75, + "text": "" + }, + { + "id": 32000, + "logprob": -12.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.6953125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.140625, "text": "" }, { @@ -53749,12 +53749,12 @@ }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -12.3203125, + "logprob": -12.328125, "text": "" }, { @@ -53769,12 +53769,12 @@ }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.921875, "text": "" }, { "id": 32000, - "logprob": -10.84375, + "logprob": -10.8515625, "text": "" }, { @@ -53784,47 +53784,47 @@ }, { "id": 32000, - "logprob": -11.4140625, + "logprob": -11.40625, "text": "" }, { "id": 32000, - "logprob": -11.5546875, + "logprob": -11.546875, "text": "" }, { "id": 32000, - "logprob": -10.8125, + "logprob": -10.8046875, "text": "" }, { "id": 32000, - "logprob": -11.9140625, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6484375, "text": "" }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -12.5546875, + "logprob": -12.5703125, "text": "" }, { @@ -53839,7 +53839,7 @@ }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.734375, "text": "" }, { @@ -53854,47 +53854,47 @@ }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -14.203125, + "logprob": -14.1796875, "text": "" }, { "id": 32000, - "logprob": -14.828125, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -18.140625, + "logprob": -18.046875, "text": "" }, { "id": 32000, - "logprob": -15.59375, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -14.515625, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -10.6015625, + "logprob": -10.625, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.0546875, "text": "" }, { @@ -53904,47 +53904,47 @@ }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -13.140625, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3203125, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9296875, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -10.9453125, + "logprob": -10.9609375, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.828125, "text": "" }, { @@ -53959,27 +53959,27 @@ }, { "id": 32000, - "logprob": -11.5390625, + "logprob": -11.53125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -15.171875, + "logprob": -15.2421875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1171875, "text": "" }, { @@ -53989,7 +53989,7 @@ }, { "id": 32000, - "logprob": -11.6875, + "logprob": -11.671875, "text": "" }, { @@ -54009,12 +54009,12 @@ }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.734375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.609375, "text": "" }, { @@ -54024,12 +54024,12 @@ }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2109375, "text": "" }, { @@ -54044,12 +54044,12 @@ }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9765625, "text": "" }, { @@ -54069,87 +54069,87 @@ }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -11.5078125, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.875, "text": "" }, { "id": 32000, - "logprob": -14.46875, + "logprob": -14.4453125, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -14.9453125, + "logprob": -14.859375, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -14.7734375, + "logprob": -14.5546875, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.4765625, "text": "" }, { "id": 32000, - "logprob": -13.4375, + "logprob": -13.546875, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.3984375, "text": "" }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -14.796875, + "logprob": -14.828125, "text": "" }, { "id": 32000, - "logprob": -14.640625, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -12.703125, + "logprob": -12.6953125, "text": "" }, { @@ -54159,12 +54159,7 @@ }, { "id": 32000, - "logprob": -12.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.96875, + "logprob": -12.734375, "text": "" }, { @@ -54174,12 +54169,17 @@ }, { "id": 32000, - "logprob": -11.4296875, + "logprob": -14.0234375, "text": "" }, { "id": 32000, - "logprob": -12.5078125, + "logprob": -11.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.578125, "text": "" }, { @@ -54194,17 +54194,17 @@ }, { "id": 32000, - "logprob": -11.2109375, + "logprob": -11.1640625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.5, "text": "" }, { @@ -54214,7 +54214,7 @@ }, { "id": 32000, - "logprob": -14.140625, + "logprob": -14.1171875, "text": "" }, { @@ -54224,47 +54224,12 @@ }, { "id": 32000, - "logprob": -12.484375, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -10.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.96875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1953125, + "logprob": -10.6015625, "text": "" }, { @@ -54274,207 +54239,7 @@ }, { "id": 32000, - "logprob": -11.9140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.6484375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.9765625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.9921875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -15.140625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.0, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -15.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.921875, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6640625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -12.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4140625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.4921875, - "text": "" - }, - { - "id": 32000, - "logprob": -14.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8984375, + "logprob": -13.625, "text": "" }, { @@ -54484,12 +54249,247 @@ }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.3671875, "text": "" }, { "id": 32000, - "logprob": -15.1640625, + "logprob": -12.25, + "text": "" + }, + { + "id": 32000, + "logprob": -12.03125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.140625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.921875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9921875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3671875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.0, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9296875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.265625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.5234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8671875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5859375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.90625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -15.171875, "text": "" }, { @@ -54499,12 +54499,12 @@ }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.3671875, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.6171875, "text": "" }, { @@ -54529,22 +54529,22 @@ }, { "id": 32000, - "logprob": -11.3046875, + "logprob": -11.3125, "text": "" }, { "id": 32000, - "logprob": -11.171875, + "logprob": -11.1171875, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -13.0234375, + "logprob": -13.0859375, "text": "" }, { @@ -54554,17 +54554,17 @@ }, { "id": 32000, - "logprob": -13.46875, + "logprob": -13.515625, "text": "" }, { "id": 32000, - "logprob": -11.484375, + "logprob": -11.4921875, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { @@ -54574,12 +54574,12 @@ }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.0078125, "text": "" }, { "id": 32000, - "logprob": -15.171875, + "logprob": -15.21875, "text": "" }, { @@ -54589,27 +54589,27 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.2890625, + "logprob": -12.296875, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.1015625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.515625, "text": "" }, { @@ -54619,42 +54619,42 @@ }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.4609375, "text": "" }, { "id": 32000, - "logprob": -14.796875, + "logprob": -14.84375, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.6171875, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -13.5078125, + "logprob": -13.5390625, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4453125, "text": "" }, { @@ -54664,22 +54664,22 @@ }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.96875, "text": "" }, { "id": 32000, - "logprob": -12.5703125, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -15.8984375, + "logprob": -15.890625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.953125, "text": "" }, { @@ -54694,17 +54694,17 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.1875, "text": "" }, { "id": 32000, - "logprob": -12.1796875, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.1171875, + "logprob": -12.125, "text": "" }, { @@ -54714,27 +54714,27 @@ }, { "id": 32000, - "logprob": -13.125, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.1484375, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -13.9609375, + "logprob": -13.9453125, "text": "" }, { "id": 32000, - "logprob": -12.296875, + "logprob": -12.2890625, "text": "" }, { @@ -54744,7 +54744,7 @@ }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.734375, "text": "" }, { @@ -54754,32 +54754,32 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.8984375, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.140625, "text": "" }, { @@ -54794,12 +54794,12 @@ }, { "id": 32000, - "logprob": -12.453125, + "logprob": -12.4375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { @@ -54809,7 +54809,7 @@ }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.375, "text": "" }, { @@ -54819,52 +54819,52 @@ }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.484375, "text": "" }, { "id": 32000, - "logprob": -14.265625, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -11.234375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -12.09375, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -15.3203125, + "logprob": -15.328125, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -13.4453125, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.6640625, + "logprob": -12.671875, "text": "" }, { @@ -54874,7 +54874,7 @@ }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.9921875, "text": "" }, { @@ -54884,7 +54884,7 @@ }, { "id": 32000, - "logprob": -14.953125, + "logprob": -14.9453125, "text": "" }, { @@ -54894,12 +54894,12 @@ }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.265625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { @@ -54924,32 +54924,32 @@ }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3359375, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.15625, "text": "" }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.171875, "text": "" }, { "id": 32000, - "logprob": -11.640625, + "logprob": -11.6328125, "text": "" }, { @@ -54959,17 +54959,17 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.3515625, "text": "" }, { @@ -54989,17 +54989,17 @@ }, { "id": 32000, - "logprob": -12.3984375, + "logprob": -12.40625, "text": "" }, { "id": 32000, - "logprob": -11.5234375, + "logprob": -11.5390625, "text": "" }, { "id": 32000, - "logprob": -16.609375, + "logprob": -16.59375, "text": "" }, { @@ -55009,12 +55009,12 @@ }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.5390625, "text": "" }, { @@ -55029,12 +55029,12 @@ }, { "id": 32000, - "logprob": -13.0859375, + "logprob": -13.0703125, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.03125, "text": "" }, { @@ -55044,7 +55044,7 @@ }, { "id": 32000, - "logprob": -10.5859375, + "logprob": -10.59375, "text": "" }, { @@ -55054,22 +55054,22 @@ }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -11.203125, + "logprob": -11.2109375, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.0859375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1796875, "text": "" }, { @@ -55079,52 +55079,57 @@ }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.6328125, "text": "" }, { "id": 32000, - "logprob": -10.171875, + "logprob": -10.109375, "text": "" }, { "id": 32000, - "logprob": -11.859375, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -13.09375, + "logprob": -13.1328125, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.640625, "text": "" }, { "id": 32000, - "logprob": -16.0, + "logprob": -16.015625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.5078125, "text": "" }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.7265625, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, "text": "" }, { @@ -55134,12 +55139,7 @@ }, { "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -10.65625, + "logprob": -10.6640625, "text": "" }, { @@ -55149,7 +55149,7 @@ }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { @@ -55179,22 +55179,22 @@ }, { "id": 32000, - "logprob": -10.796875, + "logprob": -10.8046875, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.34375, "text": "" }, { "id": 32000, - "logprob": -11.4375, + "logprob": -11.4296875, "text": "" }, { "id": 32000, - "logprob": -14.28125, + "logprob": -14.265625, "text": "" }, { @@ -55204,17 +55204,17 @@ }, { "id": 32000, - "logprob": -10.96875, + "logprob": -10.9765625, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.046875, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.6171875, "text": "" }, { @@ -55224,12 +55224,12 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.4296875, "text": "" }, { "id": 32000, - "logprob": -11.875, + "logprob": -11.890625, "text": "" }, { @@ -55239,27 +55239,27 @@ }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -13.0, + "logprob": -12.984375, "text": "" }, { "id": 32000, - "logprob": -12.15625, + "logprob": -12.09375, "text": "" }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -13.0390625, + "logprob": -13.046875, "text": "" }, { @@ -55269,37 +55269,37 @@ }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.5234375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -11.9296875, + "logprob": -11.9375, "text": "" }, { "id": 32000, - "logprob": -12.1875, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -10.7421875, + "logprob": -10.734375, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -10.8203125, "text": "" }, { "id": 32000, - "logprob": -12.359375, + "logprob": -12.390625, "text": "" }, { @@ -55309,7 +55309,7 @@ }, { "id": 32000, - "logprob": -15.8203125, + "logprob": -15.84375, "text": "" }, { @@ -55319,22 +55319,22 @@ }, { "id": 32000, - "logprob": -12.265625, + "logprob": -12.2578125, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.1796875, "text": "" }, { "id": 32000, - "logprob": -16.796875, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -15.7109375, + "logprob": -15.6953125, "text": "" }, { @@ -55344,27 +55344,27 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -13.1171875, + "logprob": -13.1328125, "text": "" }, { "id": 32000, - "logprob": -14.40625, + "logprob": -14.4140625, "text": "" }, { "id": 32000, - "logprob": -14.4921875, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -10.953125, + "logprob": -10.9453125, "text": "" }, { @@ -55374,12 +55374,12 @@ }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.3828125, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.953125, "text": "" }, { @@ -55394,12 +55394,12 @@ }, { "id": 32000, - "logprob": -12.703125, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -17.265625, + "logprob": -17.34375, "text": "" }, { @@ -55409,32 +55409,32 @@ }, { "id": 32000, - "logprob": -12.4765625, + "logprob": -12.46875, "text": "" }, { "id": 32000, - "logprob": -12.3515625, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -13.5546875, + "logprob": -13.3828125, "text": "" }, { "id": 32000, - "logprob": -14.15625, + "logprob": -14.1953125, "text": "" }, { "id": 32000, - "logprob": -12.9609375, + "logprob": -12.984375, "text": "" }, { @@ -55449,12 +55449,12 @@ }, { "id": 32000, - "logprob": -11.1171875, + "logprob": -11.125, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9375, "text": "" }, { @@ -55464,7 +55464,7 @@ }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { @@ -55474,37 +55474,37 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -11.2421875, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -11.8203125, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -14.2890625, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -11.1015625, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -11.65625, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { @@ -55514,7 +55514,7 @@ }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2578125, "text": "" }, { @@ -55524,12 +55524,12 @@ }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -13.8125, + "logprob": -13.8203125, "text": "" }, { @@ -55544,42 +55544,42 @@ }, { "id": 32000, - "logprob": -10.953125, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -10.8046875, + "logprob": -10.8203125, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.625, "text": "" }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -13.125, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.3125, + "logprob": -14.25, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0703125, "text": "" }, { @@ -55594,32 +55594,32 @@ }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.7265625, "text": "" }, { "id": 32000, - "logprob": -17.0625, + "logprob": -17.109375, "text": "" }, { "id": 32000, - "logprob": -15.5, + "logprob": -15.4375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.6171875, + "logprob": -13.625, "text": "" }, { "id": 32000, - "logprob": -11.5, + "logprob": -11.5078125, "text": "" }, { @@ -55629,82 +55629,12 @@ }, { "id": 32000, - "logprob": -13.421875, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -13.234375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.53125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.125, - "text": "" - }, - { - "id": 32000, - "logprob": -15.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.2578125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6953125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.6015625, - "text": "" - }, - { - "id": 32000, - "logprob": -10.8828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.0703125, + "logprob": -13.21875, "text": "" }, { @@ -55714,17 +55644,87 @@ }, { "id": 32000, - "logprob": -12.6875, + "logprob": -15.09375, "text": "" }, { "id": 32000, - "logprob": -10.75, + "logprob": -15.8515625, "text": "" }, { "id": 32000, - "logprob": -11.40625, + "logprob": -12.8203125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.2578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -10.59375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.53125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.7109375, + "text": "" + }, + { + "id": 32000, + "logprob": -10.7578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4140625, "text": "" }, { @@ -55744,12 +55744,12 @@ }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.140625, "text": "" }, { "id": 32000, - "logprob": -10.53125, + "logprob": -10.5390625, "text": "" }, { @@ -55759,47 +55759,17 @@ }, { "id": 32000, - "logprob": -12.5234375, + "logprob": -12.5390625, "text": "" }, { "id": 32000, - "logprob": -16.984375, + "logprob": -16.953125, "text": "" }, { "id": 32000, - "logprob": -11.90625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.25, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4765625, + "logprob": -11.921875, "text": "" }, { @@ -55809,27 +55779,57 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -13.3984375, + "logprob": -11.2421875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.8515625, "text": "" }, { "id": 32000, - "logprob": -13.453125, + "logprob": -11.8671875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -11.484375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6640625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.7734375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.46875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3046875, "text": "" }, { @@ -55839,7 +55839,7 @@ }, { "id": 32000, - "logprob": -13.3359375, + "logprob": -13.34375, "text": "" }, { @@ -55854,22 +55854,22 @@ }, { "id": 32000, - "logprob": -15.3359375, + "logprob": -15.34375, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -10.765625, + "logprob": -10.7578125, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.53125, "text": "" }, { @@ -55879,17 +55879,17 @@ }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.203125, "text": "" }, { "id": 32000, - "logprob": -17.15625, + "logprob": -17.078125, "text": "" }, { "id": 32000, - "logprob": -15.078125, + "logprob": -15.25, "text": "" }, { @@ -55899,32 +55899,32 @@ }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -16.109375, + "logprob": -16.0625, "text": "" }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.6015625, "text": "" }, { "id": 32000, - "logprob": -14.6796875, + "logprob": -14.5859375, "text": "" }, { @@ -55939,37 +55939,37 @@ }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.3203125, "text": "" }, { "id": 32000, - "logprob": -11.78125, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -13.015625, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -12.8984375, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -12.0, + "logprob": -11.9921875, "text": "" }, { "id": 32000, - "logprob": -13.84375, + "logprob": -13.796875, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.7578125, "text": "" }, { @@ -55979,67 +55979,67 @@ }, { "id": 32000, - "logprob": -14.265625, + "logprob": -14.328125, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -13.8515625, + "logprob": -13.84375, "text": "" }, { "id": 32000, - "logprob": -13.9921875, + "logprob": -14.2109375, "text": "" }, { "id": 32000, - "logprob": -12.375, + "logprob": -12.390625, "text": "" }, { "id": 32000, - "logprob": -13.9296875, + "logprob": -13.953125, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -12.3203125, "text": "" }, { "id": 32000, - "logprob": -14.71875, + "logprob": -14.6796875, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -10.6484375, + "logprob": -10.65625, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -12.0078125, "text": "" }, { "id": 32000, - "logprob": -11.0625, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5234375, "text": "" }, { @@ -56054,12 +56054,12 @@ }, { "id": 32000, - "logprob": -12.6484375, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.109375, + "logprob": -12.125, "text": "" }, { @@ -56074,7 +56074,7 @@ }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.984375, "text": "" }, { @@ -56084,17 +56084,17 @@ }, { "id": 32000, - "logprob": -13.71875, + "logprob": -13.375, "text": "" }, { "id": 32000, - "logprob": -15.4375, + "logprob": -15.4921875, "text": "" }, { "id": 32000, - "logprob": -12.7890625, + "logprob": -12.921875, "text": "" }, { @@ -56104,17 +56104,17 @@ }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.0546875, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.21875, "text": "" }, { @@ -56129,12 +56129,12 @@ }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8984375, "text": "" }, { "id": 32000, - "logprob": -13.8359375, + "logprob": -13.8515625, "text": "" }, { @@ -56144,7 +56144,7 @@ }, { "id": 32000, - "logprob": -17.453125, + "logprob": -17.4375, "text": "" }, { @@ -56159,7 +56159,7 @@ }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { @@ -56174,12 +56174,12 @@ }, { "id": 32000, - "logprob": -14.203125, + "logprob": -14.2421875, "text": "" }, { "id": 32000, - "logprob": -13.6953125, + "logprob": -13.7265625, "text": "" }, { @@ -56189,37 +56189,37 @@ }, { "id": 32000, - "logprob": -10.5859375, + "logprob": -10.59375, "text": "" }, { "id": 32000, - "logprob": -12.875, + "logprob": -12.84375, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9140625, "text": "" }, { "id": 32000, - "logprob": -14.703125, + "logprob": -14.7421875, "text": "" }, { "id": 32000, - "logprob": -11.9921875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -14.734375, + "logprob": -14.71875, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -11.578125, "text": "" }, { @@ -56229,7 +56229,7 @@ }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.796875, "text": "" }, { @@ -56239,12 +56239,12 @@ }, { "id": 32000, - "logprob": -16.390625, + "logprob": -16.46875, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9296875, "text": "" }, { @@ -56254,7 +56254,7 @@ }, { "id": 32000, - "logprob": -12.859375, + "logprob": -12.8515625, "text": "" }, { @@ -56264,22 +56264,22 @@ }, { "id": 32000, - "logprob": -16.515625, + "logprob": -16.53125, "text": "" }, { "id": 32000, - "logprob": -12.1328125, + "logprob": -12.140625, "text": "" }, { "id": 32000, - "logprob": -13.3671875, + "logprob": -13.359375, "text": "" }, { "id": 32000, - "logprob": -14.0, + "logprob": -13.96875, "text": "" }, { @@ -56289,22 +56289,22 @@ }, { "id": 32000, - "logprob": -11.6015625, + "logprob": -11.578125, "text": "" }, { "id": 32000, - "logprob": -12.8515625, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.5078125, "text": "" }, { @@ -56324,77 +56324,77 @@ }, { "id": 32000, - "logprob": -14.0390625, + "logprob": -14.0546875, "text": "" }, { "id": 32000, - "logprob": -12.140625, + "logprob": -12.125, "text": "" }, { "id": 32000, - "logprob": -17.1875, + "logprob": -17.21875, "text": "" }, { "id": 32000, - "logprob": -13.171875, + "logprob": -13.1640625, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -14.6015625, + "logprob": -14.6171875, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9609375, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.640625, "text": "" }, { "id": 32000, - "logprob": -11.71875, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -15.0234375, + "logprob": -15.03125, "text": "" }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -15.921875, + "logprob": -15.890625, "text": "" }, { "id": 32000, - "logprob": -10.859375, + "logprob": -10.8515625, "text": "" }, { "id": 32000, - "logprob": -11.8359375, + "logprob": -11.828125, "text": "" }, { "id": 32000, - "logprob": -11.625, + "logprob": -11.640625, "text": "" }, { @@ -56404,27 +56404,27 @@ }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.7265625, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -14.7421875, + "logprob": -14.7578125, "text": "" }, { "id": 32000, - "logprob": -11.4921875, + "logprob": -11.5, "text": "" }, { "id": 32000, - "logprob": -11.265625, + "logprob": -11.2578125, "text": "" }, { @@ -56444,7 +56444,37 @@ }, { "id": 32000, - "logprob": -12.953125, + "logprob": -12.9453125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.1171875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0390625, + "text": "" + }, + { + "id": 32000, + "logprob": -17.015625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9140625, "text": "" }, { @@ -56452,36 +56482,6 @@ "logprob": -13.0390625, "text": "" }, - { - "id": 32000, - "logprob": -12.0234375, - "text": "" - }, - { - "id": 32000, - "logprob": -17.03125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2421875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, { "id": 32000, "logprob": -11.84375, @@ -56489,12 +56489,12 @@ }, { "id": 32000, - "logprob": -15.25, + "logprob": -15.265625, "text": "" }, { "id": 32000, - "logprob": -16.96875, + "logprob": -16.984375, "text": "" }, { @@ -56504,17 +56504,17 @@ }, { "id": 32000, - "logprob": -11.4609375, + "logprob": -11.453125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.140625, "text": "" }, { @@ -56524,77 +56524,77 @@ }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -17.953125, + "logprob": -17.984375, "text": "" }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -14.6796875, + "logprob": -14.703125, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8046875, "text": "" }, { "id": 32000, - "logprob": -14.390625, + "logprob": -14.3828125, "text": "" }, { "id": 32000, - "logprob": -11.6484375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.890625, "text": "" }, { "id": 32000, - "logprob": -12.84375, + "logprob": -12.859375, "text": "" }, { "id": 32000, - "logprob": -11.4765625, + "logprob": -11.484375, "text": "" }, { "id": 32000, - "logprob": -13.5390625, + "logprob": -13.5625, "text": "" }, { "id": 32000, - "logprob": -16.1875, + "logprob": -16.25, "text": "" }, { "id": 32000, - "logprob": -16.796875, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -11.90625, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -14.359375, + "logprob": -14.375, "text": "" }, { @@ -56604,112 +56604,17 @@ }, { "id": 32000, - "logprob": -13.703125, + "logprob": -13.671875, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -12.9921875, "text": "" }, { "id": 32000, - "logprob": -12.2734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.2265625, - "text": "" - }, - { - "id": 32000, - "logprob": -17.5625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.640625, - "text": "" - }, - { - "id": 32000, - "logprob": -15.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -16.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8203125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.34375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.546875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.59375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7734375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.1328125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.421875, + "logprob": -12.28125, "text": "" }, { @@ -56719,47 +56624,7 @@ }, { "id": 32000, - "logprob": -12.484375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.578125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1015625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8359375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9609375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0703125, + "logprob": -17.5625, "text": "" }, { @@ -56769,7 +56634,142 @@ }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -15.0625, + "text": "" + }, + { + "id": 32000, + "logprob": -16.75, + "text": "" + }, + { + "id": 32000, + "logprob": -11.84375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.328125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3046875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3515625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.546875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.765625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.15625, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4296875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.21875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.4765625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.5390625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9609375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.40625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.6328125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.609375, "text": "" }, { @@ -56779,17 +56779,17 @@ }, { "id": 32000, - "logprob": -15.6171875, + "logprob": -15.640625, "text": "" }, { "id": 32000, - "logprob": -12.1015625, + "logprob": -12.109375, "text": "" }, { "id": 32000, - "logprob": -14.25, + "logprob": -14.265625, "text": "" }, { @@ -56804,17 +56804,17 @@ }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.828125, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0390625, "text": "" }, { @@ -56824,7 +56824,7 @@ }, { "id": 32000, - "logprob": -12.3046875, + "logprob": -12.3203125, "text": "" }, { @@ -56834,37 +56834,37 @@ }, { "id": 32000, - "logprob": -14.2265625, + "logprob": -14.3046875, "text": "" }, { "id": 32000, - "logprob": -14.890625, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8046875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5390625, "text": "" }, { "id": 32000, - "logprob": -19.421875, + "logprob": -19.4375, "text": "" }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -13.7109375, + "logprob": -13.6796875, "text": "" }, { @@ -56879,7 +56879,7 @@ }, { "id": 32000, - "logprob": -12.21875, + "logprob": -12.2109375, "text": "" }, { @@ -56889,27 +56889,27 @@ }, { "id": 32000, - "logprob": -12.3359375, + "logprob": -12.328125, "text": "" }, { "id": 32000, - "logprob": -17.65625, + "logprob": -17.625, "text": "" }, { "id": 32000, - "logprob": -17.703125, + "logprob": -17.75, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5234375, "text": "" }, { "id": 32000, - "logprob": -12.015625, + "logprob": -12.0234375, "text": "" }, { @@ -56919,7 +56919,7 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5859375, "text": "" }, { @@ -56929,37 +56929,37 @@ }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3046875, "text": "" }, { "id": 32000, - "logprob": -13.5, + "logprob": -13.4921875, "text": "" }, { "id": 32000, - "logprob": -10.5625, + "logprob": -10.5703125, "text": "" }, { "id": 32000, - "logprob": -12.28125, + "logprob": -12.2734375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -13.2734375, + "logprob": -13.3046875, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.3359375, "text": "" }, { @@ -56974,17 +56974,17 @@ }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -14.859375, + "logprob": -14.9375, "text": "" }, { "id": 32000, - "logprob": -11.03125, + "logprob": -11.0390625, "text": "" }, { @@ -57009,27 +57009,27 @@ }, { "id": 32000, - "logprob": -11.8828125, + "logprob": -11.90625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.3359375, "text": "" }, { "id": 32000, - "logprob": -11.8984375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -11.5625, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -15.0703125, + "logprob": -15.0546875, "text": "" }, { @@ -57044,17 +57044,17 @@ }, { "id": 32000, - "logprob": -16.859375, + "logprob": -16.84375, "text": "" }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -14.8515625, + "logprob": -14.9296875, "text": "" }, { @@ -57064,12 +57064,12 @@ }, { "id": 32000, - "logprob": -12.7578125, + "logprob": -12.765625, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.984375, "text": "" }, { @@ -57079,12 +57079,12 @@ }, { "id": 32000, - "logprob": -12.6796875, + "logprob": -12.65625, "text": "" }, { "id": 32000, - "logprob": -14.4921875, + "logprob": -14.515625, "text": "" }, { @@ -57094,17 +57094,17 @@ }, { "id": 32000, - "logprob": -12.0078125, + "logprob": -12.015625, "text": "" }, { "id": 32000, - "logprob": -11.53125, + "logprob": -11.5625, "text": "" }, { "id": 32000, - "logprob": -14.859375, + "logprob": -14.8125, "text": "" }, { @@ -57114,12 +57114,12 @@ }, { "id": 32000, - "logprob": -12.4375, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -12.671875, + "logprob": -12.6484375, "text": "" }, { @@ -57129,12 +57129,12 @@ }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1484375, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.8671875, "text": "" }, { @@ -57149,27 +57149,27 @@ }, { "id": 32000, - "logprob": -12.4453125, + "logprob": -12.453125, "text": "" }, { "id": 32000, - "logprob": -13.2578125, + "logprob": -13.21875, "text": "" }, { "id": 32000, - "logprob": -11.1328125, + "logprob": -11.1484375, "text": "" }, { "id": 32000, - "logprob": -16.9375, + "logprob": -16.890625, "text": "" }, { "id": 32000, - "logprob": -12.890625, + "logprob": -12.84375, "text": "" }, { @@ -57179,12 +57179,12 @@ }, { "id": 32000, - "logprob": -14.6484375, + "logprob": -14.625, "text": "" }, { "id": 32000, - "logprob": -10.9296875, + "logprob": -10.9375, "text": "" }, { @@ -57194,7 +57194,7 @@ }, { "id": 32000, - "logprob": -17.15625, + "logprob": -17.6875, "text": "" }, { @@ -57209,17 +57209,17 @@ }, { "id": 32000, - "logprob": -11.28125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -11.2109375, + "logprob": -11.203125, "text": "" }, { @@ -57234,17 +57234,17 @@ }, { "id": 32000, - "logprob": -14.3046875, + "logprob": -14.3125, "text": "" }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -13.1875, + "logprob": -13.203125, "text": "" }, { @@ -57254,22 +57254,22 @@ }, { "id": 32000, - "logprob": -12.8671875, + "logprob": -12.8515625, "text": "" }, { "id": 32000, - "logprob": -11.0703125, + "logprob": -11.078125, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -12.578125, + "logprob": -12.6015625, "text": "" }, { @@ -57279,12 +57279,12 @@ }, { "id": 32000, - "logprob": -12.71875, + "logprob": -12.671875, "text": "" }, { "id": 32000, - "logprob": -13.4453125, + "logprob": -13.46875, "text": "" }, { @@ -57294,22 +57294,22 @@ }, { "id": 32000, - "logprob": -12.53125, + "logprob": -12.5703125, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.03125, "text": "" }, { "id": 32000, - "logprob": -16.53125, + "logprob": -16.46875, "text": "" }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.140625, "text": "" }, { @@ -57319,17 +57319,17 @@ }, { "id": 32000, - "logprob": -14.171875, + "logprob": -14.109375, "text": "" }, { "id": 32000, - "logprob": -11.828125, + "logprob": -11.84375, "text": "" }, { "id": 32000, - "logprob": -14.3359375, + "logprob": -14.34375, "text": "" }, { @@ -57339,47 +57339,47 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.921875, "text": "" }, { "id": 32000, - "logprob": -12.8203125, + "logprob": -12.8359375, "text": "" }, { "id": 32000, - "logprob": -12.890625, + "logprob": -12.8984375, "text": "" }, { "id": 32000, - "logprob": -11.46875, + "logprob": -11.4765625, "text": "" }, { "id": 32000, - "logprob": -11.609375, + "logprob": -11.625, "text": "" }, { "id": 32000, - "logprob": -14.234375, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -14.71875, + "logprob": -14.8046875, "text": "" }, { "id": 32000, - "logprob": -12.6328125, + "logprob": -12.625, "text": "" }, { @@ -57394,12 +57394,12 @@ }, { "id": 32000, - "logprob": -15.0, + "logprob": -14.6484375, "text": "" }, { "id": 32000, - "logprob": -13.53125, + "logprob": -13.546875, "text": "" }, { @@ -57409,7 +57409,7 @@ }, { "id": 32000, - "logprob": -11.3828125, + "logprob": -11.390625, "text": "" }, { @@ -57424,7 +57424,7 @@ }, { "id": 32000, - "logprob": -12.921875, + "logprob": -12.9375, "text": "" }, { @@ -57434,12 +57434,12 @@ }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -13.4453125, + "logprob": -13.46875, "text": "" }, { @@ -57449,17 +57449,17 @@ }, { "id": 32000, - "logprob": -12.4140625, + "logprob": -12.421875, "text": "" }, { "id": 32000, - "logprob": -13.78125, + "logprob": -13.7734375, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1640625, "text": "" }, { @@ -57469,22 +57469,22 @@ }, { "id": 32000, - "logprob": -12.1953125, + "logprob": -12.2109375, "text": "" }, { "id": 32000, - "logprob": -12.9296875, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.7421875, + "logprob": -11.75, "text": "" }, { @@ -57494,7 +57494,7 @@ }, { "id": 32000, - "logprob": -16.40625, + "logprob": -16.390625, "text": "" }, { @@ -57504,17 +57504,17 @@ }, { "id": 32000, - "logprob": -11.96875, + "logprob": -11.984375, "text": "" }, { "id": 32000, - "logprob": -13.921875, + "logprob": -13.8984375, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9921875, "text": "" }, { @@ -57524,27 +57524,27 @@ }, { "id": 32000, - "logprob": -12.0703125, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -16.03125, + "logprob": -16.046875, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6484375, "text": "" }, { "id": 32000, - "logprob": -15.3125, + "logprob": -15.3203125, "text": "" }, { @@ -57554,17 +57554,17 @@ }, { "id": 32000, - "logprob": -11.703125, + "logprob": -11.7109375, "text": "" }, { "id": 32000, - "logprob": -12.390625, + "logprob": -12.3984375, "text": "" }, { "id": 32000, - "logprob": -14.484375, + "logprob": -15.4765625, "text": "" }, { @@ -57574,37 +57574,12 @@ }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5859375, "text": "" }, { "id": 32000, - "logprob": -11.6328125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.1171875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.8046875, - "text": "" - }, - { - "id": 32000, - "logprob": -15.828125, - "text": "" - }, - { - "id": 32000, - "logprob": -17.640625, + "logprob": -11.5859375, "text": "" }, { @@ -57612,6 +57587,31 @@ "logprob": -12.1015625, "text": "" }, + { + "id": 32000, + "logprob": -12.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.796875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.8359375, + "text": "" + }, + { + "id": 32000, + "logprob": -17.65625, + "text": "" + }, + { + "id": 32000, + "logprob": -12.09375, + "text": "" + }, { "id": 32000, "logprob": -11.84375, @@ -57619,17 +57619,17 @@ }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.71875, "text": "" }, { "id": 32000, - "logprob": -11.515625, + "logprob": -11.5546875, "text": "" }, { "id": 32000, - "logprob": -13.578125, + "logprob": -13.59375, "text": "" }, { @@ -57639,17 +57639,17 @@ }, { "id": 32000, - "logprob": -16.703125, + "logprob": -16.6875, "text": "" }, { "id": 32000, - "logprob": -13.0625, + "logprob": -13.03125, "text": "" }, { "id": 32000, - "logprob": -14.90625, + "logprob": -14.859375, "text": "" }, { @@ -57659,42 +57659,42 @@ }, { "id": 32000, - "logprob": -15.21875, + "logprob": -15.203125, "text": "" }, { "id": 32000, - "logprob": -11.84375, + "logprob": -11.8359375, "text": "" }, { "id": 32000, - "logprob": -11.359375, + "logprob": -11.4140625, "text": "" }, { "id": 32000, - "logprob": -11.328125, + "logprob": -11.265625, "text": "" }, { "id": 32000, - "logprob": -17.0, + "logprob": -16.8125, "text": "" }, { "id": 32000, - "logprob": -13.046875, + "logprob": -13.0625, "text": "" }, { "id": 32000, - "logprob": -14.734375, + "logprob": -14.8671875, "text": "" }, { "id": 32000, - "logprob": -12.125, + "logprob": -12.1171875, "text": "" }, { @@ -57709,7 +57709,7 @@ }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.359375, "text": "" }, { @@ -57719,7 +57719,7 @@ }, { "id": 32000, - "logprob": -13.75, + "logprob": -13.765625, "text": "" }, { @@ -57734,22 +57734,22 @@ }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.6015625, "text": "" }, { "id": 32000, - "logprob": -12.046875, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -11.6953125, + "logprob": -11.703125, "text": "" }, { "id": 32000, - "logprob": -11.390625, + "logprob": -11.40625, "text": "" }, { @@ -57759,17 +57759,17 @@ }, { "id": 32000, - "logprob": -11.8125, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.9375, + "logprob": -12.921875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6875, "text": "" }, { @@ -57779,47 +57779,47 @@ }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9609375, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.765625, "text": "" }, { "id": 32000, - "logprob": -12.40625, + "logprob": -12.4140625, "text": "" }, { "id": 32000, - "logprob": -18.71875, + "logprob": -18.703125, "text": "" }, { "id": 32000, - "logprob": -15.59375, + "logprob": -15.6484375, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.0703125, "text": "" }, { "id": 32000, - "logprob": -13.6875, + "logprob": -13.703125, "text": "" }, { "id": 32000, - "logprob": -15.0703125, + "logprob": -15.0859375, "text": "" }, { @@ -57829,12 +57829,12 @@ }, { "id": 32000, - "logprob": -14.53125, + "logprob": -14.5234375, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3671875, "text": "" }, { @@ -57844,7 +57844,7 @@ }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.640625, "text": "" }, { @@ -57854,37 +57854,37 @@ }, { "id": 32000, - "logprob": -13.0703125, + "logprob": -13.1015625, "text": "" }, { "id": 32000, - "logprob": -13.1640625, + "logprob": -13.3515625, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -11.2890625, + "logprob": -11.25, "text": "" }, { "id": 32000, - "logprob": -14.125, + "logprob": -14.15625, "text": "" }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -13.9140625, + "logprob": -13.90625, "text": "" }, { @@ -57899,22 +57899,22 @@ }, { "id": 32000, - "logprob": -10.53125, + "logprob": -10.5625, "text": "" }, { "id": 32000, - "logprob": -12.1640625, + "logprob": -12.171875, "text": "" }, { "id": 32000, - "logprob": -12.234375, + "logprob": -12.2265625, "text": "" }, { "id": 32000, - "logprob": -11.921875, + "logprob": -11.9296875, "text": "" }, { @@ -57924,7 +57924,7 @@ }, { "id": 32000, - "logprob": -12.8828125, + "logprob": -12.875, "text": "" }, { @@ -57939,17 +57939,17 @@ }, { "id": 32000, - "logprob": -11.9375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -11.765625, + "logprob": -11.8203125, "text": "" }, { "id": 32000, - "logprob": -12.078125, + "logprob": -12.109375, "text": "" }, { @@ -57959,22 +57959,22 @@ }, { "id": 32000, - "logprob": -12.515625, + "logprob": -12.5078125, "text": "" }, { "id": 32000, - "logprob": -10.921875, + "logprob": -10.9140625, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.2421875, "text": "" }, { "id": 32000, - "logprob": -12.3125, + "logprob": -12.3203125, "text": "" }, { @@ -57984,87 +57984,87 @@ }, { "id": 32000, - "logprob": -16.6875, + "logprob": -16.671875, "text": "" }, { "id": 32000, - "logprob": -11.9765625, + "logprob": -11.953125, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.8203125, "text": "" }, { "id": 32000, - "logprob": -15.0234375, + "logprob": -14.9453125, "text": "" }, { "id": 32000, - "logprob": -16.578125, + "logprob": -16.5625, "text": "" }, { "id": 32000, - "logprob": -15.1875, + "logprob": -15.203125, "text": "" }, { "id": 32000, - "logprob": -14.7109375, + "logprob": -14.6953125, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.0234375, "text": "" }, { "id": 32000, - "logprob": -12.96875, + "logprob": -12.9453125, "text": "" }, { "id": 32000, - "logprob": -12.2109375, + "logprob": -12.1796875, "text": "" }, { "id": 32000, - "logprob": -12.6875, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -13.3671875, "text": "" }, { "id": 32000, - "logprob": -13.8046875, + "logprob": -13.796875, "text": "" }, { "id": 32000, - "logprob": -12.4921875, + "logprob": -12.4765625, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.1640625, "text": "" }, { "id": 32000, - "logprob": -15.3125, + "logprob": -15.484375, "text": "" }, { "id": 32000, - "logprob": -14.6171875, + "logprob": -14.6328125, "text": "" }, { @@ -58074,17 +58074,17 @@ }, { "id": 32000, - "logprob": -13.7265625, + "logprob": -13.75, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -13.296875, + "logprob": -13.3125, "text": "" }, { @@ -58094,62 +58094,62 @@ }, { "id": 32000, - "logprob": -13.4765625, + "logprob": -13.484375, "text": "" }, { "id": 32000, - "logprob": -13.2890625, + "logprob": -13.2734375, "text": "" }, { "id": 32000, - "logprob": -12.4296875, + "logprob": -12.4453125, "text": "" }, { "id": 32000, - "logprob": -11.3984375, + "logprob": -11.390625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -16.5, + "logprob": -16.53125, "text": "" }, { "id": 32000, - "logprob": -14.1171875, + "logprob": -14.1484375, "text": "" }, { "id": 32000, - "logprob": -13.2109375, + "logprob": -13.2265625, "text": "" }, { "id": 32000, - "logprob": -11.796875, + "logprob": -11.8125, "text": "" }, { "id": 32000, - "logprob": -15.078125, + "logprob": -15.03125, "text": "" }, { "id": 32000, - "logprob": -15.4609375, + "logprob": -15.484375, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6015625, "text": "" }, { @@ -58164,7 +58164,7 @@ }, { "id": 32000, - "logprob": -11.15625, + "logprob": -11.1640625, "text": "" }, { @@ -58174,82 +58174,82 @@ }, { "id": 32000, - "logprob": -12.6015625, + "logprob": -12.5625, "text": "" }, { "id": 32000, - "logprob": -12.765625, + "logprob": -12.7421875, "text": "" }, { "id": 32000, - "logprob": -18.015625, + "logprob": -18.0, "text": "" }, { "id": 32000, - "logprob": -11.59375, + "logprob": -11.5859375, "text": "" }, { "id": 32000, - "logprob": -11.6171875, + "logprob": -11.625, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.921875, "text": "" }, { "id": 32000, - "logprob": -11.671875, + "logprob": -11.6796875, "text": "" }, { "id": 32000, - "logprob": -11.5703125, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -15.1015625, + "logprob": -15.3046875, "text": "" }, { "id": 32000, - "logprob": -12.171875, + "logprob": -12.1875, "text": "" }, { "id": 32000, - "logprob": -12.75, + "logprob": -12.7578125, "text": "" }, { "id": 32000, - "logprob": -15.1640625, + "logprob": -15.125, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.9140625, "text": "" }, { "id": 32000, - "logprob": -15.4453125, + "logprob": -15.546875, "text": "" }, { "id": 32000, - "logprob": -16.03125, + "logprob": -16.015625, "text": "" }, { "id": 32000, - "logprob": -14.125, + "logprob": -14.109375, "text": "" }, { @@ -58259,12 +58259,12 @@ }, { "id": 32000, - "logprob": -13.1484375, + "logprob": -13.15625, "text": "" }, { "id": 32000, - "logprob": -12.6953125, + "logprob": -12.734375, "text": "" }, { @@ -58284,7 +58284,7 @@ }, { "id": 32000, - "logprob": -11.7265625, + "logprob": -11.7421875, "text": "" }, { @@ -58294,12 +58294,12 @@ }, { "id": 32000, - "logprob": -15.3046875, + "logprob": -15.296875, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6015625, "text": "" }, { @@ -58309,12 +58309,12 @@ }, { "id": 32000, - "logprob": -13.4921875, + "logprob": -13.5, "text": "" }, { "id": 32000, - "logprob": -10.8984375, + "logprob": -10.890625, "text": "" }, { @@ -58324,22 +58324,22 @@ }, { "id": 32000, - "logprob": -12.1484375, + "logprob": -12.1328125, "text": "" }, { "id": 32000, - "logprob": -13.1015625, + "logprob": -12.90625, "text": "" }, { "id": 32000, - "logprob": -12.6171875, + "logprob": -12.578125, "text": "" }, { "id": 32000, - "logprob": -13.359375, + "logprob": -13.3359375, "text": "" }, { @@ -58354,127 +58354,17 @@ }, { "id": 32000, - "logprob": -12.65625, + "logprob": -12.6875, "text": "" }, { "id": 32000, - "logprob": -12.8125, + "logprob": -12.796875, "text": "" }, { "id": 32000, - "logprob": -13.46875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.5859375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.0859375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.4375, - "text": "" - }, - { - "id": 32000, - "logprob": -19.6875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.5234375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.6171875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.359375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8671875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.046875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.75, - "text": "" - }, - { - "id": 32000, - "logprob": -12.296875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.609375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.9453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.7109375, - "text": "" - }, - { - "id": 32000, - "logprob": -16.1875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.671875, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5, - "text": "" - }, - { - "id": 32000, - "logprob": -15.265625, + "logprob": -13.4296875, "text": "" }, { @@ -58484,32 +58374,142 @@ }, { "id": 32000, - "logprob": -14.59375, + "logprob": -11.0859375, "text": "" }, { "id": 32000, - "logprob": -15.34375, + "logprob": -12.4921875, "text": "" }, { "id": 32000, - "logprob": -14.0703125, + "logprob": -13.4375, "text": "" }, { "id": 32000, - "logprob": -12.984375, + "logprob": -19.65625, "text": "" }, { "id": 32000, - "logprob": -12.0390625, + "logprob": -12.5, "text": "" }, { "id": 32000, - "logprob": -12.328125, + "logprob": -11.609375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.859375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -12.109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -13.71875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.953125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.8984375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.6875, + "text": "" + }, + { + "id": 32000, + "logprob": -16.234375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.703125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.4921875, + "text": "" + }, + { + "id": 32000, + "logprob": -15.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.5546875, + "text": "" + }, + { + "id": 32000, + "logprob": -14.5703125, + "text": "" + }, + { + "id": 32000, + "logprob": -15.28125, + "text": "" + }, + { + "id": 32000, + "logprob": -14.046875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.96875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0234375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.3828125, "text": "" }, { @@ -58519,17 +58519,17 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.2265625, "text": "" }, { "id": 32000, - "logprob": -12.0625, + "logprob": -12.078125, "text": "" }, { "id": 32000, - "logprob": -12.609375, + "logprob": -12.6171875, "text": "" }, { @@ -58544,17 +58544,17 @@ }, { "id": 32000, - "logprob": -11.734375, + "logprob": -11.7265625, "text": "" }, { "id": 32000, - "logprob": -14.96875, + "logprob": -15.0703125, "text": "" }, { "id": 32000, - "logprob": -14.34375, + "logprob": -14.375, "text": "" }, { @@ -58564,7 +58564,7 @@ }, { "id": 32000, - "logprob": -13.203125, + "logprob": -13.1796875, "text": "" }, { @@ -58574,17 +58574,17 @@ }, { "id": 32000, - "logprob": -15.828125, + "logprob": -15.796875, "text": "" }, { "id": 32000, - "logprob": -12.7421875, + "logprob": -12.75, "text": "" }, { "id": 32000, - "logprob": -13.640625, + "logprob": -14.0390625, "text": "" }, { @@ -58594,12 +58594,12 @@ }, { "id": 32000, - "logprob": -14.2578125, + "logprob": -14.2890625, "text": "" }, { "id": 32000, - "logprob": -11.6640625, + "logprob": -11.671875, "text": "" }, { @@ -58609,22 +58609,22 @@ }, { "id": 32000, - "logprob": -16.34375, + "logprob": -16.375, "text": "" }, { "id": 32000, - "logprob": -13.8671875, + "logprob": -13.8828125, "text": "" }, { "id": 32000, - "logprob": -14.6484375, + "logprob": -14.6171875, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.625, "text": "" }, { @@ -58644,72 +58644,72 @@ }, { "id": 32000, - "logprob": -11.6796875, + "logprob": -11.6875, "text": "" }, { "id": 32000, - "logprob": -14.5703125, + "logprob": -14.5625, "text": "" }, { "id": 32000, - "logprob": -11.3515625, + "logprob": -11.34375, "text": "" }, { "id": 32000, - "logprob": -11.984375, + "logprob": -11.9453125, "text": "" }, { "id": 32000, - "logprob": -10.9765625, + "logprob": -10.984375, "text": "" }, { "id": 32000, - "logprob": -13.21875, + "logprob": -13.2109375, "text": "" }, { "id": 32000, - "logprob": -12.25, + "logprob": -12.265625, "text": "" }, { "id": 32000, - "logprob": -12.2265625, + "logprob": -12.234375, "text": "" }, { "id": 32000, - "logprob": -11.953125, + "logprob": -11.9765625, "text": "" }, { "id": 32000, - "logprob": -12.90625, + "logprob": -12.9296875, "text": "" }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0625, "text": "" }, { "id": 32000, - "logprob": -11.421875, + "logprob": -11.4609375, "text": "" }, { "id": 32000, - "logprob": -14.9375, + "logprob": -14.953125, "text": "" }, { "id": 32000, - "logprob": -13.65625, + "logprob": -13.6484375, "text": "" }, { @@ -58719,17 +58719,17 @@ }, { "id": 32000, - "logprob": -12.9140625, + "logprob": -12.9375, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.7734375, "text": "" }, { "id": 32000, - "logprob": -12.5625, + "logprob": -12.5703125, "text": "" }, { @@ -58744,17 +58744,17 @@ }, { "id": 32000, - "logprob": -15.28125, + "logprob": -15.1953125, "text": "" }, { "id": 32000, - "logprob": -11.75, + "logprob": -11.7421875, "text": "" }, { "id": 32000, - "logprob": -12.0859375, + "logprob": -12.09375, "text": "" }, { @@ -58764,47 +58764,47 @@ }, { "id": 32000, - "logprob": -15.5625, + "logprob": -15.59375, "text": "" }, { "id": 32000, - "logprob": -11.6875, + "logprob": -11.671875, "text": "" }, { "id": 32000, - "logprob": -12.34375, + "logprob": -12.3515625, "text": "" }, { "id": 32000, - "logprob": -14.8828125, + "logprob": -14.90625, "text": "" }, { "id": 32000, - "logprob": -12.625, + "logprob": -12.609375, "text": "" }, { "id": 32000, - "logprob": -14.6640625, + "logprob": -14.671875, "text": "" }, { "id": 32000, - "logprob": -15.3515625, + "logprob": -15.34375, "text": "" }, { "id": 32000, - "logprob": -15.203125, + "logprob": -15.2265625, "text": "" }, { "id": 32000, - "logprob": -11.7734375, + "logprob": -11.78125, "text": "" }, { @@ -58814,122 +58814,17 @@ }, { "id": 32000, - "logprob": -12.0546875, + "logprob": -12.0390625, "text": "" }, { "id": 32000, - "logprob": -11.7890625, + "logprob": -11.796875, "text": "" }, { "id": 32000, - "logprob": -12.0078125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8515625, - "text": "" - }, - { - "id": 32000, - "logprob": -16.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -12.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.453125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3828125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.0390625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.890625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.4453125, - "text": "" - }, - { - "id": 32000, - "logprob": -12.7265625, - "text": "" - }, - { - "id": 32000, - "logprob": -11.84375, - "text": "" - }, - { - "id": 32000, - "logprob": -11.28125, - "text": "" - }, - { - "id": 32000, - "logprob": -14.734375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.3515625, - "text": "" - }, - { - "id": 32000, - "logprob": -12.015625, - "text": "" - }, - { - "id": 32000, - "logprob": -13.5703125, - "text": "" - }, - { - "id": 32000, - "logprob": -13.796875, - "text": "" - }, - { - "id": 32000, - "logprob": -11.3203125, - "text": "" - }, - { - "id": 32000, - "logprob": -11.984375, - "text": "" - }, - { - "id": 32000, - "logprob": -13.3984375, - "text": "" - }, - { - "id": 32000, - "logprob": -12.8984375, - "text": "" - }, - { - "id": 32000, - "logprob": -14.34375, + "logprob": -12.03125, "text": "" }, { @@ -58939,27 +58834,132 @@ }, { "id": 32000, - "logprob": -13.8203125, + "logprob": -16.515625, "text": "" }, { "id": 32000, - "logprob": -13.34375, + "logprob": -12.7734375, "text": "" }, { "id": 32000, - "logprob": -13.1328125, + "logprob": -12.4609375, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -13.3984375, "text": "" }, { "id": 32000, - "logprob": -15.1484375, + "logprob": -13.171875, + "text": "" + }, + { + "id": 32000, + "logprob": -11.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.4375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.828125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.2734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.734375, + "text": "" + }, + { + "id": 32000, + "logprob": -14.3984375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.0078125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.578125, + "text": "" + }, + { + "id": 32000, + "logprob": -11.3359375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.984375, + "text": "" + }, + { + "id": 32000, + "logprob": -13.421875, + "text": "" + }, + { + "id": 32000, + "logprob": -12.9140625, + "text": "" + }, + { + "id": 32000, + "logprob": -14.34375, + "text": "" + }, + { + "id": 32000, + "logprob": -12.8828125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.890625, + "text": "" + }, + { + "id": 32000, + "logprob": -13.3203125, + "text": "" + }, + { + "id": 32000, + "logprob": -13.2109375, + "text": "" + }, + { + "id": 32000, + "logprob": -11.9765625, + "text": "" + }, + { + "id": 32000, + "logprob": -15.140625, "text": "" }, { @@ -58974,12 +58974,12 @@ }, { "id": 32000, - "logprob": -14.421875, + "logprob": -14.40625, "text": "" }, { "id": 32000, - "logprob": -12.03125, + "logprob": -12.046875, "text": "" }, { @@ -58989,52 +58989,52 @@ }, { "id": 32000, - "logprob": -13.546875, + "logprob": -13.5078125, "text": "" }, { "id": 32000, - "logprob": -11.7109375, + "logprob": -11.734375, "text": "" }, { "id": 32000, - "logprob": -13.3828125, + "logprob": -13.390625, "text": "" }, { "id": 32000, - "logprob": -17.28125, + "logprob": -17.3125, "text": "" }, { "id": 32000, - "logprob": -12.59375, + "logprob": -12.5234375, "text": "" }, { "id": 32000, - "logprob": -17.59375, + "logprob": -17.625, "text": "" }, { "id": 32000, - "logprob": -11.9453125, + "logprob": -11.9296875, "text": "" }, { "id": 32000, - "logprob": -12.7109375, + "logprob": -12.71875, "text": "" }, { "id": 32000, - "logprob": -15.9375, + "logprob": -15.9140625, "text": "" }, { "id": 32000, - "logprob": -16.625, + "logprob": -16.65625, "text": "" }, { @@ -59044,27 +59044,27 @@ }, { "id": 2418, - "logprob": -19.078125, + "logprob": -19.0625, "text": "Can" }, { "id": 368, - "logprob": -0.19665527, + "logprob": -0.19726562, "text": "you" }, { "id": 1912, - "logprob": -1.5009766, + "logprob": -1.4990234, "text": "tell" }, { "id": 528, - "logprob": -0.31054688, + "logprob": -0.31152344, "text": "me" }, { "id": 264, - "logprob": -2.6269531, + "logprob": -2.6367188, "text": "a" }, { @@ -59074,12 +59074,12 @@ }, { "id": 2485, - "logprob": -0.99365234, + "logprob": -0.9941406, "text": "short" }, { "id": 2838, - "logprob": -0.45996094, + "logprob": -0.46118164, "text": "story" }, { @@ -59089,22 +59089,22 @@ }, { "id": 356, - "logprob": -0.029006958, + "logprob": -0.029129028, "text": "on" }, { "id": 272, - "logprob": -0.9897461, + "logprob": -0.9902344, "text": "the" }, { "id": 3469, - "logprob": -0.29125977, + "logprob": -0.29052734, "text": "image" }, { "id": 28804, - "logprob": -0.43017578, + "logprob": -0.43188477, "text": "?" } ], @@ -59112,13 +59112,13 @@ "tokens": [ { "id": 13, - "logprob": -0.007446289, + "logprob": -0.0076828003, "special": false, "text": "\n" }, { "id": 13, - "logprob": -0.20129395, + "logprob": -0.19958496, "special": false, "text": "\n" }, @@ -59130,43 +59130,43 @@ }, { "id": 3714, - "logprob": -0.20825195, + "logprob": -0.20861816, "special": false, "text": " upon" }, { "id": 264, - "logprob": -0.0017786026, + "logprob": -0.0017719269, "special": false, "text": " a" }, { "id": 727, - "logprob": -0.011955261, + "logprob": -0.011749268, "special": false, "text": " time" }, { "id": 28725, - "logprob": -0.17297363, + "logprob": -0.17529297, "special": false, "text": "," }, { "id": 736, - "logprob": -0.91015625, + "logprob": -0.9086914, "special": false, "text": " there" }, { "id": 403, - "logprob": -0.05758667, + "logprob": -0.056732178, "special": false, "text": " was" }, { "id": 264, - "logprob": -0.009544373, + "logprob": -0.00970459, "special": false, "text": " a" } diff --git a/integration-tests/models/test_idefics2.py b/integration-tests/models/test_idefics2.py new file mode 100644 index 00000000..d34cce34 --- /dev/null +++ b/integration-tests/models/test_idefics2.py @@ -0,0 +1,81 @@ +import pytest +import base64 + + +# TODO fix the server parsser to count inline image tokens correctly +def get_chicken(): + with open("integration-tests/images/chicken_on_money.png", "rb") as image_file: + encoded_string = base64.b64encode(image_file.read()) + return f"data:image/png;base64,{encoded_string.decode('utf-8')}" + + +@pytest.fixture(scope="module") +def flash_idefics2_next_handle(launcher): + with launcher( + "HuggingFaceM4/idefics2-8b", + ) as handle: + yield handle + + +@pytest.fixture(scope="module") +async def flash_idefics2_next(flash_idefics2_next_handle): + await flash_idefics2_next_handle.health(300) + return flash_idefics2_next_handle.client + + +@pytest.mark.asyncio +@pytest.mark.private +async def test_flash_idefics2_next_simple(flash_idefics2_next, response_snapshot): + chicken = get_chicken() + response = await flash_idefics2_next.generate( + f"User:![]({chicken})Write me a short story \nAssistant:", + max_new_tokens=10, + ) + assert ( + response.generated_text == " A chicken is sitting on a pile of money." + ), f"{repr(response.generated_text)}" + assert response.details.generated_tokens == 10 + assert response == response_snapshot + + +@pytest.mark.asyncio +@pytest.mark.private +async def test_flash_idefics2_next_all_params(flash_idefics2_next, response_snapshot): + response = await flash_idefics2_next.generate( + "Test request", + max_new_tokens=10, + repetition_penalty=1.2, + return_full_text=True, + stop_sequences=["test"], + temperature=0.5, + top_p=0.9, + top_k=10, + truncate=5, + typical_p=0.9, + watermark=True, + decoder_input_details=True, + seed=0, + ) + + assert response.details.generated_tokens == 10 + assert response == response_snapshot + + +@pytest.mark.asyncio +@pytest.mark.private +async def test_flash_idefics2_next_load( + flash_idefics2_next, generate_load, response_snapshot +): + chicken = get_chicken() + responses = await generate_load( + flash_idefics2_next, + f"User:![]({chicken})Write me a short story \nAssistant:", + max_new_tokens=10, + n=4, + ) + generated_texts = [r.generated_text for r in responses] + assert generated_texts[0] == " A chicken is sitting on a pile of money." + assert len(generated_texts) == 4 + assert all([r.generated_text == generated_texts[0] for r in responses]) + + assert responses == response_snapshot diff --git a/router/client/src/client.rs b/router/client/src/client.rs index ae926139..e8035106 100644 --- a/router/client/src/client.rs +++ b/router/client/src/client.rs @@ -114,8 +114,12 @@ impl Client { let truncate = min(max_input_length, max_prefill_tokens - n_tokens); let mut inputs = String::new(); - inputs.push_str("![](data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV/TSotUROxQxCFDdbKLijjWKhShQqgVWnUwufQLmrQkKS6OgmvBwY/FqoOLs64OroIg+AHi7OCk6CIl/i8ptIjx4Lgf7+497t4BQqvKNDOQADTdMjKppJjLr4rBVwQQwhAERGVm1uckKQ3P8XUPH1/v4jzL+9yfY0AtmAzwicQJVjcs4g3imU2rznmfOMLKskp8Tjxh0AWJH7muuPzGueSwwDMjRjYzTxwhFks9rPQwKxsa8TRxTNV0yhdyLquctzhr1Qbr3JO/MFzQV5a5TnMUKSxiCRJEKGiggiosxGnVSTGRof2kh3/E8UvkUshVASPHAmrQIDt+8D/43a1ZnJp0k8JJoO/Ftj/GgOAu0G7a9vexbbdPAP8zcKV3/bUWMPtJerOrxY6AwW3g4rqrKXvA5Q4QfarLhuxIfppCsQi8n9E35YHhW6B/ze2ts4/TByBLXaVvgINDYLxE2ese7w719vbvmU5/PycecohsjayNAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH6AQIEQMnlTSSjwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAASSURBVDjLY2AYBaNgFIyCoQsABMQAAeRw1DoAAAAASUVORK5CYII="); inputs.push_str(&"_test ".to_string().repeat(max_input_length as usize)); + if n_tokens == 0 { + // 1 request is enough to test vision heads. + // Sending images on other queries messes up easily with truncation. + inputs.push_str("![](data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV/TSotUROxQxCFDdbKLijjWKhShQqgVWnUwufQLmrQkKS6OgmvBwY/FqoOLs64OroIg+AHi7OCk6CIl/i8ptIjx4Lgf7+497t4BQqvKNDOQADTdMjKppJjLr4rBVwQQwhAERGVm1uckKQ3P8XUPH1/v4jzL+9yfY0AtmAzwicQJVjcs4g3imU2rznmfOMLKskp8Tjxh0AWJH7muuPzGueSwwDMjRjYzTxwhFks9rPQwKxsa8TRxTNV0yhdyLquctzhr1Qbr3JO/MFzQV5a5TnMUKSxiCRJEKGiggiosxGnVSTGRof2kh3/E8UvkUshVASPHAmrQIDt+8D/43a1ZnJp0k8JJoO/Ftj/GgOAu0G7a9vexbbdPAP8zcKV3/bUWMPtJerOrxY6AwW3g4rqrKXvA5Q4QfarLhuxIfppCsQi8n9E35YHhW6B/ze2ts4/TByBLXaVvgINDYLxE2ese7w719vbvmU5/PycecohsjayNAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH6AQIEQMnlTSSjwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAASSURBVDjLY2AYBaNgFIyCoQsABMQAAeRw1DoAAAAASUVORK5CYII=)"); + } requests.push(Request { id: 0, diff --git a/router/src/config.rs b/router/src/config.rs index 9b5a2404..88cde69a 100644 --- a/router/src/config.rs +++ b/router/src/config.rs @@ -57,6 +57,31 @@ fn select_best_resolution( best_fit.unwrap_or((original_height, original_width)) } +fn get_unpadded_features( + height: usize, + width: usize, + npatches: usize, + num_patch_height: usize, + num_patch_width: usize, +) -> (usize, usize) { + let current_height = npatches * num_patch_height; + let current_width = npatches * num_patch_width; + + let aspect_ratio: f64 = width as f64 / height as f64; + let current_aspect_ratio: f64 = current_width as f64 / current_height as f64; + let (current_height, current_width) = if aspect_ratio > current_aspect_ratio { + let new_height = (height * current_width) / width; + (new_height, current_width) + } else { + let new_width = (width * current_height) / height; + (current_height, new_width) + }; + + let unpadded_features = current_height * current_width; + let newline_features = current_height; + (unpadded_features, newline_features) +} + impl LlavaNext { pub fn get_number_of_features(&self, height: usize, width: usize) -> usize { let image_size = self.vision_config.image_size; @@ -65,11 +90,9 @@ impl LlavaNext { let npatches = image_size / patch_size; let (num_patch_height, num_patch_width) = get_anyres_image_grid_shape(height, width, &self.image_grid_pinpoints, image_size); - // Ceil - let height_of_patch = (height * npatches + width - 1) / width; - let unpadded_features = npatches * height_of_patch * num_patch_height * num_patch_width; - // They are only added after width - let newline_features = height_of_patch * num_patch_width; + + let (unpadded_features, newline_features) = + get_unpadded_features(height, width, npatches, num_patch_height, num_patch_width); // The base patch covers the entire image let base_features = npatches.pow(2); unpadded_features + newline_features + base_features @@ -84,6 +107,17 @@ pub struct ClipVisionModel { patch_size: usize, } +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(tag = "model_type")] +#[serde(rename_all = "snake_case")] +pub struct Idefics2 {} + +impl Idefics2 { + pub fn get_number_of_features(&self, _height: usize, _width: usize) -> usize { + 320 + } +} + #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(tag = "model_type")] #[serde(rename_all = "snake_case")] @@ -92,6 +126,7 @@ pub enum Config { ClipVisionModel(ClipVisionModel), Mistral, Idefics, + Idefics2(Idefics2), Ssm, GptBigcode, Santacoder, @@ -146,13 +181,17 @@ mod test { ], }; + let slots = config.get_number_of_features(20, 20); + assert_eq!(slots, 1176); let slots = config.get_number_of_features(640, 640); assert_eq!(slots, 2928); let slots = config.get_number_of_features(480, 640); assert_eq!(slots, 2340); let slots = config.get_number_of_features(899, 1024); - assert_eq!(slots, 2732); + assert_eq!(slots, 2634); let slots = config.get_number_of_features(1024, 899); - assert_eq!(slots, 3320); + assert_eq!(slots, 2640); + let slots = config.get_number_of_features(1067, 1600); + assert_eq!(slots, 2144); } } diff --git a/router/src/validation.rs b/router/src/validation.rs index 2029c7e0..be4bef00 100644 --- a/router/src/validation.rs +++ b/router/src/validation.rs @@ -540,7 +540,57 @@ fn prepare_input( inputs = modified_inputs; tokenizer_query } - Some(Config::Idefics) => RE.replace_all(&inputs, "").into(), + Some(Config::Idefics2(config)) => { + let mut modified_inputs = String::with_capacity(inputs.len()); + let mut tokenizer_query = String::with_capacity(inputs.len()); + let mut start = 0; + for chunk in RE.find_iter(&inputs) { + let chunk_start = chunk.start(); + let chunk_end = chunk.end(); + if chunk_start != start { + modified_inputs.push_str(&inputs[start..chunk_start]); + tokenizer_query.push_str(&inputs[start..chunk_start]); + } + let (image_uri, height, width) = fetch_image(&inputs[chunk_start..chunk_end])?; + let slots = config.get_number_of_features(height, width); + tokenizer_query.push_str(""); + tokenizer_query.push_str(&"".repeat(slots)); + tokenizer_query.push_str(""); + + modified_inputs.push_str(&image_uri); + start = chunk_end; + } + if start != inputs.len() - 1 { + modified_inputs.push_str(&inputs[start..]); + tokenizer_query.push_str(&inputs[start..]); + } + inputs = modified_inputs; + tokenizer_query + } + Some(Config::Idefics) => { + let mut modified_inputs = String::with_capacity(inputs.len()); + let mut tokenizer_query = String::with_capacity(inputs.len()); + let mut start = 0; + for chunk in RE.find_iter(&inputs) { + let chunk_start = chunk.start(); + let chunk_end = chunk.end(); + if chunk_start != start { + modified_inputs.push_str(&inputs[start..chunk_start]); + tokenizer_query.push_str(&inputs[start..chunk_start]); + } + let (image_uri, _height, _width) = fetch_image(&inputs[chunk_start..chunk_end])?; + let slots = 1; + tokenizer_query.push_str(&"".repeat(slots)); + modified_inputs.push_str(&image_uri); + start = chunk_end; + } + if start != inputs.len() - 1 { + modified_inputs.push_str(&inputs[start..]); + tokenizer_query.push_str(&inputs[start..]); + } + inputs = modified_inputs; + tokenizer_query + } _ => inputs.clone(), }; diff --git a/server/text_generation_server/models/__init__.py b/server/text_generation_server/models/__init__.py index e4e8717d..b52765d7 100644 --- a/server/text_generation_server/models/__init__.py +++ b/server/text_generation_server/models/__init__.py @@ -68,6 +68,7 @@ try: ) from text_generation_server.models.idefics import IDEFICSSharded from text_generation_server.models.llava_next import LlavaNext + from text_generation_server.models.idefics2 import Idefics2 from text_generation_server.models.flash_mistral import FlashMistral from text_generation_server.models.flash_mixtral import FlashMixtral from text_generation_server.models.flash_phi import FlashPhi @@ -579,6 +580,18 @@ def get_model( ) else: raise NotImplementedError(FLASH_ATT_ERROR_MESSAGE.format("Idefics")) + if model_type == "idefics2": + if FLASH_ATTENTION: + return Idefics2( + model_id, + revision, + quantize=quantize, + use_medusa=use_medusa, + dtype=dtype, + trust_remote_code=trust_remote_code, + ) + else: + raise NotImplementedError(FLASH_ATT_ERROR_MESSAGE.format("Idefics")) if model_type == "llava_next": if FLASH_ATTENTION: diff --git a/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py b/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py index ffaa0c32..c2445cda 100644 --- a/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py @@ -409,23 +409,29 @@ class MistralModel(torch.nn.Module): class FlashMistralForCausalLM(torch.nn.Module): - def __init__(self, prefix, config, weights): + def __init__(self, prefix, config, weights, name=None): + if name is None: + name = "model" super().__init__() - self.embed_tokens = TensorParallelEmbedding( prefix=( - "model.embed_tokens" if not prefix else f"{prefix}.model.embed_tokens" + f"{name}.embed_tokens" + if not prefix + else f"{prefix}.{name}.embed_tokens" ), weights=weights, ) self.model = MistralModel( - prefix="model" if not prefix else f"{prefix}.model", + prefix=name if not prefix else f"{prefix}.{name}", config=config, weights=weights, ) self.lm_head = SpeculativeHead.load( config, - prefix="lm_head" if not prefix else f"{prefix}.lm_head", + # TODO dirty hack for idefics2. + prefix=( + "lm_head" if not prefix or name != "model" else f"{prefix}.lm_head" + ), weights=weights, ) self.max_past = config.sliding_window diff --git a/server/text_generation_server/models/custom_modeling/idefics2.py b/server/text_generation_server/models/custom_modeling/idefics2.py new file mode 100644 index 00000000..cb2ee7db --- /dev/null +++ b/server/text_generation_server/models/custom_modeling/idefics2.py @@ -0,0 +1,829 @@ +# coding=utf-8 +# Copyright 2024 the HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" PyTorch Idefics2 model.""" + +from typing import List, Optional, Tuple, Union + +import torch +import torch.utils.checkpoint +from torch import nn +import math + +from transformers.activations import ACT2FN +from transformers.image_processing_utils import select_best_resolution +from text_generation_server.models.custom_modeling.vlm import ( + load_text_model, + load_vision_model, +) +from transformers.modeling_attn_mask_utils import _prepare_4d_attention_mask + +from text_generation_server.utils.layers import ( + TensorParallelColumnLinear, + TensorParallelEmbedding, + TensorParallelRowLinear, +) + + +def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor: + """ + This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch, + num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim) + """ + batch, num_key_value_heads, slen, head_dim = hidden_states.shape + if n_rep == 1: + return hidden_states + hidden_states = hidden_states[:, :, None, :, :].expand( + batch, num_key_value_heads, n_rep, slen, head_dim + ) + return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim) + + +class Idefics2VisionEmbeddings(nn.Module): + """ + This is a modified version of `siglip.modelign_siglip.SiglipVisionEmbeddings` to enable images of variable + resolution. + + The modifications are adapted from [Patch n' Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution](https://arxiv.org/abs/2307.06304) + which allows treating images in their native aspect ratio and without the need to resize them to the same + fixed size. In particular, we start from the original pre-trained SigLIP model + (which uses images of fixed-size square images) and adapt it by training on images of variable resolutions. + """ + + def __init__(self, prefix, config, weights): + super().__init__() + self.embed_dim = config.hidden_size + self.image_size = config.image_size + self.patch_size = config.patch_size + + self.patch_embedding = nn.Conv2d( + in_channels=config.num_channels, + out_channels=self.embed_dim, + kernel_size=self.patch_size, + stride=self.patch_size, + padding="valid", + ) + self.patch_embedding.weight = nn.Parameter( + weights.get_tensor(f"{prefix}.patch_embedding.weight"), requires_grad=False + ) + self.patch_embedding.bias = nn.Parameter( + weights.get_tensor(f"{prefix}.patch_embedding.bias"), requires_grad=False + ) + + self.num_patches_per_side = self.image_size // self.patch_size + self.num_patches = self.num_patches_per_side**2 + self.num_positions = self.num_patches + self.position_embedding = TensorParallelEmbedding( + prefix=f"{prefix}.position_embedding", weights=weights + ) + + def forward( + self, pixel_values: torch.FloatTensor, patch_attention_mask: torch.BoolTensor + ) -> torch.Tensor: + batch_size, _, max_im_h, max_im_w = pixel_values.shape + + patch_embeds = self.patch_embedding(pixel_values) + embeddings = patch_embeds.flatten(2).transpose(1, 2) + + max_nb_patches_h, max_nb_patches_w = ( + max_im_h // self.patch_size, + max_im_w // self.patch_size, + ) + boundaries = torch.arange( + 1 / self.num_patches_per_side, 1.0, 1 / self.num_patches_per_side + ) + position_ids = torch.full( + size=(batch_size, max_nb_patches_h * max_nb_patches_w), fill_value=0 + ) + + for batch_idx, p_attn_mask in enumerate(patch_attention_mask): + nb_patches_h = p_attn_mask[:, 0].sum() + nb_patches_w = p_attn_mask[0].sum() + + fractional_coords_h = torch.arange(0, 1 - 1e-6, 1 / nb_patches_h) + fractional_coords_w = torch.arange(0, 1 - 1e-6, 1 / nb_patches_w) + + bucket_coords_h = torch.bucketize( + fractional_coords_h, boundaries, right=True + ) + bucket_coords_w = torch.bucketize( + fractional_coords_w, boundaries, right=True + ) + + pos_ids = ( + bucket_coords_h[:, None] * self.num_patches_per_side + bucket_coords_w + ).flatten() + position_ids[batch_idx][p_attn_mask.view(-1).cpu()] = pos_ids + + position_ids = position_ids.to(self.position_embedding.weight.device) + embeddings = embeddings + self.position_embedding(position_ids) + return embeddings + + +class Idefics2VisionAttention(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + self.config = config + self.embed_dim = config.hidden_size + self.num_heads = config.num_attention_heads + self.head_size = self.embed_dim // self.num_heads + if self.head_size * self.num_heads != self.embed_dim: + raise ValueError( + f"embed_dim must be divisible by num_heads (got `embed_dim`: {self.embed_dim} and `num_heads`:" + f" {self.num_heads})." + ) + self.scale = self.head_size**-0.5 + self.dropout = config.attention_dropout + + self.num_heads = self.num_heads // weights.process_group.size() + self.embed_dim = self.embed_dim // weights.process_group.size() + + self.qkv = TensorParallelColumnLinear.load_multi( + config, + prefixes=[f"{prefix}.q_proj", f"{prefix}.k_proj", f"{prefix}.v_proj"], + dim=0, + weights=weights, + bias=True, + ) + self.out_proj = TensorParallelRowLinear.load( + config=config, prefix=f"{prefix}.out_proj", weights=weights, bias=True + ) + self.is_causal = False + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + ) -> torch.Tensor: + batch_size, q_len, _ = hidden_states.size() + + qkv = self.qkv(hidden_states) + query_states, key_states, value_states = qkv.split( + [ + self.head_size * self.num_heads, + self.head_size * self.num_heads, + self.head_size * self.num_heads, + ], + dim=2, + ) + + query_states = query_states.view( + batch_size, q_len, self.num_heads, self.head_size + ).transpose(1, 2) + key_states = key_states.view( + batch_size, q_len, self.num_heads, self.head_size + ).transpose(1, 2) + value_states = value_states.view( + batch_size, q_len, self.num_heads, self.head_size + ).transpose(1, 2) + + k_v_seq_len = key_states.shape[-2] + attn_weights = ( + torch.matmul(query_states, key_states.transpose(2, 3)) * self.scale + ) + + if attn_weights.size() != (batch_size, self.num_heads, q_len, k_v_seq_len): + raise ValueError( + f"Attention weights should be of size {(batch_size, self.num_heads, q_len, k_v_seq_len)}, but is" + f" {attn_weights.size()}" + ) + + if attention_mask is not None: + if attention_mask.size() != (batch_size, 1, q_len, k_v_seq_len): + raise ValueError( + f"Attention mask should be of size {(batch_size, 1, q_len, k_v_seq_len)}, but is {attention_mask.size()}" + ) + attn_weights = attn_weights + attention_mask + + # upcast attention to fp32 + attn_weights = nn.functional.softmax( + attn_weights, dim=-1, dtype=torch.float32 + ).to(query_states.dtype) + attn_weights = nn.functional.dropout( + attn_weights, p=self.dropout, training=self.training + ) + attn_output = torch.matmul(attn_weights, value_states) + + if attn_output.size() != (batch_size, self.num_heads, q_len, self.head_size): + raise ValueError( + f"`attn_output` should be of size {(batch_size, self.num_heads, q_len, self.head_size)}, but is" + f" {attn_output.size()}" + ) + + attn_output = attn_output.transpose(1, 2).contiguous() + attn_output = attn_output.reshape(batch_size, q_len, self.embed_dim) + + attn_output = self.out_proj(attn_output) + + return attn_output + + +class Idefics2VisionMLP(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + self.config = config + self.activation_fn = ACT2FN[config.hidden_act] + self.fc1 = TensorParallelColumnLinear.load( + prefix=f"{prefix}.fc1", config=config, weights=weights, bias=True + ) + self.fc2 = TensorParallelRowLinear.load( + prefix=f"{prefix}.fc2", config=config, weights=weights, bias=True + ) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + hidden_states = self.fc1(hidden_states) + hidden_states = self.activation_fn(hidden_states) + hidden_states = self.fc2(hidden_states) + return hidden_states + + +class Idefics2EncoderLayer(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + self.embed_dim = config.hidden_size + self.self_attn = Idefics2VisionAttention( + prefix=f"{prefix}.self_attn", config=config, weights=weights + ) + self.layer_norm1 = nn.LayerNorm.load( + prefix=f"{prefix}.layer_norm1", eps=config.layer_norm_eps, weights=weights + ) + self.layer_norm2 = nn.LayerNorm.load( + prefix=f"{prefix}.layer_norm2", eps=config.layer_norm_eps, weights=weights + ) + self.mlp = Idefics2VisionMLP( + prefix=f"{prefix}.mlp", config=config, weights=weights + ) + + # Copied from transformers.models.siglip.modeling_siglip.SiglipEncoderLayer.forward + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: torch.Tensor, + ) -> torch.Tensor: + residual = hidden_states + + hidden_states = self.layer_norm1(hidden_states) + hidden_states = self.self_attn( + hidden_states=hidden_states, + attention_mask=attention_mask, + ) + hidden_states = residual + hidden_states + + residual = hidden_states + hidden_states = self.layer_norm2(hidden_states) + hidden_states = self.mlp(hidden_states) + hidden_states = residual + hidden_states + + return hidden_states + + +class Idefics2Encoder(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + self.config = config + self.layers = nn.ModuleList( + [ + Idefics2EncoderLayer( + prefix=f"{prefix}.layers.{i}", config=config, weights=weights + ) + for i in range(config.num_hidden_layers) + ] + ) + + # Ignore copy + def forward( + self, + inputs_embeds, + attention_mask: Optional[torch.Tensor] = None, + ): + hidden_states = inputs_embeds + for encoder_layer in self.layers: + hidden_states = encoder_layer( + hidden_states, + attention_mask, + ) + return hidden_states + + +class Idefics2VisionTransformer(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + self.config = config + self.embeddings = Idefics2VisionEmbeddings( + prefix=f"{prefix}.embeddings", config=config, weights=weights + ) + self.encoder = Idefics2Encoder( + prefix=f"{prefix}.encoder", config=config, weights=weights + ) + self.post_layernorm = nn.LayerNorm.load( + prefix=f"{prefix}.post_layernorm", + weights=weights, + eps=config.layer_norm_eps, + ) + + def forward( + self, + pixel_values, + patch_attention_mask: Optional[torch.BoolTensor] = None, + ): + batch_size = pixel_values.size(0) + if patch_attention_mask is None: + patch_size = self.config.patch_size + patch_attention_mask = torch.ones( + ( + batch_size, + pixel_values.size(2) // patch_size, + pixel_values.size(3) // patch_size, + ) + ) + patch_attention_mask = patch_attention_mask.to( + dtype=torch.bool, device=pixel_values.device + ) + + hidden_states = self.embeddings( + pixel_values=pixel_values, patch_attention_mask=patch_attention_mask + ) + + patch_attention_mask = patch_attention_mask.view(batch_size, -1) + # The call to `_upad_input` in `_flash_attention_forward` is expensive + # So when the `patch_attention_mask` is full of 1s (i.e. attending to the whole sequence), + # avoiding passing the attention_mask, which is equivalent to attending to the full sequence + if not torch.any(~patch_attention_mask): + patch_attention_mask = None + else: + patch_attention_mask = _prepare_4d_attention_mask( + patch_attention_mask, hidden_states.dtype + ) + + encoder_outputs = self.encoder( + inputs_embeds=hidden_states, + attention_mask=patch_attention_mask, + ) + + last_hidden_state = encoder_outputs + last_hidden_state = self.post_layernorm(last_hidden_state) + + return last_hidden_state + + +class Idefics2MLP(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + act = config.text_config.hidden_act + self.act = ( + ACT2FN[act] + if "gelu" not in act + else lambda x: torch.nn.functional.gelu( + x, + approximate=( + "tanh" if act in ["gelu_fast", "gelu_pytorch_tanh"] else "none" + ), + ) + ) + self.gate_up_proj = TensorParallelColumnLinear.load_multi( + config, + prefixes=[f"{prefix}.gate_proj", f"{prefix}.up_proj"], + weights=weights, + dim=0, + bias=False, + ) + self.down_proj = TensorParallelRowLinear.load( + config, + prefix=f"{prefix}.down_proj", + weights=weights, + bias=False, + ) + + def forward(self, hidden_states): + start_shape = hidden_states.shape[:-1] + gate_up_states = self.gate_up_proj(hidden_states) + intermediate_size = gate_up_states.shape[-1] // 2 + gate_up_states = gate_up_states.view(-1, 2, intermediate_size) + return self.down_proj( + self.act(gate_up_states[:, 0]) * gate_up_states[:, 1] + ).view(*start_shape, -1) + + +class Idefics2RMSNorm(nn.Module): + def __init__(self, prefix, weights, eps): + """ + Idefics2RMSNorm is equivalent to T5LayerNorm + """ + super().__init__() + self.weight = nn.Parameter( + weights.get_tensor(f"{prefix}.weight"), requires_grad=False + ) + self.variance_epsilon = eps + + def forward(self, hidden_states): + input_dtype = hidden_states.dtype + hidden_states = hidden_states.to(torch.float32) + variance = hidden_states.pow(2).mean(-1, keepdim=True) + hidden_states = hidden_states * torch.rsqrt(variance + self.variance_epsilon) + return self.weight * hidden_states.to(input_dtype) + + +class Idefics2PerceiverAttention(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + + self.layer_idx = None + self.hidden_size = config.text_config.hidden_size + self.num_heads = config.perceiver_config.resampler_n_heads + self.head_size = config.perceiver_config.resampler_head_dim + self.num_key_value_heads = config.perceiver_config.num_key_value_heads + self.num_key_value_groups = self.num_heads // self.num_key_value_heads + self.attention_dropout = config.perceiver_config.attention_dropout + self.num_heads = self.num_heads // weights.process_group.size() + self.num_key_value_heads = ( + self.num_key_value_heads // weights.process_group.size() + ) + + self.q_proj = TensorParallelColumnLinear.load( + config, + prefix=f"{prefix}.q_proj", + weights=weights, + bias=False, + ) + self.kv = TensorParallelColumnLinear.load_multi( + config, + prefixes=[f"{prefix}.k_proj", f"{prefix}.v_proj"], + dim=0, + weights=weights, + bias=False, + ) + self.o_proj = TensorParallelRowLinear.load( + config=config, prefix=f"{prefix}.o_proj", weights=weights, bias=False + ) + + self.is_causal = False + + def forward( + self, + latents: torch.Tensor, + context: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]: + bsz, q_len, _ = latents.size() + kv_seq_len = q_len + context.size()[1] + + hidden_states = torch.concat([context, latents], dim=-2) + query_states = self.q_proj(latents) + kv = self.kv(hidden_states) + key_states, value_states = kv.split( + [ + self.head_size * self.num_key_value_heads, + self.head_size * self.num_key_value_heads, + ], + dim=2, + ) + + query_states = query_states.view( + bsz, q_len, self.num_heads, self.head_size + ).transpose(1, 2) + key_states = key_states.view( + bsz, kv_seq_len, self.num_key_value_heads, self.head_size + ).transpose(1, 2) + value_states = value_states.view( + bsz, kv_seq_len, self.num_key_value_heads, self.head_size + ).transpose(1, 2) + + # repeat k/v heads if n_kv_heads < n_heads + key_states = repeat_kv(key_states, self.num_key_value_groups) + value_states = repeat_kv(value_states, self.num_key_value_groups) + + attn_weights = torch.matmul( + query_states, key_states.transpose(2, 3) + ) / math.sqrt(self.head_size) + + if attn_weights.size() != (bsz, self.num_heads, q_len, kv_seq_len): + raise ValueError( + f"Attention weights should be of size {(bsz, self.num_heads, q_len, kv_seq_len)}, but is" + f" {attn_weights.size()}" + ) + + if attention_mask is not None: + if attention_mask.size() != (bsz, 1, q_len, kv_seq_len): + raise ValueError( + f"Attention mask should be of size {(bsz, 1, q_len, kv_seq_len)}, but is {attention_mask.size()}" + ) + + attn_weights = attn_weights + attention_mask + + # upcast attention to fp32 + attn_weights = nn.functional.softmax( + attn_weights, dim=-1, dtype=torch.float32 + ).to(query_states.dtype) + attn_output = torch.matmul(attn_weights, value_states) + + if attn_output.size() != (bsz, self.num_heads, q_len, self.head_size): + raise ValueError( + f"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_size)}, but is" + f" {attn_output.size()}" + ) + + attn_output = attn_output.transpose(1, 2).contiguous() + attn_output = attn_output.reshape(bsz, q_len, self.num_heads * self.head_size) + + attn_output = self.o_proj(attn_output) + + return attn_output + + +class Idefics2PerceiverLayer(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + self.hidden_size = config.text_config.hidden_size + self.n_latents = config.perceiver_config.resampler_n_latents + self.depth = config.perceiver_config.resampler_depth + self.rms_norm_eps = config.text_config.rms_norm_eps + + self.input_latents_norm = Idefics2RMSNorm( + prefix=f"{prefix}.input_latents_norm", + weights=weights, + eps=self.rms_norm_eps, + ) + self.input_context_norm = Idefics2RMSNorm( + prefix=f"{prefix}.input_context_norm", + weights=weights, + eps=self.rms_norm_eps, + ) + self.self_attn = Idefics2PerceiverAttention( + prefix=f"{prefix}.self_attn", config=config, weights=weights + ) + self.post_attention_layernorm = Idefics2RMSNorm( + prefix=f"{prefix}.post_attention_layernorm", + weights=weights, + eps=self.rms_norm_eps, + ) + self.mlp = Idefics2MLP(prefix=f"{prefix}.mlp", config=config, weights=weights) + + def forward( + self, + latents: torch.Tensor, + context: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + ): + """ + Args: + latents (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)` + context (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)` + attention_mask (`torch.FloatTensor`, *optional*): attention mask of size + `(batch, sequence_length)` where padding elements are indicated by 0. + """ + residual = latents + + latents = self.input_latents_norm(latents) + context = self.input_context_norm(context) + + latents = self.self_attn( + latents=latents, + context=context, + attention_mask=attention_mask, + ) + latents = residual + latents + residual = latents + + latents = self.post_attention_layernorm(latents) + latents = self.mlp(latents) + latents = residual + latents + + return latents + + +class Idefics2PerceiverResampler(nn.Module): + def __init__(self, prefix, config, weights) -> None: + super().__init__() + self.hidden_size = config.text_config.hidden_size + self.hidden_act = config.perceiver_config.hidden_act + self.n_latents = config.perceiver_config.resampler_n_latents + self.depth = config.perceiver_config.resampler_depth + self.rms_norm_eps = config.text_config.rms_norm_eps + + # Create Latents for Perceiver + self.latents = weights.get_tensor(f"{prefix}.latents") + + # Create Transformer Blocks + self.layers = nn.ModuleList( + [ + Idefics2PerceiverLayer( + prefix=f"{prefix}.layers.{idx}", config=config, weights=weights + ) + for idx in range(self.depth) + ] + ) + self.norm = Idefics2RMSNorm( + prefix=f"{prefix}.norm", + weights=weights, + eps=config.text_config.rms_norm_eps, + ) + + def forward( + self, + context: torch.Tensor, + attention_mask, + ) -> torch.Tensor: + # seq embed -> bsz seq embed + latents = self.latents.unsqueeze(0).expand( + (context.shape[0], *self.latents.size()) + ) + + latent_attention_mask = torch.ones( + (attention_mask.size(0), latents.size(1)), + dtype=attention_mask.dtype, + device=attention_mask.device, + ) + attention_mask = torch.cat([attention_mask, latent_attention_mask], dim=-1) + attention_mask = _prepare_4d_attention_mask( + attention_mask, latents.dtype, tgt_len=self.n_latents + ) + + compressed_context = latents + for perceiver_layer in self.layers: + compressed_context = perceiver_layer( + compressed_context, + context, + attention_mask=attention_mask, + ) + compressed_context = self.norm(compressed_context) + + return compressed_context + + +class Idefics2Connector(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + self.modality_projection = Idefics2MLP( + prefix=f"{prefix}.modality_projection", config=config, weights=weights + ) + self.perceiver_resampler = Idefics2PerceiverResampler( + prefix=f"{prefix}.perceiver_resampler", config=config, weights=weights + ) + + def forward(self, image_hidden_states, attention_mask): + image_hidden_states = self.modality_projection(image_hidden_states) + image_hidden_states = self.perceiver_resampler( + context=image_hidden_states, attention_mask=attention_mask + ) + return image_hidden_states + + +class Idefics2ForConditionalGeneration(nn.Module): + def __init__(self, prefix, config, weights): + super().__init__() + config.vision_config.quantize = config.quantize + config.vision_config.use_medusa = config.use_medusa + config.text_config.quantize = config.quantize + config.text_config.use_medusa = config.use_medusa + + vision_config = config.vision_config + self.text_model = load_text_model( + prefix="model" if not prefix else f"{prefix}.model", + config=config.text_config, + weights=weights, + name="text_model", + ) + self.dtype = weights.dtype + self.vision_model = Idefics2VisionTransformer( + prefix=f"{prefix}.model.vision_model" if prefix else "model.vision_model", + config=vision_config, + weights=weights, + ) + self.connector = Idefics2Connector( + prefix=f"{prefix}.model.connector" if prefix else "model.connector", + config=config, + weights=weights, + ) + self.config = config + self.image_seq_len = config.perceiver_config.resampler_n_latents + self.image_token_id = config.image_token_id + self.pad_token_id = ( + config.pad_token_id if config.pad_token_id is not None else -1 + ) + + def _merge_input_ids_with_image_features( + self, + input_ids: torch.Tensor, + inputs_embeds: torch.Tensor, + image_features: torch.Tensor, + ): + """In place merges in vision_embeddings with inputs_embeds.""" + # mask = input_ids == self.config.image_token_index + mask = input_ids == self.config.image_token_id + # Let's pray we have enabled enough slots ! + inputs_embeds[mask] = image_features.view(-1, image_features.shape[-1]) + return inputs_embeds + + def forward( + self, + input_ids: torch.Tensor, + position_ids: torch.Tensor, + cu_seqlen_prefill: Optional[torch.Tensor], + kv_cache: List[Tuple[torch.Tensor, torch.Tensor]], + block_tables: torch.Tensor, + slots: torch.Tensor, + input_lengths: torch.Tensor, + max_s: int, + prefill_cache_indices: Optional[torch.Tensor], + lm_head_indices: Optional[torch.Tensor] = None, + pixel_values: torch.FloatTensor = None, + pixel_attention_mask: Optional[torch.BoolTensor] = None, + # Unused here + image_sizes: Optional[torch.Tensor] = None, + ): + inputs_embeds = self.text_model.embed_tokens(input_ids) + if pixel_values is not None: + batch_size, num_images, num_channels, height, width = pixel_values.shape + all_states = [] + all_pixel_values = pixel_values + all_pixel_mask = pixel_attention_mask + for i in range(batch_size): + pixel_values = all_pixel_values.to( + dtype=self.dtype + ) # fp16 compatibility + pixel_values = pixel_values[i : i + 1] + pixel_values = pixel_values.view(num_images, *pixel_values.shape[2:]) + + # Remove padding images - padding images are full 0. + nb_values_per_image = pixel_values.shape[1:].numel() + real_images_inds = (pixel_values == 0.0).sum( + dim=(-1, -2, -3) + ) != nb_values_per_image + pixel_values = pixel_values[real_images_inds].contiguous() + + # Handle the vision attention mask + if pixel_attention_mask is None: + pixel_attention_mask = torch.ones( + size=( + pixel_values.size(0), + pixel_values.size(2), + pixel_values.size(3), + ), + dtype=torch.bool, + device=pixel_values.device, + ) + else: + # Remove padding images from the mask/pP p + pixel_attention_mask = all_pixel_mask[i : i + 1] + pixel_attention_mask = pixel_attention_mask.view( + 1 * num_images, *pixel_attention_mask.shape[2:] + ) + pixel_attention_mask = pixel_attention_mask[ + real_images_inds + ].contiguous() + + patch_size = self.config.vision_config.patch_size + patches_subgrid = pixel_attention_mask.unfold( + dimension=1, size=patch_size, step=patch_size + ) + patches_subgrid = patches_subgrid.unfold( + dimension=2, size=patch_size, step=patch_size + ) + patch_attention_mask = (patches_subgrid.sum(dim=(-1, -2)) > 0).bool() + + # Get sequence from the vision encoder + image_hidden_states = self.vision_model( + pixel_values=pixel_values, + patch_attention_mask=patch_attention_mask, + ) + + # Modality projection & resampling + image_hidden_states = self.connector( + image_hidden_states, + attention_mask=patch_attention_mask.view(pixel_values.size(0), -1), + ) + all_states.append(image_hidden_states) + image_hidden_states = torch.stack(all_states, dim=0) + # When we generate, we don't want to replace the potential image_token_id that we generated by images + # that simply don't exist + inputs_embeds = self._merge_input_ids_with_image_features( + input_ids, inputs_embeds, image_hidden_states + ) + + hidden_states = self.text_model.model( + inputs_embeds=inputs_embeds, + position_ids=position_ids, + cu_seqlen_prefill=cu_seqlen_prefill, + kv_cache=kv_cache, + block_tables=block_tables, + slots=slots, + input_lengths=input_lengths, + max_s=max_s, + true_max_s=max_s, + prefill_cache_indices=None, + ) + if lm_head_indices is not None: + hidden_states = hidden_states[lm_head_indices] + logits, speculative_logits = self.text_model.lm_head(hidden_states) + return logits, speculative_logits diff --git a/server/text_generation_server/models/custom_modeling/llava_next.py b/server/text_generation_server/models/custom_modeling/llava_next.py index ed21a52b..0d93791f 100644 --- a/server/text_generation_server/models/custom_modeling/llava_next.py +++ b/server/text_generation_server/models/custom_modeling/llava_next.py @@ -23,6 +23,10 @@ from torch import nn from transformers.activations import ACT2FN from transformers.image_processing_utils import select_best_resolution +from text_generation_server.models.custom_modeling.vlm import ( + load_text_model, + load_vision_model, +) from text_generation_server.utils.layers import ( TensorParallelColumnLinear, TensorParallelRowLinear, @@ -105,36 +109,6 @@ class LlavaNextMultiModalProjector(nn.Module): return hidden_states -def load_vision_model(prefix, config, weights): - if config.model_type == "clip_vision_model": - from text_generation_server.models.custom_modeling.clip import ( - CLIPVisionTransformer, - ) - - return CLIPVisionTransformer( - prefix=f"{prefix}.vision_model", config=config, weights=weights - ) - else: - raise RuntimeError(f"Unsupported model type {config.model_type}") - - -def load_text_model(prefix, config, weights): - if config.model_type == "llama": - from text_generation_server.models.custom_modeling.flash_llama_modeling import ( - FlashLlamaForCausalLM, - ) - - return FlashLlamaForCausalLM(prefix, config, weights) - elif config.model_type == "mistral": - from text_generation_server.models.custom_modeling.flash_mistral_modeling import ( - FlashMistralForCausalLM, - ) - - return FlashMistralForCausalLM(prefix, config, weights) - else: - raise RuntimeError(f"Unsupported model type {config.model_type}") - - class LlavaNextForConditionalGeneration(nn.Module): def __init__(self, prefix, config, weights): super().__init__() @@ -180,7 +154,12 @@ class LlavaNextForConditionalGeneration(nn.Module): """In place merges in vision_embeddings with inputs_embeds.""" mask = input_ids == self.config.image_token_index # Let's pray we have enabled enough slots ! - inputs_embeds[mask] = image_features.view(-1, image_features.shape[-1]) + try: + inputs_embeds[mask] = image_features.view(-1, image_features.shape[-1]) + except Exception as e: + raise RuntimeError( + f"Cannot fill images right now. If error happens at warmup, make sure you have enough `--max-input-tokens` to handle images. If error happens at regular runtime, please fill in an issue: {e}" + ) return inputs_embeds def forward( @@ -196,6 +175,8 @@ class LlavaNextForConditionalGeneration(nn.Module): prefill_cache_indices: Optional[torch.Tensor], lm_head_indices: Optional[torch.Tensor] = None, pixel_values: torch.FloatTensor = None, + # Unused for this model + pixel_attention_mask=None, image_sizes: Optional[torch.LongTensor] = None, ): inputs_embeds = self.language_model.embed_tokens(input_ids) diff --git a/server/text_generation_server/models/custom_modeling/vlm.py b/server/text_generation_server/models/custom_modeling/vlm.py new file mode 100644 index 00000000..690957d0 --- /dev/null +++ b/server/text_generation_server/models/custom_modeling/vlm.py @@ -0,0 +1,28 @@ +def load_text_model(prefix, config, weights, name=None): + if config.model_type == "llama": + from text_generation_server.models.custom_modeling.flash_llama_modeling import ( + FlashLlamaForCausalLM, + ) + + return FlashLlamaForCausalLM(prefix, config, weights) + elif config.model_type == "mistral": + from text_generation_server.models.custom_modeling.flash_mistral_modeling import ( + FlashMistralForCausalLM, + ) + + return FlashMistralForCausalLM(prefix, config, weights, name=name) + else: + raise RuntimeError(f"Unsupported model type {config.model_type}") + + +def load_vision_model(prefix, config, weights): + if config.model_type == "clip_vision_model": + from text_generation_server.models.custom_modeling.clip import ( + CLIPVisionTransformer, + ) + + return CLIPVisionTransformer( + prefix=f"{prefix}.vision_model", config=config, weights=weights + ) + else: + raise RuntimeError(f"Unsupported model type {config.model_type}") diff --git a/server/text_generation_server/models/flash_mistral.py b/server/text_generation_server/models/flash_mistral.py index ace7ea8e..52a30b5f 100644 --- a/server/text_generation_server/models/flash_mistral.py +++ b/server/text_generation_server/models/flash_mistral.py @@ -511,18 +511,33 @@ class BaseFlashMistral(FlashCausalLM): cuda_graph = self.cuda_graphs.get(padded_bs, None) if cu_seqlen_prefill is not None or cuda_graph is None: - logits, speculative_logits = self.model.forward( - input_ids=input_ids, - position_ids=position_ids, - cu_seqlen_prefill=cu_seqlen_prefill, - kv_cache=kv_cache, - block_tables=block_tables, - slots=slots, - input_lengths=input_lengths, - max_s=max_s, - prefill_cache_indices=batch.prefill_cache_indices, - lm_head_indices=lm_head_indices, - ) + + if cu_seqlen_prefill is None: + logits, speculative_logits = self.compiled_model( + input_ids=input_ids, + position_ids=position_ids, + cu_seqlen_prefill=cu_seqlen_prefill, + kv_cache=kv_cache, + block_tables=block_tables, + slots=slots, + input_lengths=input_lengths, + max_s=max_s, + prefill_cache_indices=batch.prefill_cache_indices, + lm_head_indices=lm_head_indices, + ) + else: + logits, speculative_logits = self.model.forward( + input_ids=input_ids, + position_ids=position_ids, + cu_seqlen_prefill=cu_seqlen_prefill, + kv_cache=kv_cache, + block_tables=block_tables, + slots=slots, + input_lengths=input_lengths, + max_s=max_s, + prefill_cache_indices=batch.prefill_cache_indices, + lm_head_indices=lm_head_indices, + ) if batch.prefill_cache_indices is not None: batch.prefill_cache_indices = None return logits, speculative_logits diff --git a/server/text_generation_server/models/idefics2.py b/server/text_generation_server/models/idefics2.py new file mode 100644 index 00000000..e831af89 --- /dev/null +++ b/server/text_generation_server/models/idefics2.py @@ -0,0 +1,51 @@ +import torch + +from typing import Optional, Tuple + +from transformers import ( + AutoProcessor, +) +from text_generation_server.models.custom_modeling.idefics2 import ( + Idefics2ForConditionalGeneration, +) + +from text_generation_server.models.vlm_causal_lm import VlmCausalLM + + +class Idefics2(VlmCausalLM): + def __init__( + self, + model_id: str, + revision: Optional[str] = None, + quantize: Optional[str] = None, + use_medusa: Optional[str] = None, + dtype: Optional[torch.dtype] = None, + trust_remote_code: bool = False, + ): + self.processor = AutoProcessor.from_pretrained( + model_id, + revision=revision, + trust_remote_code=trust_remote_code, + # XXX: Extremely important to cap resolution in order to limit + # VRAM usage. + size={"longest_edge": 448, "shortest_edge": 378}, + ) + super().__init__( + model_cls=Idefics2ForConditionalGeneration, + model_id=model_id, + revision=revision, + quantize=quantize, + use_medusa=use_medusa, + dtype=dtype, + trust_remote_code=trust_remote_code, + ) + + def get_layer_config(self, model) -> Tuple[int, int, int]: + return ( + len(model.text_model.model.layers), + model.text_model.model.num_key_value_heads, + model.text_model.model.head_size, + ) + + def max_past(self) -> Optional[int]: + return getattr(self.model.text_model, "max_past", None) diff --git a/server/text_generation_server/models/llava_next.py b/server/text_generation_server/models/llava_next.py index 0ae1b46d..3983bc85 100644 --- a/server/text_generation_server/models/llava_next.py +++ b/server/text_generation_server/models/llava_next.py @@ -1,6 +1,6 @@ import torch -from typing import Optional +from typing import Optional, Tuple from transformers import ( AutoProcessor, @@ -34,3 +34,13 @@ class LlavaNext(VlmCausalLM): dtype=dtype, trust_remote_code=trust_remote_code, ) + + def get_layer_config(self, model) -> Tuple[int, int, int]: + return ( + len(model.language_model.model.layers), + model.language_model.model.num_key_value_heads, + model.language_model.model.head_size, + ) + + def max_past(self) -> Optional[int]: + return getattr(self.model.language_model, "max_past", None) diff --git a/server/text_generation_server/models/vlm_causal_lm.py b/server/text_generation_server/models/vlm_causal_lm.py index 16042fc9..5394feb5 100644 --- a/server/text_generation_server/models/vlm_causal_lm.py +++ b/server/text_generation_server/models/vlm_causal_lm.py @@ -64,6 +64,46 @@ def get_anyres_image_grid_shape(image_size, grid_pinpoints, patch_size): return height // patch_size, width // patch_size +def image_text_replacement(image_input, config, image_id) -> str: + if config.model_type == "idefics2": + # TODO technically depends on image splitting which is not implemented. + num_features = 320 + return ( + "" + + "" * num_features + + "" + ) + elif config.model_type == "llava_next": + height, width = image_input["image_sizes"][image_id] + num_features = get_number_of_features(height, width, config) + from loguru import logger + + logger.info(f"Found {num_features} in image of resolution {height}x{width}") + return "" * num_features + else: + raise RuntimeError(f"Unknown config {config.model_type} for multimodal") + + +def get_unpadded_features( + height: int, width: int, npatches: int, num_patch_height: int, num_patch_width: int +) -> Tuple[int, int]: + current_height = npatches * num_patch_height + current_width = npatches * num_patch_width + + aspect_ratio: float = width / height + current_aspect_ratio: float = current_width / current_height + if aspect_ratio > current_aspect_ratio: + new_height = (height * current_width) // width + current_height = new_height + else: + new_width = (width * current_height) // height + current_width = new_width + + unpadded_features = current_height * current_width + newline_features = current_height + return (unpadded_features, newline_features) + + def get_number_of_features(height: int, width: int, config) -> int: # From config # Hardcoded for CLIP for now @@ -81,12 +121,9 @@ def get_number_of_features(height: int, width: int, config) -> int: image_grid_pinpoints, image_size, ) - - height_of_patch = math.ceil(height / width * npatches) - - unpadded_features = npatches * height_of_patch * num_patch_height * num_patch_width - # They are only added after width - newline_features = height_of_patch * num_patch_width + unpadded_features, newline_features = get_unpadded_features( + height, width, npatches, num_patch_height, num_patch_width + ) # The base patch covers the entire image base_features = npatches**2 return unpadded_features + newline_features + base_features @@ -99,12 +136,9 @@ def load_data_uri(image_uri: str) -> Image.Image: return image -# assert get_number_of_features(889, 1024) == 2634, f"{get_number_of_features(889, 1024)}" -# assert get_number_of_features(640, 640) == 2928 - - class VlmCausalLMBatch(FlashMistralBatch): pixel_values: Optional[List[torch.Tensor]] + pixel_attention_mask: Optional[List[torch.Tensor]] image_sizes: Optional[List[Tuple[int, int]]] @classmethod @@ -112,6 +146,7 @@ class VlmCausalLMBatch(FlashMistralBatch): def concatenate(cls, batches): batch = super(VlmCausalLMBatch, cls).concatenate(batches) batch.pixel_values = None + batch.pixel_attention_mask = None batch.image_sizes = None return batch @@ -119,6 +154,7 @@ class VlmCausalLMBatch(FlashMistralBatch): def filter(self, request_ids: List[int]): batch = super().filter(request_ids) batch.pixel_values = None + batch.pixel_attention_mask = None batch.image_sizes = None return batch @@ -130,6 +166,7 @@ class VlmCausalLMBatch(FlashMistralBatch): for r in requests: chunks = split(r.inputs) full_text = "" + image_id = 0 for chunk in chunks: if chunk["type"] == "text": full_text += chunk["content"] @@ -147,9 +184,7 @@ class VlmCausalLMBatch(FlashMistralBatch): "Cannot process input image not starting with data:" ) image_input = processor.image_processor(image, return_tensors="pt") - height, width = image_input["image_sizes"][0] - num_features = get_number_of_features(height, width, config) - full_text += "" * num_features + full_text += image_text_replacement(image_input, config, image_id) image_inputs.append(image_input) else: raise RuntimeError(f"Invalid chunk type {chunk['type']}") @@ -161,12 +196,21 @@ class VlmCausalLMBatch(FlashMistralBatch): batch_inputs, truncation=True, max_length=max_truncation )["input_ids"] if image_inputs: - image_inputs = { + image_input = image_inputs[0] + new_image_inputs = { "pixel_values": torch.cat( [img["pixel_values"] for img in image_inputs], dim=0 ), - "image_sizes": torch.cat([img["image_sizes"] for img in image_inputs]), } + if "pixel_attention_mask" in image_input: + new_image_inputs["pixel_attention_mask"] = torch.cat( + [img["pixel_attention_mask"] for img in image_inputs], dim=0 + ) + if "image_sizes" in image_input: + new_image_inputs["image_sizes"] = torch.cat( + [img["image_sizes"] for img in image_inputs], dim=0 + ) + image_inputs = new_image_inputs else: image_inputs = None return batch_tokenized_inputs, image_inputs @@ -187,9 +231,19 @@ class VlmCausalLMBatch(FlashMistralBatch): batch = cls.from_tokenized(pb, tokenizer, batch_tokenized_inputs, dtype, device) if image_inputs is not None: batch.pixel_values = image_inputs["pixel_values"].to(device=device) - batch.image_sizes = image_inputs["image_sizes"].to(device=device) + if "pixel_attention_mask" in image_inputs: + batch.pixel_attention_mask = image_inputs["pixel_attention_mask"].to( + device=device + ) + else: + batch.pixel_attention_mask = None + if "image_sizes" in image_inputs: + batch.image_sizes = image_inputs["image_sizes"].to(device=device) + else: + batch.image_sizes = None else: batch.pixel_values = None + batch.pixel_attention_mask = None batch.image_sizes = None return batch @@ -199,16 +253,6 @@ class VlmCausalLM(BaseFlashMistral): def batch_type(self) -> Type[VlmCausalLMBatch]: return VlmCausalLMBatch - def get_layer_config(self, model) -> Tuple[int, int, int]: - return ( - len(model.language_model.model.layers), - model.language_model.model.num_key_value_heads, - model.language_model.model.head_size, - ) - - def max_past(self) -> Optional[int]: - return getattr(self.model.language_model, "max_past", None) - def forward( self, batch: VlmCausalLMBatch ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: @@ -270,17 +314,14 @@ class VlmCausalLM(BaseFlashMistral): max_s = min(self.max_past(), max_s) bs = input_ids.shape[0] - padded_bs = bs - if bs == 3: - padded_bs = 4 - elif 3 < bs <= 8: - padded_bs = 8 - elif bs > 8: - padded_bs = (bs + 7) // 8 * 8 - # Try to find an associated cuda graph - cuda_graph = self.cuda_graphs.get(padded_bs, None) - + bs = input_ids.shape[0] + sorted_padded_bs = sorted([k for k in self.cuda_graphs.keys() if k >= bs]) + if sorted_padded_bs: + # Get associated cuda graph + cuda_graph = self.cuda_graphs[sorted_padded_bs[0]] + else: + cuda_graph = None if cu_seqlen_prefill is not None or cuda_graph is None: logits, speculative_logits = self.model.forward( input_ids=input_ids, @@ -294,12 +335,15 @@ class VlmCausalLM(BaseFlashMistral): prefill_cache_indices=batch.prefill_cache_indices, lm_head_indices=lm_head_indices, pixel_values=batch.pixel_values, + pixel_attention_mask=batch.pixel_attention_mask, image_sizes=batch.image_sizes, ) if batch.prefill_cache_indices is not None: batch.prefill_cache_indices = None if batch.pixel_values is not None: batch.pixel_values = None + if batch.pixel_attention_mask is not None: + batch.pixel_attention_mask = None if batch.image_sizes is not None: batch.image_sizes = None return logits, speculative_logits From 23d82b8fb6e65642f55843f0c64ec90094074ed7 Mon Sep 17 00:00:00 2001 From: drbh Date: Tue, 23 Apr 2024 17:19:16 -0400 Subject: [PATCH 39/74] fix: avoid frequency and repetition penalty on padding tokens (#1765) This PR resolves an issue with the penalty processors during batched generation where extra padding tokens incorrectly impact the penalty scores. generation is impacted in the case where at least one item in the batch includes a `frequency_penalty` reproduction script below ```python import requests from concurrent import futures import time headers = { "Content-Type": "application/json", } json_data = { "inputs": "[INST] Whats the capitol of France? [/INST]", "parameters": { "max_new_tokens": 100, "seed": 20, "do_sample": False, }, } json_data2 = { "inputs": "[INST]Write a mind bending story: I saw a puppy a cat a rat and a raccoon during my bike ride in the park[/INST]", "parameters": { "max_new_tokens": 100, "seed": 2, "do_sample": False, # OFFENDING LINE "frequency_penalty": 1.05, }, } base_url = "http://localhost:3000/generate" def req(): response = requests.post(base_url, headers=headers, json=json_data) print("[req ]", response.json()) def req2(): response = requests.post(base_url, headers=headers, json=json_data2) print("[req2]", response.json()) n = 1 for i in range(0, 3): print(f"- {n} threads -") with futures.ThreadPoolExecutor(max_workers=n) as executor: executor.submit(req) for i in range(3): executor.submit(req2) n += 1 # - 1 threads - # [req ] {'generated_text': ' The capital of France is Paris.'} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # - 2 threads - # [req ] {'generated_text': ' The capital city'} # [req2] {'generated_text': ' As""%\n================'} # [req2] {'generated_text': ' As""%%$\n================'} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # output with this PR's changes: # - 1 threads - # [req ] {'generated_text': ' The capital of France is Paris.'} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # - 2 threads - # [req ] {'generated_text': ' The capital city'} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} # [req2] {'generated_text': " As you were riding your bicycle through Central Park, enjoying some fresh air on an otherwise gloomy day. You couldn't help but notice that it was eerily quiet for this time of year - usually there would be hordes"} ``` **divergence from expected generation is easier to reproduce with batched grammar requests as they are more sensitive to unexpected outputs. this PR resolves the issue by setting the penalty score to 0 where input ids are padding tokens (0). --------- Co-authored-by: OlivierDehaene --- server/text_generation_server/utils/logits_process.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/text_generation_server/utils/logits_process.py b/server/text_generation_server/utils/logits_process.py index 6d8cb71a..2decee53 100644 --- a/server/text_generation_server/utils/logits_process.py +++ b/server/text_generation_server/utils/logits_process.py @@ -143,6 +143,8 @@ class FrequencyPenaltyLogitsProcessor(LogitsProcessor): score = torch.gather(scores, 1, input_ids) # if score < 0 then penalty has to be multiplied to reduce the previous token probability score = -torch.where(score < 0, score * self.penalty, score / self.penalty) + # set score to 0 where input_ids is a padding token + score *= input_ids.ne(0) return scores.scatter_add_(1, input_ids, score) @@ -168,6 +170,8 @@ class HeterogeneousFrequencyPenaltyLogitsProcessor(LogitsProcessor): score = -torch.where( score < 0, score * self.penalty_tensor, score / self.penalty_tensor ) + # set score to 0 where input_ids is a padding token + score *= input_ids.ne(0) return scores.scatter_add_(1, input_ids, score) From 4c698fa6c2ea17ae3372b3d6b6971654817d1969 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 23 Apr 2024 23:38:30 +0200 Subject: [PATCH 40/74] Adding support for `HF_HUB_OFFLINE` support in the router. (#1789) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- router/src/lib.rs | 6 +- router/src/main.rs | 199 ++++++++++++++++++++++----------------------- 2 files changed, 102 insertions(+), 103 deletions(-) diff --git a/router/src/lib.rs b/router/src/lib.rs index 5e207a03..ecd8e2e0 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -73,9 +73,9 @@ pub struct HubTokenizerConfig { } impl HubTokenizerConfig { - pub fn from_file(filename: &std::path::Path) -> Self { - let content = std::fs::read_to_string(filename).unwrap(); - serde_json::from_str(&content).unwrap_or_default() + pub fn from_file>(filename: P) -> Option { + let content = std::fs::read_to_string(filename).ok()?; + serde_json::from_str(&content).ok() } } diff --git a/router/src/main.rs b/router/src/main.rs index c7e3f90b..63347b78 100644 --- a/router/src/main.rs +++ b/router/src/main.rs @@ -1,7 +1,7 @@ use axum::http::HeaderValue; use clap::Parser; use hf_hub::api::tokio::{Api, ApiBuilder, ApiRepo}; -use hf_hub::{Repo, RepoType}; +use hf_hub::{Cache, Repo, RepoType}; use opentelemetry::sdk::propagation::TraceContextPropagator; use opentelemetry::sdk::trace; use opentelemetry::sdk::trace::Sampler; @@ -11,7 +11,7 @@ use opentelemetry_otlp::WithExportConfig; use std::fs::File; use std::io::BufReader; use std::net::{IpAddr, Ipv4Addr, SocketAddr}; -use std::path::Path; +use std::path::{Path, PathBuf}; use text_generation_client::{ClientError, ShardedClient}; use text_generation_router::config::Config; use text_generation_router::{server, HubModelInfo, HubTokenizerConfig}; @@ -162,7 +162,6 @@ async fn main() -> Result<(), RouterError> { // Tokenizer instance // This will only be used to validate payloads let local_path = Path::new(&tokenizer_name); - let local_model = local_path.exists() && local_path.is_dir(); // Shared API builder initialization let api_builder = || { @@ -181,112 +180,113 @@ async fn main() -> Result<(), RouterError> { let use_api = revision.is_some() || !local_path.exists() || !local_path.is_dir(); // Initialize API if needed + #[derive(Clone)] + enum Type { + Api(Api), + Cache(Cache), + None, + } let api = if use_api { - tracing::info!("Using the Hugging Face API"); - match api_builder().build() { - Ok(api) => Some(api), - Err(_) => { - tracing::warn!("Unable to build the Hugging Face API"); - None + if std::env::var("HF_HUB_OFFLINE") == Ok("1".to_string()) { + let cache = Cache::default(); + tracing::warn!("Offline mode active using cache defaults"); + Type::Cache(cache) + } else { + tracing::info!("Using the Hugging Face API"); + match api_builder().build() { + Ok(api) => Type::Api(api), + Err(_) => { + tracing::warn!("Unable to build the Hugging Face API"); + Type::None + } } } } else { - None + Type::None }; // Load tokenizer and model info - let (tokenizer, model_info, config) = if local_model { - let tokenizer = Tokenizer::from_file(local_path.join("tokenizer.json")).ok(); - let model_info = HubModelInfo { - model_id: tokenizer_name.to_string(), - sha: None, - pipeline_tag: None, - }; - let config: Option = std::fs::read_to_string(local_path.join("config.json")) - .ok() - .as_ref() - .and_then(|c| serde_json::from_str(c).ok()); + let (tokenizer_filename, config_filename, tokenizer_config_filename, model_info) = match api { + Type::None => ( + Some(local_path.join("tokenizer.json")), + Some(local_path.join("config.json")), + Some(local_path.join("tokenizer_config.json")), + None, + ), + Type::Api(api) => { + let api_repo = api.repo(Repo::with_revision( + tokenizer_name.to_string(), + RepoType::Model, + revision.clone().unwrap_or_else(|| "main".to_string()), + )); - (tokenizer, model_info, config) - } else if let Some(api) = api.clone() { - let api_repo = api.repo(Repo::with_revision( - tokenizer_name.to_string(), - RepoType::Model, - revision.clone().unwrap_or_else(|| "main".to_string()), - )); + let tokenizer_filename = match api_repo.get("tokenizer.json").await { + Ok(tokenizer_filename) => Some(tokenizer_filename), + Err(_) => get_base_tokenizer(&api, &api_repo).await, + }; + let config_filename = api_repo.get("config.json").await.ok(); + let tokenizer_config_filename = api_repo.get("tokenizer_config.json").await.ok(); - let tokenizer = match api_repo.get("tokenizer.json").await { - Ok(tokenizer_filename) => Tokenizer::from_file(tokenizer_filename).ok(), - Err(_) => get_base_tokenizer(&api, &api_repo).await, - }; - - let config: Option = api_repo.get("config.json").await.ok().and_then(|filename| { - std::fs::read_to_string(filename) - .ok() - .as_ref() - .and_then(|c| { - let config: Result = serde_json::from_str(c); - if let Err(err) = &config { - tracing::warn!("Could not parse config {err:?}"); - } - config.ok() - }) - }); - - let model_info = get_model_info(&api_repo).await.unwrap_or_else(|| { - tracing::warn!("Could not retrieve model info from the Hugging Face hub."); - HubModelInfo { - model_id: tokenizer_name.to_string(), - sha: None, - pipeline_tag: None, - } - }); - - (tokenizer, model_info, config) - } else { - // No API and no local model - return Err(RouterError::ArgumentValidation( - "No local model found and no revision specified".to_string(), - )); - }; - - tracing::info!("Using config {config:?}"); - - // Load tokenizer config if found locally, or check if we can get it from the API if needed - let tokenizer_config = if let Some(path) = tokenizer_config_path { - tracing::info!( - "Using local tokenizer config from user specified path {}", - path - ); - HubTokenizerConfig::from_file(&std::path::PathBuf::from(path)) - } else if local_model { - tracing::info!("Using local tokenizer config"); - HubTokenizerConfig::from_file(&local_path.join("tokenizer_config.json")) - } else { - match api { - Some(api) => { - tracing::info!("Using the Hugging Face API to retrieve tokenizer config"); - let repo = Repo::with_revision( - tokenizer_name.to_string(), - RepoType::Model, - revision.unwrap_or("main".to_string()), - ); - get_tokenizer_config(&api.repo(repo)) - .await - .unwrap_or_else(|| { - tracing::warn!( - "Could not retrieve tokenizer config from the Hugging Face hub." - ); - HubTokenizerConfig::default() - }) - } - None => { - tracing::warn!("Could not find tokenizer config locally and no API specified"); - HubTokenizerConfig::default() - } + let model_info = if let Some(model_info) = get_model_info(&api_repo).await { + Some(model_info) + } else { + tracing::warn!("Could not retrieve model info from the Hugging Face hub."); + None + }; + ( + tokenizer_filename, + config_filename, + tokenizer_config_filename, + model_info, + ) + } + Type::Cache(cache) => { + let repo = cache.repo(Repo::with_revision( + tokenizer_name.to_string(), + RepoType::Model, + revision.clone().unwrap_or_else(|| "main".to_string()), + )); + ( + repo.get("tokenizer.json"), + repo.get("config.json"), + repo.get("tokenizer_config.json"), + None, + ) } }; + let tokenizer: Option = + tokenizer_filename.and_then(|filename| Tokenizer::from_file(filename).ok()); + let config: Option = config_filename.and_then(|filename| { + std::fs::read_to_string(filename) + .ok() + .as_ref() + .and_then(|c| { + let config: Result = serde_json::from_str(c); + if let Err(err) = &config { + tracing::warn!("Could not parse config {err:?}"); + } + config.ok() + }) + }); + let model_info = model_info.unwrap_or_else(|| HubModelInfo { + model_id: tokenizer_name.to_string(), + sha: None, + pipeline_tag: None, + }); + // Read the JSON contents of the file as an instance of 'HubTokenizerConfig'. + let tokenizer_config: Option = if let Some(filename) = tokenizer_config_path + { + HubTokenizerConfig::from_file(filename) + } else { + tokenizer_config_filename.and_then(HubTokenizerConfig::from_file) + }; + let tokenizer_config = tokenizer_config.unwrap_or_else(|| { + tracing::warn!("Could not find tokenizer config locally and no API specified"); + HubTokenizerConfig::default() + }); + + tracing::info!("Using config {config:?}"); if tokenizer.is_none() { tracing::warn!("Could not find a fast tokenizer implementation for {tokenizer_name}"); tracing::warn!("Rust input length validation and truncation is disabled"); @@ -483,7 +483,7 @@ pub async fn get_model_info(api: &ApiRepo) -> Option { } /// get base tokenizer -pub async fn get_base_tokenizer(api: &Api, api_repo: &ApiRepo) -> Option { +pub async fn get_base_tokenizer(api: &Api, api_repo: &ApiRepo) -> Option { let config_filename = api_repo.get("config.json").await.ok()?; // Open the file in read-only mode with buffer. @@ -500,8 +500,7 @@ pub async fn get_base_tokenizer(api: &Api, api_repo: &ApiRepo) -> Option Date: Thu, 25 Apr 2024 09:31:35 -0400 Subject: [PATCH 41/74] feat: improve temperature logic in chat (#1749) This PR adds support for `do_sample` to chat to enable greedy sampling --------- Co-authored-by: Nicolas Patry --- router/src/server.rs | 10 ++++++++-- server/text_generation_server/utils/tokens.py | 8 ++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/router/src/server.rs b/router/src/server.rs index 302a4753..03d184c3 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -1000,6 +1000,7 @@ async fn chat_completions( tools, tool_choice, tool_prompt, + temperature, .. } = req; @@ -1008,6 +1009,11 @@ async fn chat_completions( let logprobs = logprobs.unwrap_or(false); let tool_prompt = tool_prompt.unwrap_or_default(); let stop = stop.unwrap_or_default(); + // enable greedy only when temperature is 0 + let (do_sample, temperature) = match temperature { + Some(temperature) if temperature == 0.0 => (false, None), + other => (true, other), + }; // extract tool grammar if present let tool_grammar = match ToolGrammar::apply(tools, tool_choice) { @@ -1054,13 +1060,13 @@ async fn chat_completions( inputs: inputs.to_string(), parameters: GenerateParameters { best_of: None, - temperature: req.temperature, + temperature, repetition_penalty, frequency_penalty: req.frequency_penalty, top_k: None, top_p: req.top_p, typical_p: None, - do_sample: true, + do_sample, max_new_tokens, return_full_text: None, stop, diff --git a/server/text_generation_server/utils/tokens.py b/server/text_generation_server/utils/tokens.py index 7c8a18f0..8ef1ca0d 100644 --- a/server/text_generation_server/utils/tokens.py +++ b/server/text_generation_server/utils/tokens.py @@ -273,7 +273,7 @@ class HeterogeneousNextTokenChooser: else None ) - if any([x != 1.0 for x in temperature]): + if any(x != 1.0 for x in temperature): do_sample = [ sample or x != 1.0 for x, sample in zip(temperature, do_sample) ] @@ -281,15 +281,15 @@ class HeterogeneousNextTokenChooser: HeterogeneousTemperatureLogitsWarper(temperature, dtype, device) ) - if any([x != 0 for x in top_k]): + if any(x != 0 for x in top_k): do_sample = [sample or x != 0 for x, sample in zip(top_k, do_sample)] warpers.append(HeterogeneousTopKLogitsWarper(top_k, device)) - if any([x < 1.0 for x in top_p]): + if any(x < 1.0 for x in top_p): do_sample = [sample or x < 1.0 for x, sample in zip(top_p, do_sample)] warpers.append(HeterogeneousTopPLogitsWarper(top_p, dtype, device)) - if any([x < 1.0 for x in typical_p]): + if any(x < 1.0 for x in typical_p): do_sample = [sample or x < 1.0 for x, sample in zip(typical_p, do_sample)] warpers.append(HeterogeneousTypicalLogitsWarper(typical_p, dtype, device)) From fccf5edf45836491d8cdd9e2c98d5cde9bae76ab Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Thu, 25 Apr 2024 15:42:17 +0200 Subject: [PATCH 42/74] Updating the benchmarks so everyone uses openai compat layer. (#1800) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- load_tests/common.js | 83 ++++++++++++++++++++++++++++---------------- load_tests/tgi.js | 17 --------- load_tests/vllm.js | 17 --------- 3 files changed, 53 insertions(+), 64 deletions(-) delete mode 100644 load_tests/tgi.js delete mode 100644 load_tests/vllm.js diff --git a/load_tests/common.js b/load_tests/common.js index 06d2506f..80728214 100644 --- a/load_tests/common.js +++ b/load_tests/common.js @@ -1,71 +1,94 @@ -import { check, randomSeed } from 'k6'; +import { check } from 'k6'; +import { scenario } from 'k6/execution'; import http from 'k6/http'; import { Trend, Counter } from 'k6/metrics'; -import { randomItem } from 'https://jslib.k6.io/k6-utils/1.2.0/index.js'; -const seed = 0; - -const host = __ENV.HOST || '127.0.0.1:8000'; +const host = __ENV.HOST; +const model_id = __ENV.MODEL_ID; const timePerToken = new Trend('time_per_token', true); const tokens = new Counter('tokens'); const new_tokens = new Counter('new_tokens'); const input_tokens = new Counter('input_tokens'); +const max_new_tokens = 50; -randomSeed(seed); // const shareGPT = JSON.parse(open("ShareGPT_V3_unfiltered_cleaned_split.json")) const shareGPT = JSON.parse(open("small.json")) -export function get_options(reference_latency_ms){ +export function get_options() { return { thresholds: { http_req_failed: ['rate==0'], - time_per_token: [{ - threshold: `p(50)<${5 * reference_latency_ms}`, - abortOnFail: true, - delayAbortEval: '10s' - }], + // time_per_token: [{ + // threshold: `p(50)<${5 * reference_latency_ms}`, + // abortOnFail: true, + // delayAbortEval: '10s' + // }], }, scenarios: { - load_test: { + single_user: { executor: 'constant-arrival-rate', duration: '60s', - preAllocatedVUs: 10, - rate: 10, + preAllocatedVUs: 1, + rate: 1, timeUnit: '1s', }, + // load_test: { + // executor: 'constant-arrival-rate', + // duration: '60s', + // preAllocatedVUs: 100, + // rate: 1, + // timeUnit: '1s', + // }, + // breakpoint: { + // executor: 'ramping-arrival-rate', //Assure load increase if the system slows + // preAllocatedVUs: 1000, + // stages: [ + // { duration: '60s', target: 100 }, // just slowly ramp-up to a HUGE load + // ], + // }, + // throughput: { + // executor: 'shared-iterations', + // vus: 100, + // iterations: 200, + // maxDuration: '40s', + // }, }, }; } +function generate_payload(gpt, max_new_tokens) { + const input = gpt["conversations"][0]["value"]; + return { "messages": [{ "role": "user", "content": input }], "temperature": 0, "model": `${model_id}`, "max_tokens": max_new_tokens } +} -export function run(host, generate_payload, max_new_tokens) { - const headers = {'Content-Type': 'application/json'}; - const query = randomItem(shareGPT); - const payload = JSON.stringify(generate_payload(query)); - const res = http.post(`http://${host}/generate`, payload, { +export const options = get_options(); + +export default function run() { + const headers = { 'Content-Type': 'application/json' }; + const query = shareGPT[scenario.iterationInTest % shareGPT.length]; + const payload = JSON.stringify(generate_payload(query, max_new_tokens)); + const res = http.post(`http://${host}/v1/chat/completions`, payload, { headers, }); - if(res.status >= 400 && res.status < 500){ + if (res.status >= 400 && res.status < 500) { return; } check(res, { - 'Post status is 200': (r) => res.status === 200, + 'Post status is 200': (res) => res.status === 200, }); const duration = res.timings.duration; if (res.status === 200) { const body = res.json(); - const n_tokens = body.details.tokens.length; - const latency_ms_per_token = duration / n_tokens; + const completion_tokens = body.usage.completion_tokens; + const latency_ms_per_token = duration / completion_tokens; timePerToken.add(latency_ms_per_token); - const latency_in_s = latency_ms_per_token / 1000; - const individual_throughput = 1 / latency_in_s; - const _input_tokens = body.details.prefill.length; - tokens.add(n_tokens + _input_tokens); - input_tokens.add(_input_tokens); - new_tokens.add(n_tokens); + const prompt_tokens = body.usage.prompt_tokens; + input_tokens.add(prompt_tokens); + new_tokens.add(completion_tokens); + tokens.add(completion_tokens + prompt_tokens); } } diff --git a/load_tests/tgi.js b/load_tests/tgi.js deleted file mode 100644 index 6c559a9f..00000000 --- a/load_tests/tgi.js +++ /dev/null @@ -1,17 +0,0 @@ -import { get_options, run } from "./common.js"; - -const reference_latency_ms = 70; -const host = __ENV.HOST || '127.0.0.1:8000'; -const max_new_tokens = 50; - - -function generate_payload(gpt){ - const input = gpt["conversations"][0]["value"]; - return {"inputs": input, "parameters": {"max_new_tokens": max_new_tokens, "decoder_input_details": true}} -} - -export const options = get_options(reference_latency_ms); - -export default function(){ - run(host, generate_payload, max_new_tokens); -} diff --git a/load_tests/vllm.js b/load_tests/vllm.js deleted file mode 100644 index 1edc039a..00000000 --- a/load_tests/vllm.js +++ /dev/null @@ -1,17 +0,0 @@ -import { get_options, run } from "./common.js"; - -const reference_latency_ms = 22; -const host = __ENV.HOST || '127.0.0.1:8000'; -const max_new_tokens = 50; - - -function generate_payload(gpt){ - const input = gpt["conversations"][0]["value"]; - return {"prompt": input, "temperature": 0.5, "ignore_eos": true} -} - -export const options = get_options(reference_latency_ms); - -export default function(){ - run(host, generate_payload, max_new_tokens); -} From eb08b9faeff36e74c6929f3ca7d64e57efaacc15 Mon Sep 17 00:00:00 2001 From: dr3s Date: Thu, 25 Apr 2024 13:11:26 -0400 Subject: [PATCH 43/74] Update guidance docs to reflect grammar support in API (#1775) # What does this PR do? Update guidance docs to reflect grammar support in API. The previous wording was vague and made it sound like openai API supported the grammar parameter. https://github.com/huggingface/text-generation-inference/blob/main/router/src/server.rs#L654 confirms that support for grammar is TGI only at this time. ## Before submitting - [ x] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [x ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ x] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ x] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ x] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- docs/source/conceptual/guidance.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/conceptual/guidance.md b/docs/source/conceptual/guidance.md index a9ff61d8..cecb3f03 100644 --- a/docs/source/conceptual/guidance.md +++ b/docs/source/conceptual/guidance.md @@ -2,7 +2,9 @@ Text Generation Inference (TGI) now supports [JSON and regex grammars](#grammar-and-constraints) and [tools and functions](#tools-and-functions) to help developers guide LLM responses to fit their needs. -These feature are available starting from version `1.4.3`. They are accessible via the [text_generation](https://pypi.org/project/text-generation/) library and is compatible with OpenAI's client libraries. The following guide will walk you through the new features and how to use them! +These feature are available starting from version `1.4.3`. They are accessible via the [text_generation](https://pypi.org/project/text-generation/) library. The tool support is compatible with OpenAI's client libraries. The following guide will walk you through the new features and how to use them! + +> The Grammar guidance support is currently only available in the TGI API due to lack of support in Open AI API. ## Quick Start From ee47973a2f2d2152a6c32b69a93573040271c10b Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Thu, 25 Apr 2024 19:41:50 +0200 Subject: [PATCH 44/74] Use the generation config. (#1808) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- router/src/lib.rs | 43 ++++++++++----- router/src/server.rs | 8 ++- .../custom_modeling/flash_llama_modeling.py | 52 ------------------- .../models/flash_llama.py | 14 +++-- server/text_generation_server/models/model.py | 7 +++ server/text_generation_server/utils/tokens.py | 25 +++++++-- 6 files changed, 74 insertions(+), 75 deletions(-) diff --git a/router/src/lib.rs b/router/src/lib.rs index ecd8e2e0..9b9097f6 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -589,7 +589,9 @@ pub(crate) struct ChatCompletionChoice { #[derive(Clone, Debug, Deserialize, Serialize, ToSchema)] pub(crate) struct ChatCompletionDelta { #[schema(example = "user")] - pub role: String, + // TODO Modify this to a true enum. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub role: Option, #[serde(default, skip_serializing_if = "Option::is_none")] #[schema(example = "What is Deep Learning?")] pub content: Option, @@ -623,6 +625,31 @@ impl ChatCompletionChunk { logprobs: Option, finish_reason: Option, ) -> Self { + let delta = match (delta, tool_calls) { + (Some(delta), _) => ChatCompletionDelta { + role: Some("assistant".to_string()), + content: Some(delta), + tool_calls: None, + }, + (None, Some(tool_calls)) => ChatCompletionDelta { + role: Some("assistant".to_string()), + content: None, + tool_calls: Some(DeltaToolCall { + index: 0, + id: String::new(), + r#type: "function".to_string(), + function: Function { + name: None, + arguments: tool_calls[0].to_string(), + }, + }), + }, + (None, None) => ChatCompletionDelta { + role: None, + content: None, + tool_calls: None, + }, + }; Self { id: String::new(), object: "text_completion".to_string(), @@ -631,19 +658,7 @@ impl ChatCompletionChunk { system_fingerprint, choices: vec![ChatCompletionChoice { index: 0, - delta: ChatCompletionDelta { - role: "assistant".to_string(), - content: delta, - tool_calls: tool_calls.map(|tc| DeltaToolCall { - index: 0, - id: String::new(), - r#type: "function".to_string(), - function: Function { - name: None, - arguments: tc[0].to_string(), - }, - }), - }, + delta, logprobs, finish_reason, }], diff --git a/router/src/server.rs b/router/src/server.rs index 03d184c3..8657b779 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -1103,7 +1103,13 @@ async fn chat_completions( let (content, tool_calls) = if tool_grammar.is_some() { (None, Some(vec![stream_token.token.text])) } else { - (Some(stream_token.token.text), None) + let content = if !stream_token.token.special { + Some(stream_token.token.text) + } else { + None + }; + + (content, None) }; event diff --git a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py index 6d796ac3..6fa85d4e 100644 --- a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py @@ -38,58 +38,6 @@ from text_generation_server.utils.layers import ( ) -class LlamaConfig(PretrainedConfig): - def __init__( - self, - vocab_size=32000, - hidden_size=4096, - intermediate_size=11008, - num_hidden_layers=32, - num_attention_heads=32, - num_key_value_heads=None, - hidden_act="silu", - max_position_embeddings=2048, - initializer_range=0.02, - rms_norm_eps=1e-6, - use_cache=True, - pad_token_id=0, - bos_token_id=1, - eos_token_id=2, - pretraining_tp=1, - tie_word_embeddings=False, - rope_scaling=None, - rope_theta=10000.0, - **kwargs, - ): - self.vocab_size = vocab_size - self.max_position_embeddings = max_position_embeddings - self.hidden_size = hidden_size - self.intermediate_size = intermediate_size - self.num_hidden_layers = num_hidden_layers - self.num_attention_heads = num_attention_heads - - # for backward compatibility - if num_key_value_heads is None: - num_key_value_heads = num_attention_heads - - self.num_key_value_heads = num_key_value_heads - self.hidden_act = hidden_act - self.initializer_range = initializer_range - self.rms_norm_eps = rms_norm_eps - self.pretraining_tp = pretraining_tp - self.use_cache = use_cache - self.rope_scaling = rope_scaling - self.rope_theta = rope_theta - - super().__init__( - pad_token_id=pad_token_id, - bos_token_id=bos_token_id, - eos_token_id=eos_token_id, - tie_word_embeddings=tie_word_embeddings, - **kwargs, - ) - - def load_attention(config, prefix, weights): if config.num_attention_heads != config.num_key_value_heads: return _load_gqa(config, prefix, weights) diff --git a/server/text_generation_server/models/flash_llama.py b/server/text_generation_server/models/flash_llama.py index 56768942..f3578f88 100644 --- a/server/text_generation_server/models/flash_llama.py +++ b/server/text_generation_server/models/flash_llama.py @@ -2,14 +2,13 @@ import torch import torch.distributed from opentelemetry import trace -from transformers import AutoConfig, AutoTokenizer +from transformers import AutoConfig, AutoTokenizer, GenerationConfig from transformers.models.llama import LlamaTokenizer from typing import Optional from text_generation_server.models import FlashCausalLM from text_generation_server.models.custom_modeling.flash_llama_modeling import ( FlashLlamaForCausalLM, - LlamaConfig, ) from text_generation_server.utils import ( initialize_torch_distributed, @@ -53,8 +52,17 @@ class FlashLlama(FlashCausalLM): truncation_side="left", trust_remote_code=trust_remote_code, ) + try: + generation_config = GenerationConfig.from_pretrained( + model_id, revision=revision, trust_remote_code=trust_remote_code + ) + if isinstance(generation_config.eos_token_id, (list, set)): + # TODO Huge hack + tokenizer._eos_token_ids = set(generation_config.eos_token_id) + except Exception: + pass - config = LlamaConfig.from_pretrained( + config = AutoConfig.from_pretrained( model_id, revision=revision, trust_remote_code=trust_remote_code ) config.quantize = quantize diff --git a/server/text_generation_server/models/model.py b/server/text_generation_server/models/model.py index cec9eafa..4f35b0aa 100644 --- a/server/text_generation_server/models/model.py +++ b/server/text_generation_server/models/model.py @@ -27,7 +27,14 @@ class Model(ABC): ): self.model = model.eval() self.tokenizer = tokenizer + + # all_special_ids is not set correctly if the rust tokenizer is unpacked + # TODO report this to transformers. + other_special_ids = { + id for id, token in tokenizer.added_tokens_decoder.items() if token.special + } self.all_special_ids = set(tokenizer.all_special_ids) + self.all_special_ids.update(other_special_ids) self.requires_padding = requires_padding self.dtype = dtype self.device = device diff --git a/server/text_generation_server/utils/tokens.py b/server/text_generation_server/utils/tokens.py index 8ef1ca0d..22f86b60 100644 --- a/server/text_generation_server/utils/tokens.py +++ b/server/text_generation_server/utils/tokens.py @@ -1,5 +1,5 @@ import re -from typing import List, Optional, Tuple +from typing import List, Optional, Tuple, Set, Union import math import torch @@ -143,12 +143,22 @@ class StopSequenceCriteria: class StoppingCriteria: def __init__( self, - eos_token_id: int, + eos_token_ids: Optional[Union[Set[int], int]], stop_sequence_criterias: List[StopSequenceCriteria], max_new_tokens: int = 20, ignore_eos_token: bool = False, ): - self.eos_token_id = eos_token_id + if eos_token_ids is None: + eos_token_ids = set() + elif isinstance(eos_token_ids, int): + eos_token_ids = set([eos_token_ids]) + elif isinstance(eos_token_ids, set): + eos_token_ids = eos_token_ids + else: + raise RuntimeError( + f"eos_token_ids is of invalid type {type(eos_token_ids)}, expected int, None or set[int]" + ) + self.eos_token_ids = eos_token_ids self.stop_sequence_criterias = stop_sequence_criterias self.max_new_tokens = max_new_tokens self.current_tokens = 0 @@ -160,7 +170,10 @@ class StoppingCriteria: if self.current_tokens >= self.max_new_tokens: return True, FinishReason.FINISH_REASON_LENGTH - if not self.ignore_eos_token and last_token == self.eos_token_id: + if isinstance(last_token, torch.Tensor): + last_token = last_token.item() + + if not self.ignore_eos_token and last_token in self.eos_token_ids: return True, FinishReason.FINISH_REASON_EOS_TOKEN if self.stop_sequence_criterias: @@ -184,8 +197,10 @@ class StoppingCriteria: stop_sequence_criterias = [ StopSequenceCriteria(sequence) for sequence in pb.stop_sequences ] + # TODO Hack because eos_token_id cannot be what we want. + eos_token_id = getattr(tokenizer, "_eos_token_ids", tokenizer.eos_token_id) return StoppingCriteria( - tokenizer.eos_token_id, + eos_token_id, stop_sequence_criterias, pb.max_new_tokens, pb.ignore_eos_token, From bbc547ad8de76398d625253a3b25d097b88fff48 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 26 Apr 2024 15:39:00 +0200 Subject: [PATCH 45/74] 2nd round of benchmark modifications (tiny adjustements to avoid overloading the host). (#1816) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- load_tests/common.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/load_tests/common.js b/load_tests/common.js index 80728214..e0a10595 100644 --- a/load_tests/common.js +++ b/load_tests/common.js @@ -26,23 +26,23 @@ export function get_options() { // }], }, scenarios: { - single_user: { + // single_user: { + // executor: 'constant-arrival-rate', + // duration: '60s', + // preAllocatedVUs: 1, + // rate: 20, + // timeUnit: '1s', + // }, + load_test: { executor: 'constant-arrival-rate', duration: '60s', - preAllocatedVUs: 1, + preAllocatedVUs: 100, rate: 1, timeUnit: '1s', }, - // load_test: { - // executor: 'constant-arrival-rate', - // duration: '60s', - // preAllocatedVUs: 100, - // rate: 1, - // timeUnit: '1s', - // }, // breakpoint: { // executor: 'ramping-arrival-rate', //Assure load increase if the system slows - // preAllocatedVUs: 1000, + // preAllocatedVUs: 300, // stages: [ // { duration: '60s', target: 100 }, // just slowly ramp-up to a HUGE load // ], From f9cf3456250e420af65e1d813ccee6af749658ad Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 26 Apr 2024 15:44:44 +0200 Subject: [PATCH 46/74] Adding new env variables for TPU backends. (#1755) # What does this PR do? On TPU (and probably inferentia). The model needs to know right off the bat about BATCH_SIZE and MAX_TOTAL_TOKENS (since the entire cache will be determined by both). This PR sends that information to the shards to they can allocate accordingly. Should be no-op for other backends. Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- launcher/src/main.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 40e7364f..f264e000 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -448,6 +448,8 @@ fn shard_manager( cuda_memory_fraction: f32, rope_scaling: Option, rope_factor: Option, + max_total_tokens: usize, + max_batch_size: Option, otlp_endpoint: Option, status_sender: mpsc::Sender, shutdown: Arc, @@ -512,6 +514,7 @@ fn shard_manager( (Some(scaling), Some(factor)) => Some((scaling, factor)), (None, Some(factor)) => Some((RopeScaling::Linear, factor)), }; + // OpenTelemetry if let Some(otlp_endpoint) = otlp_endpoint { shard_args.push("--otlp-endpoint".to_string()); @@ -564,6 +567,14 @@ fn shard_manager( envs.push(("ROPE_FACTOR".into(), factor.to_string().into())); } + envs.push(( + "MAX_TOTAL_TOKENS".into(), + max_total_tokens.to_string().into(), + )); + if let Some(max_batch_size) = max_batch_size { + envs.push(("MAX_BATCH_SIZE".into(), max_batch_size.to_string().into())); + } + // If huggingface_hub_cache is some, pass it to the shard // Useful when running inside a docker container if let Some(huggingface_hub_cache) = huggingface_hub_cache { @@ -967,6 +978,7 @@ fn spawn_shards( num_shard: usize, args: &Args, cuda_graphs: Vec, + max_total_tokens: usize, shutdown: Arc, shutdown_receiver: &mpsc::Receiver<()>, shutdown_sender: mpsc::Sender<()>, @@ -998,6 +1010,7 @@ fn spawn_shards( let cuda_memory_fraction = args.cuda_memory_fraction; let rope_scaling = args.rope_scaling; let rope_factor = args.rope_factor; + let max_batch_size = args.max_batch_size; thread::spawn(move || { shard_manager( model_id, @@ -1020,6 +1033,8 @@ fn spawn_shards( cuda_memory_fraction, rope_scaling, rope_factor, + max_total_tokens, + max_batch_size, otlp_endpoint, status_sender, shutdown, @@ -1474,6 +1489,7 @@ fn main() -> Result<(), LauncherError> { num_shard, &args, cuda_graphs, + max_total_tokens, shutdown.clone(), &shutdown_receiver, shutdown_sender, From 45ecf9d04060d2acfbb3286c261b3c5a476ec297 Mon Sep 17 00:00:00 2001 From: "Wang, Yi" Date: Fri, 26 Apr 2024 21:48:58 +0800 Subject: [PATCH 47/74] add intel xpu support for TGI (#1475) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --------- Signed-off-by: Wang, Yi A Co-authored-by: Morgan Funtowicz Co-authored-by: Nicolas Patry --- .github/workflows/build.yaml | 93 ++++++++++++ Dockerfile_intel | 105 +++++++++++++ launcher/src/env_runtime.rs | 13 +- .../models/cache_manager.py | 6 +- .../custom_modeling/flash_dbrx_modeling.py | 4 +- .../custom_modeling/flash_mixtral_modeling.py | 5 +- .../models/flash_causal_lm.py | 28 +++- .../models/flash_llama.py | 4 + .../models/flash_mistral.py | 6 +- .../models/flash_neox.py | 5 +- .../text_generation_server/models/flash_rw.py | 5 +- .../models/flash_santacoder.py | 4 + .../text_generation_server/models/globals.py | 4 +- server/text_generation_server/utils/dist.py | 9 +- .../utils/flash_attn.py | 142 +++++++++++------- .../utils/import_utils.py | 9 ++ server/text_generation_server/utils/layers.py | 39 ++++- .../utils/paged_attention.py | 30 +++- 18 files changed, 434 insertions(+), 77 deletions(-) create mode 100644 Dockerfile_intel diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 066ea889..f1131450 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -274,12 +274,105 @@ jobs: cache-from: type=registry,ref=registry.internal.huggingface.tech/api-inference/community/text-generation-inference:cache-rocm,mode=min cache-to: type=registry,ref=registry.internal.huggingface.tech/api-inference/community/text-generation-inference:cache-rocm,mode=min + build-and-push-image-intel: + concurrency: + group: ${{ github.workflow }}-build-and-push-image-intel-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + needs: + - start-runner + - build-and-push-image # Wait for the main docker image to be built + - integration-tests # Wait for the main integration-tests + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + permissions: + contents: write + packages: write + # This is used to complete the identity challenge + # with sigstore/fulcio when running outside of PRs. + id-token: write + security-events: write + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Initialize Docker Buildx + uses: docker/setup-buildx-action@v2.0.0 + with: + install: true + - name: Inject slug/short variables + uses: rlespinasse/github-slug-action@v4.4.1 + - name: Tailscale + uses: tailscale/github-action@7bd8039bf25c23c4ab1b8d6e2cc2da2280601966 + with: + authkey: ${{ secrets.TAILSCALE_AUTHKEY }} + - name: Login to GitHub Container Registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Login to internal Container Registry + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.TAILSCALE_DOCKER_USERNAME }} + password: ${{ secrets.TAILSCALE_DOCKER_PASSWORD }} + registry: registry.internal.huggingface.tech + - name: Login to Azure Container Registry + if: github.event_name != 'pull_request' + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.AZURE_DOCKER_USERNAME }} + password: ${{ secrets.AZURE_DOCKER_PASSWORD }} + registry: db4c2190dd824d1f950f5d1555fbadf0.azurecr.io + # If pull request + - name: Extract metadata (tags, labels) for Docker + if: ${{ github.event_name == 'pull_request' }} + id: meta-pr + uses: docker/metadata-action@v4.3.0 + with: + images: | + registry.internal.huggingface.tech/api-inference/community/text-generation-inference + tags: | + type=raw,value=sha-${{ env.GITHUB_SHA_SHORT }}-intel + # If main, release or tag + - name: Extract metadata (tags, labels) for Docker + if: ${{ github.event_name != 'pull_request' }} + id: meta + uses: docker/metadata-action@v4.3.0 + with: + flavor: | + latest=false + images: | + registry.internal.huggingface.tech/api-inference/community/text-generation-inference + ghcr.io/huggingface/text-generation-inference + db4c2190dd824d1f950f5d1555fbadf0.azurecr.io/text-generation-inference + tags: | + type=semver,pattern={{version}}-intel + type=semver,pattern={{major}}.{{minor}}-intel + type=raw,value=latest-intel,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} + type=raw,value=sha-${{ env.GITHUB_SHA_SHORT }}-intel + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile_intel + push: true + platforms: 'linux/amd64' + build-args: | + GIT_SHA=${{ env.GITHUB_SHA }} + DOCKER_LABEL=sha-${{ env.GITHUB_SHA_SHORT }}-intel + tags: ${{ steps.meta.outputs.tags || steps.meta-pr.outputs.tags }} + labels: ${{ steps.meta.outputs.labels || steps.meta-pr.outputs.labels }} + cache-from: type=registry,ref=registry.internal.huggingface.tech/api-inference/community/text-generation-inference:cache-intel,mode=min + cache-to: type=registry,ref=registry.internal.huggingface.tech/api-inference/community/text-generation-inference:cache-intel,mode=min + stop-runner: name: Stop self-hosted EC2 runner needs: - start-runner - build-and-push-image - build-and-push-image-rocm + - build-and-push-image-intel - integration-tests runs-on: ubuntu-latest env: diff --git a/Dockerfile_intel b/Dockerfile_intel new file mode 100644 index 00000000..d0791cac --- /dev/null +++ b/Dockerfile_intel @@ -0,0 +1,105 @@ +FROM lukemathwalker/cargo-chef:latest-rust-1.75 AS chef +WORKDIR /usr/src + +ARG CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse + +FROM chef as planner +COPY Cargo.toml Cargo.toml +COPY rust-toolchain.toml rust-toolchain.toml +COPY proto proto +COPY benchmark benchmark +COPY router router +COPY launcher launcher +RUN cargo chef prepare --recipe-path recipe.json + +FROM chef AS builder + +ARG GIT_SHA +ARG DOCKER_LABEL + +RUN PROTOC_ZIP=protoc-21.12-linux-x86_64.zip && \ + curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v21.12/$PROTOC_ZIP && \ + unzip -o $PROTOC_ZIP -d /usr/local bin/protoc && \ + unzip -o $PROTOC_ZIP -d /usr/local 'include/*' && \ + rm -f $PROTOC_ZIP + +COPY --from=planner /usr/src/recipe.json recipe.json +RUN cargo chef cook --release --recipe-path recipe.json + +COPY Cargo.toml Cargo.toml +COPY rust-toolchain.toml rust-toolchain.toml +COPY proto proto +COPY benchmark benchmark +COPY router router +COPY launcher launcher +RUN cargo build --release + + +# Text Generation Inference base image for Intel +FROM intel/intel-extension-for-pytorch:2.1.10-xpu as base + +USER root +# libssl.so.1.1 is not installed on Ubuntu 22.04 by default, install it +RUN wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb && \ + dpkg -i ./libssl1.1_1.1.1f-1ubuntu2_amd64.deb + + +RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ +| gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list + +RUN apt-get update && apt install -y intel-basekit xpu-smi cmake python3-dev ninja-build + +# Text Generation Inference base env +ENV HUGGINGFACE_HUB_CACHE=/data \ + HF_HUB_ENABLE_HF_TRANSFER=1 \ + PORT=80 + + +WORKDIR /usr/src +# Build pytorch and ipex +RUN git clone https://github.com/intel/intel-extension-for-pytorch && cd intel-extension-for-pytorch && git checkout -b xpu_main origin/xpu-main +RUN git clone https://github.com/pytorch/pytorch.git && cd pytorch && git checkout 209f2fa8ff86652f67d75c2f19bf9cb9942fd018 && git apply /usr/src/intel-extension-for-pytorch/torch_patches/00*.patch + +# Install server +COPY proto proto +COPY server server +COPY server/Makefile server/Makefile +RUN cd server && \ + make gen-server && \ + pip install -r requirements_cuda.txt && \ + pip install ".[accelerate, peft, outlines]" --no-cache-dir + +ENV CCL_ROOT=/opt/intel/oneapi/ccl/latest +ENV I_MPI_ROOT=/opt/intel/oneapi/mpi/latest +ENV FI_PROVIDER_PATH=/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/lib/prov:/usr/lib/x86_64-linux-gnu/libfabric +ENV DIAGUTIL_PATH=/opt/intel/oneapi/compiler/latest/etc/compiler/sys_check/sys_check.sh +ENV CCL_CONFIGURATION=cpu_gpu_dpcpp +ENV MANPATH=/opt/intel/oneapi/mpi/latest/share/man:/opt/intel/oneapi/mpi/latest/share/man:/opt/intel/oneapi/compiler/latest/share/man +ENV CMAKE_PREFIX_PATH=/opt/intel/oneapi/mkl/latest/lib/cmake:/opt/intel/oneapi/compiler/latest +ENV CMPLR_ROOT=/opt/intel/oneapi/compiler/latest +ENV LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:/opt/intel/oneapi/ccl/latest/lib/:/opt/intel/oneapi/mkl/latest/lib/:/opt/intel/oneapi/compiler/latest/lib +ENV OCL_ICD_FILENAMES=libintelocl_emu.so:libalteracl.so:/opt/intel/oneapi/compiler/latest/lib/libintelocl.so +ENV CLASSPATH=/opt/intel/oneapi/mpi/latest/share/java/mpi.jar:/opt/intel/oneapi/mpi/latest/share/java/mpi.jar +ENV LD_LIBRARY_PATH=/opt/intel/oneapi/ccl/latest/lib/:/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/lib:/opt/intel/oneapi/mpi/latest/lib:/opt/intel/oneapi/mkl/latest/lib:/opt/intel/oneapi/compiler/latest/opt/compiler/lib:/opt/intel/oneapi/compiler/latest/lib:/opt/intel/oneapi/lib:/opt/intel/oneapi/lib/intel64: +ENV MKLROOT=/opt/intel/oneapi/mkl/latest +ENV NLSPATH=/opt/intel/oneapi/mkl/latest/share/locale/%l_%t/%N:/opt/intel/oneapi/compiler/latest/lib/locale/%l_%t/%N +ENV PATH=/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/bin:/opt/intel/oneapi/mpi/latest/bin:/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/bin:/opt/intel/oneapi/mkl/latest/bin/:/opt/intel/oneapi/compiler/latest/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV CPATH=/opt/intel/oneapi/mpi/latest/include:/opt/intel/oneapi/ccl/latest/include:/opt/intel/oneapi/mkl/latest/include +ENV CCL_ZE_IPC_EXCHANGE=sockets + + +RUN pip uninstall -y torch && cd pytorch && git submodule update --init --recursive && python setup.py install +RUN pip uninstall -y intel-extension-for-pytorch && cd intel-extension-for-pytorch && git submodule update --init --recursive && USE_AOT_DEVLIST='pvc' BUILD_SEPARATE_OPS=ON BUILD_WITH_CPU=ON USE_XETLA=ON python setup.py install + +# Install benchmarker +COPY --from=builder /usr/src/target/release/text-generation-benchmark /usr/local/bin/text-generation-benchmark +# Install router +COPY --from=builder /usr/src/target/release/text-generation-router /usr/local/bin/text-generation-router +# Install launcher +COPY --from=builder /usr/src/target/release/text-generation-launcher /usr/local/bin/text-generation-launcher + +# Final image +FROM base + +ENTRYPOINT ["text-generation-launcher"] +CMD ["--json-output"] diff --git a/launcher/src/env_runtime.rs b/launcher/src/env_runtime.rs index 9dbc83f7..08fb301c 100644 --- a/launcher/src/env_runtime.rs +++ b/launcher/src/env_runtime.rs @@ -7,14 +7,17 @@ pub(crate) struct Env { git_sha: &'static str, docker_label: &'static str, nvidia_env: String, + xpu_env: String, } impl Env { pub fn new() -> Self { let nvidia_env = nvidia_smi(); + let xpu_env = xpu_smi(); Self { nvidia_env: nvidia_env.unwrap_or("N/A".to_string()), + xpu_env: xpu_env.unwrap_or("N/A".to_string()), cargo_target: env!("VERGEN_CARGO_TARGET_TRIPLE"), cargo_version: env!("VERGEN_RUSTC_SEMVER"), git_sha: option_env!("VERGEN_GIT_SHA").unwrap_or("N/A"), @@ -31,7 +34,8 @@ impl fmt::Display for Env { writeln!(f, "Cargo version: {}", self.cargo_version)?; writeln!(f, "Commit sha: {}", self.git_sha)?; writeln!(f, "Docker label: {}", self.docker_label)?; - write!(f, "nvidia-smi:\n{}", self.nvidia_env)?; + writeln!(f, "nvidia-smi:\n{}", self.nvidia_env)?; + write!(f, "xpu-smi:\n{}", self.xpu_env)?; Ok(()) } @@ -43,3 +47,10 @@ fn nvidia_smi() -> Option { let output = nvidia_smi.replace('\n', "\n "); Some(output.trim().to_string()) } + +fn xpu_smi() -> Option { + let output = Command::new("xpu-smi").arg("discovery").output().ok()?; + let xpu_smi = String::from_utf8(output.stdout).ok()?; + let output = xpu_smi.replace('\n', "\n "); + Some(output.trim().to_string()) +} diff --git a/server/text_generation_server/models/cache_manager.py b/server/text_generation_server/models/cache_manager.py index 85e1b19b..4c65e2dd 100644 --- a/server/text_generation_server/models/cache_manager.py +++ b/server/text_generation_server/models/cache_manager.py @@ -2,6 +2,7 @@ import math import torch from typing import Optional, List, Tuple +from text_generation_server.utils.import_utils import IS_XPU_SYSTEM BLOCK_SIZE: int = 16 # Will be set in warmup @@ -24,7 +25,10 @@ class CacheManager: self.repeat_slots = repeat_slots element_size = torch.tensor([], dtype=dtype).element_size() - x = self.block_size // element_size + if IS_XPU_SYSTEM: + x = 1 + else: + x = self.block_size // element_size self.kv_cache = [ ( diff --git a/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py b/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py index d04ce39e..d0978bef 100644 --- a/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py @@ -21,8 +21,10 @@ from transformers.activations import ACT2FN from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple, Any from loguru import logger +from text_generation_server.utils.import_utils import IS_XPU_SYSTEM -from vllm.model_executor.layers.fused_moe import fused_moe +if not IS_XPU_SYSTEM: + from vllm.model_executor.layers.fused_moe import fused_moe from text_generation_server.utils import paged_attention, flash_attn from text_generation_server.utils.layers import ( FastLinear, diff --git a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py index be8cb965..3f6c8e03 100644 --- a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py @@ -24,7 +24,10 @@ import torch.distributed import numpy as np from torch import nn -from vllm.model_executor.layers.fused_moe import fused_moe +from text_generation_server.utils.import_utils import IS_XPU_SYSTEM + +if not IS_XPU_SYSTEM: + from vllm.model_executor.layers.fused_moe import fused_moe from transformers.activations import ACT2FN from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple diff --git a/server/text_generation_server/models/flash_causal_lm.py b/server/text_generation_server/models/flash_causal_lm.py index 1189ccdd..94518b8f 100644 --- a/server/text_generation_server/models/flash_causal_lm.py +++ b/server/text_generation_server/models/flash_causal_lm.py @@ -33,7 +33,7 @@ from text_generation_server.utils import StoppingCriteria, HeterogeneousNextToke from text_generation_server.utils.dist import MEMORY_FRACTION tracer = trace.get_tracer(__name__) - +from text_generation_server.utils.import_utils import IS_CUDA_SYSTEM, IS_ROCM_SYSTEM, IS_XPU_SYSTEM @dataclass class FlashCausalLMBatch(Batch): @@ -752,7 +752,10 @@ class FlashCausalLM(Model): def warmup(self, batch: FlashCausalLMBatch): # The warmup batch is the biggest batch we could ever receive - torch.cuda.empty_cache() + if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: + torch.cuda.empty_cache() + elif IS_XPU_SYSTEM: + torch.xpu.empty_cache() try: cache_manager = set_cache_manager( batch.blocks, @@ -772,7 +775,10 @@ class FlashCausalLM(Model): f"You need to decrease `--max-batch-prefill-tokens`" ) from e - torch.cuda.synchronize(self.device) + if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: + torch.cuda.synchronize(self.device) + elif IS_XPU_SYSTEM: + torch.xpu.synchronize(self.device) # Inspired by the original implementation in [vllm](https://github.com/vllm-project/vllm) # Calculate the number of blocks that can be allocated with the free memory @@ -780,12 +786,18 @@ class FlashCausalLM(Model): cache_block_size = BLOCK_SIZE * self.num_kv_heads * self.head_size total_cache_size = self.num_layers * cache_block_size * 2 * dtype_size - total_free_memory, _ = torch.cuda.mem_get_info(self.device) - total_gpu_memory = torch.cuda.get_device_properties(self.device).total_memory + if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: + total_free_memory, _ = torch.cuda.mem_get_info(self.device) + total_gpu_memory = torch.cuda.get_device_properties(self.device).total_memory - free_memory = max( - 0, total_free_memory - (1 - MEMORY_FRACTION) * total_gpu_memory - ) + free_memory = max( + 0, total_free_memory - (1 - MEMORY_FRACTION) * total_gpu_memory + ) + elif IS_XPU_SYSTEM: + total_gpu_memory = torch.xpu.get_device_properties(self.device).total_memory + free_memory = int(total_gpu_memory *0.5) + else: + raise NotImplementedError("FlashModel is only available on GPU") num_blocks = ( # Leave 5% for some wiggle room diff --git a/server/text_generation_server/models/flash_llama.py b/server/text_generation_server/models/flash_llama.py index f3578f88..f37fc542 100644 --- a/server/text_generation_server/models/flash_llama.py +++ b/server/text_generation_server/models/flash_llama.py @@ -18,6 +18,7 @@ from text_generation_server.utils import ( tracer = trace.get_tracer(__name__) +from text_generation_server.utils.import_utils import IS_XPU_SYSTEM class FlashLlama(FlashCausalLM): def __init__( @@ -33,6 +34,9 @@ class FlashLlama(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype + elif IS_XPU_SYSTEM: + device = torch.device(f"xpu:{rank}") + dtype = torch.float16 if dtype is None else dtype else: raise NotImplementedError("FlashLlama is only available on GPU") diff --git a/server/text_generation_server/models/flash_mistral.py b/server/text_generation_server/models/flash_mistral.py index 52a30b5f..e2ad78d9 100644 --- a/server/text_generation_server/models/flash_mistral.py +++ b/server/text_generation_server/models/flash_mistral.py @@ -33,8 +33,9 @@ tracer = trace.get_tracer(__name__) # Will be set in init SLIDING_WINDOW: Optional[int] = None SLIDING_WINDOW_BLOCKS: Optional[int] = None +from text_generation_server.utils.import_utils import IS_XPU_SYSTEM -MEM_POOL = torch.cuda.graph_pool_handle() +MEM_POOL = torch.cuda.graph_pool_handle() if torch.cuda.is_available() else None def set_sliding_window(sliding_window: int, sliding_window_blocks: int): @@ -316,6 +317,9 @@ class BaseFlashMistral(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype + elif IS_XPU_SYSTEM: + device = torch.device(f"xpu:{rank}") + dtype = torch.float16 if dtype is None else dtype else: raise NotImplementedError("FlashMistral is only available on GPU") diff --git a/server/text_generation_server/models/flash_neox.py b/server/text_generation_server/models/flash_neox.py index 5a351bd7..70c978de 100644 --- a/server/text_generation_server/models/flash_neox.py +++ b/server/text_generation_server/models/flash_neox.py @@ -14,7 +14,7 @@ from text_generation_server.utils import ( weight_files, Weights, ) - +from text_generation_server.utils.import_utils import IS_XPU_SYSTEM tracer = trace.get_tracer(__name__) @@ -32,6 +32,9 @@ class FlashNeoXSharded(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype + elif IS_XPU_SYSTEM: + device = torch.device(f"xpu:{rank}") + dtype = torch.float16 if dtype is None else dtype else: raise NotImplementedError("FlashNeoX is only available on GPU") diff --git a/server/text_generation_server/models/flash_rw.py b/server/text_generation_server/models/flash_rw.py index fc1e26bd..6eb25f22 100644 --- a/server/text_generation_server/models/flash_rw.py +++ b/server/text_generation_server/models/flash_rw.py @@ -15,7 +15,7 @@ from text_generation_server.utils import ( weight_files, Weights, ) - +from text_generation_server.utils.import_utils import IS_XPU_SYSTEM tracer = trace.get_tracer(__name__) @@ -33,6 +33,9 @@ class FlashRWSharded(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype + elif IS_XPU_SYSTEM: + device = torch.device(f"xpu:{rank}") + dtype = torch.float16 if dtype is None else dtype else: raise NotImplementedError("FlashRW is only available on GPU") diff --git a/server/text_generation_server/models/flash_santacoder.py b/server/text_generation_server/models/flash_santacoder.py index 034949f9..6147398a 100644 --- a/server/text_generation_server/models/flash_santacoder.py +++ b/server/text_generation_server/models/flash_santacoder.py @@ -18,6 +18,7 @@ from text_generation_server.utils import ( Weights, ) +from text_generation_server.utils.import_utils import IS_XPU_SYSTEM tracer = trace.get_tracer(__name__) @@ -35,6 +36,9 @@ class FlashSantacoderSharded(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype + elif IS_XPU_SYSTEM: + device = torch.device(f"xpu:{rank}") + dtype = torch.float16 if dtype is None else dtype else: raise NotImplementedError("FlashSantacoderSharded is only available on GPU") diff --git a/server/text_generation_server/models/globals.py b/server/text_generation_server/models/globals.py index 91b4225a..b92aa65b 100644 --- a/server/text_generation_server/models/globals.py +++ b/server/text_generation_server/models/globals.py @@ -1,10 +1,10 @@ import torch import os -MEM_POOL = torch.cuda.graph_pool_handle() +MEM_POOL = torch.cuda.graph_pool_handle() if torch.cuda.is_available() else None # This is overridden by the cli cuda_graphs = os.getenv("CUDA_GRAPHS") -if cuda_graphs is not None and cuda_graphs != "0": +if torch.cuda.is_available() and cuda_graphs is not None and cuda_graphs != "0": try: cuda_graphs = [int(item) for item in cuda_graphs.split(",")] except Exception as e: diff --git a/server/text_generation_server/utils/dist.py b/server/text_generation_server/utils/dist.py index d02bfc5b..3625e6f2 100644 --- a/server/text_generation_server/utils/dist.py +++ b/server/text_generation_server/utils/dist.py @@ -57,7 +57,14 @@ def initialize_torch_distributed(): options.is_high_priority_stream = True options._timeout = timedelta(seconds=60) else: - backend = "gloo" + try: + import oneccl_bindings_for_pytorch + + backend = "ccl" + if os.getenv("CCL_WORKER_COUNT", None) is None: + os.environ["CCL_WORKER_COUNT"] = str(1) + except ImportError: + backend = "gloo" options = None if WORLD_SIZE == 1: diff --git a/server/text_generation_server/utils/flash_attn.py b/server/text_generation_server/utils/flash_attn.py index 45090c64..583a8f91 100644 --- a/server/text_generation_server/utils/flash_attn.py +++ b/server/text_generation_server/utils/flash_attn.py @@ -2,69 +2,81 @@ import os import torch from loguru import logger +import math -from text_generation_server.utils.import_utils import IS_CUDA_SYSTEM, IS_ROCM_SYSTEM +from text_generation_server.utils.import_utils import ( + IS_CUDA_SYSTEM, + IS_ROCM_SYSTEM, + IS_XPU_SYSTEM, +) if os.getenv("USE_FLASH_ATTENTION", "").lower() == "false": raise ImportError("`USE_FLASH_ATTENTION` is false.") - -if not torch.cuda.is_available(): - raise ImportError("CUDA is not available") - -major, minor = torch.cuda.get_device_capability() -is_sm75 = major == 7 and minor == 5 -is_sm8x = major == 8 and minor >= 0 -is_sm90 = major == 9 and minor == 0 - -HAS_FLASH_ATTN = False +HAS_FLASH_ATTN = True HAS_FLASH_ATTN_V2_CUDA = False HAS_FLASH_ATTN_V2_ROCM = False -try: + +if IS_XPU_SYSTEM: + import intel_extension_for_pytorch as ipex + +if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: + if not torch.cuda.is_available(): + raise ImportError("CUDA is not available") + + major, minor = torch.cuda.get_device_capability() + is_sm75 = major == 7 and minor == 5 + is_sm8x = major == 8 and minor >= 0 + is_sm90 = major == 9 and minor == 0 + + HAS_FLASH_ATTN = False + HAS_FLASH_ATTN_V2_CUDA = False + HAS_FLASH_ATTN_V2_ROCM = False try: - import flash_attn_2_cuda - except ImportError: - architecture_suffix = "" - if IS_CUDA_SYSTEM: - architecture_suffix = "-cuda" + try: + import flash_attn_2_cuda + except ImportError: + architecture_suffix = "" + if IS_CUDA_SYSTEM: + architecture_suffix = "-cuda" + elif IS_ROCM_SYSTEM: + architecture_suffix = "-rocm" + raise ImportError( + "Flash Attention V2 is not installed.\n" + "Use the official Docker image (ghcr.io/huggingface/text-generation-inference:latest) " + f"or install flash attention v2 with `cd server && make install install-flash-attention-v2{architecture_suffix}`" + ) + if not (is_sm8x or is_sm90): + raise ImportError( + f"GPU with CUDA capability {major} {minor} is not supported for " + "Flash Attention V2" + ) + HAS_FLASH_ATTN_V2_CUDA = IS_CUDA_SYSTEM + HAS_FLASH_ATTN_V2_ROCM = IS_ROCM_SYSTEM + except ImportError as e: + try: + import flash_attn_cuda + except ImportError: + raise ImportError( + "Flash Attention is not installed.\n" + "Use the official Docker image (ghcr.io/huggingface/text-generation-inference:latest) " + "or install flash attention with `cd server && make install install-flash-attention`" + ) from e + + if IS_CUDA_SYSTEM and not (is_sm75 or is_sm8x or is_sm90): + raise ImportError( + f"GPU with CUDA capability {major} {minor} is not supported" + ) from e elif IS_ROCM_SYSTEM: - architecture_suffix = "-rocm" - raise ImportError( - "Flash Attention V2 is not installed.\n" - "Use the official Docker image (ghcr.io/huggingface/text-generation-inference:latest) " - f"or install flash attention v2 with `cd server && make install install-flash-attention-v2{architecture_suffix}`" - ) - if not (is_sm8x or is_sm90): - raise ImportError( - f"GPU with CUDA capability {major} {minor} is not supported for " - "Flash Attention V2" - ) - HAS_FLASH_ATTN_V2_CUDA = IS_CUDA_SYSTEM - HAS_FLASH_ATTN_V2_ROCM = IS_ROCM_SYSTEM -except ImportError as e: - try: - import flash_attn_cuda - except ImportError: - raise ImportError( - "Flash Attention is not installed.\n" - "Use the official Docker image (ghcr.io/huggingface/text-generation-inference:latest) " - "or install flash attention with `cd server && make install install-flash-attention`" - ) from e + for idx in range(torch.cuda.device_count()): + if "MI210" not in torch.cuda.get_device_name( + idx + ) and "MI250" not in torch.cuda.get_device_name(idx): + raise ImportError( + f"AMD GPU {torch.cuda.get_device_name(idx)} does not support flash-attention" + ) - if IS_CUDA_SYSTEM and not (is_sm75 or is_sm8x or is_sm90): - raise ImportError( - f"GPU with CUDA capability {major} {minor} is not supported" - ) from e - elif IS_ROCM_SYSTEM: - for idx in range(torch.cuda.device_count()): - if "MI210" not in torch.cuda.get_device_name( - idx - ) and "MI250" not in torch.cuda.get_device_name(idx): - raise ImportError( - f"AMD GPU {torch.cuda.get_device_name(idx)} does not support flash-attention" - ) - - logger.warning(f"Unable to use Flash Attention V2: {e}") - HAS_FLASH_ATTN = True + logger.warning(f"Unable to use Flash Attention V2: {e}") + HAS_FLASH_ATTN = True def attention( @@ -80,6 +92,28 @@ def attention( if window_size_left <= 0 and window_size_left != -1: raise ValueError("`window_size_left` must be > 0 or -1") + if IS_XPU_SYSTEM: + if window_size_left != -1: + raise ValueError( + f"XPU version of Flash Attention does not support window attention (window_size_left != -1, got window_size_left={window_size_left})." + ) + return ipex.llm.functional.varlen_attention( + q, + k, + v, + out, + cu_seqlens, + cu_seqlens, + max_s, + max_s, + 0.0, + softmax_scale, + False, + True, + False, + None, + ) + if HAS_FLASH_ATTN_V2_CUDA: return flash_attn_2_cuda.varlen_fwd( q, diff --git a/server/text_generation_server/utils/import_utils.py b/server/text_generation_server/utils/import_utils.py index 428c9f3e..7c0d8001 100644 --- a/server/text_generation_server/utils/import_utils.py +++ b/server/text_generation_server/utils/import_utils.py @@ -1,4 +1,13 @@ import torch +def is_xpu_available(): + try: + import intel_extension_for_pytorch + except ImportError: + return False + + return hasattr(torch, "xpu") and torch.xpu.is_available() + IS_ROCM_SYSTEM = torch.version.hip is not None IS_CUDA_SYSTEM = torch.version.cuda is not None +IS_XPU_SYSTEM = is_xpu_available() diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index 69bd5e88..638cb0a0 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -18,7 +18,14 @@ except ImportError: from accelerate import init_empty_weights from text_generation_server.utils.gptq.quant_linear import QuantLinear -from text_generation_server.utils.import_utils import IS_CUDA_SYSTEM, IS_ROCM_SYSTEM +from text_generation_server.utils.import_utils import ( + IS_CUDA_SYSTEM, + IS_ROCM_SYSTEM, + IS_XPU_SYSTEM, +) + +if IS_XPU_SYSTEM: + import intel_extension_for_pytorch as ipex HAS_AWQ = True try: @@ -812,7 +819,15 @@ try: class FastLayerNorm(nn.LayerNorm): def forward(self, hidden_states, residual=None): - if hidden_states.shape[-1] > 8192 or IS_ROCM_SYSTEM: + if IS_XPU_SYSTEM: + res_out = hidden_states + out = ipex.llm.functional.add_layer_norm( + residual, hidden_states, self.weight, self.bias, self.eps, True + ) + if residual is not None: + res_out = residual + return out, res_out + elif hidden_states.shape[-1] > 8192 or IS_ROCM_SYSTEM: if residual is not None: hidden_states += residual residual = hidden_states @@ -858,7 +873,20 @@ try: return cls(weight, eps) def forward(self, hidden_states, residual=None): - if hidden_states.shape[-1] > 8192: + if IS_XPU_SYSTEM: + residual_out = hidden_states + out = ipex.llm.functional.add_rms_norm( + residual, + hidden_states, + self.weight, + None, + self.variance_epsilon, + True, + ) + if residual is not None: + residual_out = residual + return out, residual_out + elif hidden_states.shape[-1] > 8192: if residual is not None: hidden_states += residual residual = hidden_states @@ -984,6 +1012,10 @@ try: # Inplace operation, updating query and key. pos_encoding_ops.rotary_embedding(query, key, head_size, cos, sin, True) + elif IS_XPU_SYSTEM: + ipex.llm.functional.rotary_embedding( + query, key, sin, cos, query.size(-1), True + ) else: raise ValueError( "Your system seem to be not supported. Please check your install or open an issue at https://github.com/huggingface/text-generation-inference/issues with a clear reproduction." @@ -1103,6 +1135,7 @@ try: cos = torch.index_select(self._cos_cached, 0, position_ids) sin = torch.index_select(self._sin_cached, 0, position_ids) + # Note: this unsqueeze is not necessary on RoCm + VLLM ROPE implementation, but we leave it as is to avoid yet an other controlflow. return cos.unsqueeze(1), sin.unsqueeze(1) diff --git a/server/text_generation_server/utils/paged_attention.py b/server/text_generation_server/utils/paged_attention.py index 487a3a72..62c0c893 100644 --- a/server/text_generation_server/utils/paged_attention.py +++ b/server/text_generation_server/utils/paged_attention.py @@ -1,9 +1,15 @@ import torch - -from text_generation_server.utils.import_utils import IS_CUDA_SYSTEM, IS_ROCM_SYSTEM +from text_generation_server.utils.import_utils import ( + IS_CUDA_SYSTEM, + IS_ROCM_SYSTEM, + IS_XPU_SYSTEM, +) _PARTITION_SIZE = 512 +if IS_XPU_SYSTEM: + import intel_extension_for_pytorch as ipex + def reshape_and_cache( key: torch.Tensor, @@ -22,6 +28,10 @@ def reshape_and_cache( from vllm import cache_ops cache_ops.reshape_and_cache(key, value, key_cache, value_cache, slots) + elif IS_XPU_SYSTEM: + ipex.llm.modules.PagedAttention.reshape_and_cache( + key, value, key_cache, value_cache, slots + ) else: raise ValueError("vllm is not supported on your system") @@ -58,6 +68,22 @@ def attention( block_size = value_cache.shape[3] num_seqs, num_heads, head_size = query.shape max_num_partitions = (max_s + _PARTITION_SIZE - 1) // _PARTITION_SIZE + if IS_XPU_SYSTEM: + query = query.contiguous() + return ipex.llm.modules.PagedAttention.single_query_cached_kv_attention( + out, + query, + key_cache, + value_cache, + kv_head_mapping, + softmax_scale, + block_tables, + input_lengths, + block_size, + max_s, + None, + ) + # NOTE(woosuk): We use a simple heuristic to decide whether to use # PagedAttention V1 or V2. If the number of partitions is 1, we use # V1 to avoid the overhead of reduction. Also, if the number of From a8fd4236eb3421c0c9e8845de5cd8183e9793ef2 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 26 Apr 2024 15:51:09 +0200 Subject: [PATCH 48/74] Blunder (#1815) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- .../models/flash_mistral.py | 39 ++++++------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/server/text_generation_server/models/flash_mistral.py b/server/text_generation_server/models/flash_mistral.py index e2ad78d9..6959e2ec 100644 --- a/server/text_generation_server/models/flash_mistral.py +++ b/server/text_generation_server/models/flash_mistral.py @@ -515,33 +515,18 @@ class BaseFlashMistral(FlashCausalLM): cuda_graph = self.cuda_graphs.get(padded_bs, None) if cu_seqlen_prefill is not None or cuda_graph is None: - - if cu_seqlen_prefill is None: - logits, speculative_logits = self.compiled_model( - input_ids=input_ids, - position_ids=position_ids, - cu_seqlen_prefill=cu_seqlen_prefill, - kv_cache=kv_cache, - block_tables=block_tables, - slots=slots, - input_lengths=input_lengths, - max_s=max_s, - prefill_cache_indices=batch.prefill_cache_indices, - lm_head_indices=lm_head_indices, - ) - else: - logits, speculative_logits = self.model.forward( - input_ids=input_ids, - position_ids=position_ids, - cu_seqlen_prefill=cu_seqlen_prefill, - kv_cache=kv_cache, - block_tables=block_tables, - slots=slots, - input_lengths=input_lengths, - max_s=max_s, - prefill_cache_indices=batch.prefill_cache_indices, - lm_head_indices=lm_head_indices, - ) + logits, speculative_logits = self.model.forward( + input_ids=input_ids, + position_ids=position_ids, + cu_seqlen_prefill=cu_seqlen_prefill, + kv_cache=kv_cache, + block_tables=block_tables, + slots=slots, + input_lengths=input_lengths, + max_s=max_s, + prefill_cache_indices=batch.prefill_cache_indices, + lm_head_indices=lm_head_indices, + ) if batch.prefill_cache_indices is not None: batch.prefill_cache_indices = None return logits, speculative_logits From 8b8e8f663286b8a5f4d5c5fb14cd02a60cb43652 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 26 Apr 2024 19:19:08 +0200 Subject: [PATCH 49/74] Fixing qwen2. (#1818) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- server/text_generation_server/models/flash_qwen2.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/server/text_generation_server/models/flash_qwen2.py b/server/text_generation_server/models/flash_qwen2.py index c3c63516..cb3cf6b0 100644 --- a/server/text_generation_server/models/flash_qwen2.py +++ b/server/text_generation_server/models/flash_qwen2.py @@ -4,7 +4,7 @@ import torch import torch.distributed from opentelemetry import trace -from transformers.models.qwen2 import Qwen2Tokenizer +from transformers import AutoTokenizer, AutoConfig from typing import Optional from text_generation_server.models.cache_manager import BLOCK_SIZE @@ -15,7 +15,6 @@ from text_generation_server.models.flash_mistral import ( from text_generation_server.models.custom_modeling.flash_qwen2_modeling import ( Qwen2ForCausalLM, ) -from transformers.models.qwen2 import Qwen2Config from text_generation_server.utils import ( initialize_torch_distributed, weight_files, @@ -42,7 +41,7 @@ class FlashQwen2(BaseFlashMistral): else: raise NotImplementedError("FlashQwen2 is only available on GPU") - tokenizer = Qwen2Tokenizer.from_pretrained( + tokenizer = AutoTokenizer.from_pretrained( model_id, revision=revision, padding_side="left", @@ -50,7 +49,7 @@ class FlashQwen2(BaseFlashMistral): trust_remote_code=trust_remote_code, ) - config = Qwen2Config.from_pretrained( + config = AutoConfig.from_pretrained( model_id, revision=revision, trust_remote_code=trust_remote_code ) config.quantize = quantize From e9f03f822a766f071620457bd977f7987e65b20e Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Fri, 26 Apr 2024 19:19:55 +0200 Subject: [PATCH 50/74] Dummy CI run. (#1817) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- .../models/flash_causal_lm.py | 13 ++++++++++--- server/text_generation_server/models/flash_llama.py | 1 + server/text_generation_server/models/flash_neox.py | 1 + server/text_generation_server/models/flash_rw.py | 1 + .../models/flash_santacoder.py | 1 + server/text_generation_server/utils/import_utils.py | 2 ++ server/text_generation_server/utils/layers.py | 1 + 7 files changed, 17 insertions(+), 3 deletions(-) diff --git a/server/text_generation_server/models/flash_causal_lm.py b/server/text_generation_server/models/flash_causal_lm.py index 94518b8f..a6d0204f 100644 --- a/server/text_generation_server/models/flash_causal_lm.py +++ b/server/text_generation_server/models/flash_causal_lm.py @@ -33,7 +33,12 @@ from text_generation_server.utils import StoppingCriteria, HeterogeneousNextToke from text_generation_server.utils.dist import MEMORY_FRACTION tracer = trace.get_tracer(__name__) -from text_generation_server.utils.import_utils import IS_CUDA_SYSTEM, IS_ROCM_SYSTEM, IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import ( + IS_CUDA_SYSTEM, + IS_ROCM_SYSTEM, + IS_XPU_SYSTEM, +) + @dataclass class FlashCausalLMBatch(Batch): @@ -788,14 +793,16 @@ class FlashCausalLM(Model): if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: total_free_memory, _ = torch.cuda.mem_get_info(self.device) - total_gpu_memory = torch.cuda.get_device_properties(self.device).total_memory + total_gpu_memory = torch.cuda.get_device_properties( + self.device + ).total_memory free_memory = max( 0, total_free_memory - (1 - MEMORY_FRACTION) * total_gpu_memory ) elif IS_XPU_SYSTEM: total_gpu_memory = torch.xpu.get_device_properties(self.device).total_memory - free_memory = int(total_gpu_memory *0.5) + free_memory = int(total_gpu_memory * 0.5) else: raise NotImplementedError("FlashModel is only available on GPU") diff --git a/server/text_generation_server/models/flash_llama.py b/server/text_generation_server/models/flash_llama.py index f37fc542..609a188d 100644 --- a/server/text_generation_server/models/flash_llama.py +++ b/server/text_generation_server/models/flash_llama.py @@ -20,6 +20,7 @@ tracer = trace.get_tracer(__name__) from text_generation_server.utils.import_utils import IS_XPU_SYSTEM + class FlashLlama(FlashCausalLM): def __init__( self, diff --git a/server/text_generation_server/models/flash_neox.py b/server/text_generation_server/models/flash_neox.py index 70c978de..f82e27db 100644 --- a/server/text_generation_server/models/flash_neox.py +++ b/server/text_generation_server/models/flash_neox.py @@ -15,6 +15,7 @@ from text_generation_server.utils import ( Weights, ) from text_generation_server.utils.import_utils import IS_XPU_SYSTEM + tracer = trace.get_tracer(__name__) diff --git a/server/text_generation_server/models/flash_rw.py b/server/text_generation_server/models/flash_rw.py index 6eb25f22..ccf38a0c 100644 --- a/server/text_generation_server/models/flash_rw.py +++ b/server/text_generation_server/models/flash_rw.py @@ -16,6 +16,7 @@ from text_generation_server.utils import ( Weights, ) from text_generation_server.utils.import_utils import IS_XPU_SYSTEM + tracer = trace.get_tracer(__name__) diff --git a/server/text_generation_server/models/flash_santacoder.py b/server/text_generation_server/models/flash_santacoder.py index 6147398a..e66f1bf8 100644 --- a/server/text_generation_server/models/flash_santacoder.py +++ b/server/text_generation_server/models/flash_santacoder.py @@ -19,6 +19,7 @@ from text_generation_server.utils import ( ) from text_generation_server.utils.import_utils import IS_XPU_SYSTEM + tracer = trace.get_tracer(__name__) diff --git a/server/text_generation_server/utils/import_utils.py b/server/text_generation_server/utils/import_utils.py index 7c0d8001..db205f4d 100644 --- a/server/text_generation_server/utils/import_utils.py +++ b/server/text_generation_server/utils/import_utils.py @@ -1,5 +1,6 @@ import torch + def is_xpu_available(): try: import intel_extension_for_pytorch @@ -8,6 +9,7 @@ def is_xpu_available(): return hasattr(torch, "xpu") and torch.xpu.is_available() + IS_ROCM_SYSTEM = torch.version.hip is not None IS_CUDA_SYSTEM = torch.version.cuda is not None IS_XPU_SYSTEM = is_xpu_available() diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index 638cb0a0..8c46ea49 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -8,6 +8,7 @@ from typing import List, Tuple, Optional from loguru import logger from functools import lru_cache +# Dummy comment. HAS_BITS_AND_BYTES = True try: import bitsandbytes as bnb From 007d5e54aa76be74925501011fa8029bc5034f89 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Sun, 28 Apr 2024 17:54:19 +0200 Subject: [PATCH 51/74] Changing the waiting_served_ratio default (stack more aggressively by default). (#1820) # What does this PR do? This should enable more aggressive by default stacking, meaning better throughput (in throughput constrained environements). Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- docs/source/basic_tutorials/launcher.md | 2 +- launcher/src/main.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/basic_tutorials/launcher.md b/docs/source/basic_tutorials/launcher.md index de7c995d..1e5b6fd2 100644 --- a/docs/source/basic_tutorials/launcher.md +++ b/docs/source/basic_tutorials/launcher.md @@ -162,7 +162,7 @@ Options: This setting is only applied if there is room in the batch as defined by `max_batch_total_tokens`. [env: WAITING_SERVED_RATIO=] - [default: 1.2] + [default: 0.3] ``` ## MAX_BATCH_PREFILL_TOKENS diff --git a/launcher/src/main.rs b/launcher/src/main.rs index f264e000..28226fb4 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -251,7 +251,7 @@ struct Args { /// /// This setting is only applied if there is room in the batch /// as defined by `max_batch_total_tokens`. - #[clap(default_value = "1.2", long, env)] + #[clap(default_value = "0.3", long, env)] waiting_served_ratio: f32, /// Limits the number of tokens for the prefill operation. From eade7377140a680a79bd2ce3f2d486314cf5a9b9 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Mon, 29 Apr 2024 17:23:40 +0200 Subject: [PATCH 52/74] Better graceful shutdown. (#1827) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- launcher/src/main.rs | 6 +----- server/text_generation_server/server.py | 23 ++++++++++++++++++----- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 28226fb4..ca6aa8dd 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -683,9 +683,7 @@ fn shard_manager( // We received a shutdown signal if shutdown.load(Ordering::SeqCst) { - p.kill().unwrap(); - let _ = p.wait(); - tracing::info!("Shard terminated"); + terminate("shard", p, Duration::from_secs(90)).unwrap(); return; } @@ -1245,7 +1243,6 @@ fn terminate(process_name: &str, mut process: Child, timeout: Duration) -> io::R signal::kill(Pid::from_raw(process.id() as i32), Signal::SIGTERM).unwrap(); tracing::info!("Waiting for {process_name} to gracefully shutdown"); - while terminate_time.elapsed() < timeout { if let Some(status) = process.try_wait()? { tracing::info!("{process_name} terminated"); @@ -1253,7 +1250,6 @@ fn terminate(process_name: &str, mut process: Child, timeout: Duration) -> io::R } sleep(Duration::from_millis(100)); } - tracing::info!("Killing {process_name}"); process.kill()?; diff --git a/server/text_generation_server/server.py b/server/text_generation_server/server.py index 495c2c0c..158966e3 100644 --- a/server/text_generation_server/server.py +++ b/server/text_generation_server/server.py @@ -2,6 +2,7 @@ import asyncio import os import torch import time +import signal from grpc import aio from loguru import logger @@ -19,6 +20,21 @@ from text_generation_server.tracing import UDSOpenTelemetryAioServerInterceptor from text_generation_server.models.idefics_causal_lm import IdeficsCausalLMBatch +class SignalHandler: + KEEP_PROCESSING = True + + def __init__(self): + signal.signal(signal.SIGINT, self.exit_gracefully) + signal.signal(signal.SIGTERM, self.exit_gracefully) + + def exit_gracefully(self, signum, frame): + print(f"Exiting gracefully: Signal {signum}") + self.KEEP_PROCESSING = False + + +signal_handler = SignalHandler() + + class TextGenerationService(generate_pb2_grpc.TextGenerationServiceServicer): def __init__( self, @@ -231,11 +247,8 @@ def serve( logger.info("Server started at {}".format(local_url)) - try: - await server.wait_for_termination() - except KeyboardInterrupt: - logger.info("Signal received. Shutting down") - await server.stop(0) + while signal_handler.KEEP_PROCESSING: + await asyncio.sleep(0.5) asyncio.run( serve_inner( From f75c1a5b264f5ec6b2e5e1b29a2070e6193cdf6d Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 30 Apr 2024 10:52:37 +0200 Subject: [PATCH 53/74] Prepare release. --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 593fd950..34e55652 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ members = [ resolver = "2" [workspace.package] -version = "2.0.1" +version = "2.0.2" edition = "2021" authors = ["Olivier Dehaene"] homepage = "https://github.com/huggingface/text-generation-inference" From 51ee60da74700d051a2b35ca236be53dac0caea2 Mon Sep 17 00:00:00 2001 From: Maziyar Panahi Date: Tue, 30 Apr 2024 11:07:17 +0200 Subject: [PATCH 54/74] Add the missing `tool_prompt` parameter to Python client (#1825) # What does this PR do? This PR adds the missing `tool_prompt` parameter in Python client ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [x] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. @Narsil --- clients/python/text_generation/client.py | 8 ++++++++ clients/python/text_generation/types.py | 2 ++ 2 files changed, 10 insertions(+) diff --git a/clients/python/text_generation/client.py b/clients/python/text_generation/client.py index 95d23901..0e86901d 100644 --- a/clients/python/text_generation/client.py +++ b/clients/python/text_generation/client.py @@ -80,6 +80,7 @@ class Client: temperature: Optional[float] = None, top_p: Optional[float] = None, tools: Optional[List[Tool]] = None, + tool_prompt: Optional[str] = None, tool_choice: Optional[str] = None, ): """ @@ -119,6 +120,8 @@ class Client: higher are kept for generation tools (`List[Tool]`): List of tools to use + tool_prompt (`str`): + A prompt to be appended before the tools tool_choice (`str`): The tool to use @@ -139,6 +142,7 @@ class Client: temperature=temperature, top_p=top_p, tools=tools, + tool_prompt=tool_prompt, tool_choice=tool_choice, ) if not stream: @@ -466,6 +470,7 @@ class AsyncClient: temperature: Optional[float] = None, top_p: Optional[float] = None, tools: Optional[List[Tool]] = None, + tool_prompt: Optional[str] = None, tool_choice: Optional[str] = None, ) -> Union[ChatComplete, AsyncIterator[ChatCompletionChunk]]: """ @@ -505,6 +510,8 @@ class AsyncClient: higher are kept for generation tools (`List[Tool]`): List of tools to use + tool_prompt (`str`): + A prompt to be appended before the tools tool_choice (`str`): The tool to use @@ -525,6 +532,7 @@ class AsyncClient: temperature=temperature, top_p=top_p, tools=tools, + tool_prompt=tool_prompt, tool_choice=tool_choice, ) if not stream: diff --git a/clients/python/text_generation/types.py b/clients/python/text_generation/types.py index cfa2a9ed..5e32bc6f 100644 --- a/clients/python/text_generation/types.py +++ b/clients/python/text_generation/types.py @@ -159,6 +159,8 @@ class ChatRequest(BaseModel): top_p: Optional[float] = None # List of tools to be used tools: Optional[List[Tool]] = None + # A prompt to be appended before the tools + tool_prompt: Optional[str] = None # Choice of tool to be used tool_choice: Optional[str] = None From 04d4765bad5707458955189fbf39e8b485de5cbd Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 30 Apr 2024 11:39:38 +0200 Subject: [PATCH 55/74] Small CI cleanup. (#1801) # What does this PR do? Just unifying some branches and making intentions clearer (no cuda graph when 0 all the way in the launcher) Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- launcher/src/main.rs | 12 ++++++++---- server/text_generation_server/models/globals.py | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/launcher/src/main.rs b/launcher/src/main.rs index ca6aa8dd..23944f40 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -1284,7 +1284,7 @@ fn main() -> Result<(), LauncherError> { tracing::info!("{}", env_runtime); } - tracing::info!("{:?}", args); + tracing::info!("{:#?}", args); let get_max_position_embeddings = || -> Result> { let model_id = args.model_id.clone(); @@ -1317,7 +1317,12 @@ fn main() -> Result<(), LauncherError> { (Some(max_position_embeddings), _) | (None, Some(max_position_embeddings)) => { if max_position_embeddings > max_default { let max = max_position_embeddings; - tracing::info!("Model supports up to {max} but tgi will now set its default to {max_default} instead. This is to save VRAM by refusing large prompts in order to allow more users on the same hardware. You can increase that size using `--max-batch-prefill-tokens={} --max-total-tokens={max} --max-input-tokens={}`.", max + 50, max - 1); + if args.max_input_tokens.is_none() + && args.max_total_tokens.is_none() + && args.max_batch_prefill_tokens.is_none() + { + tracing::info!("Model supports up to {max} but tgi will now set its default to {max_default} instead. This is to save VRAM by refusing large prompts in order to allow more users on the same hardware. You can increase that size using `--max-batch-prefill-tokens={} --max-total-tokens={max} --max-input-tokens={}`.", max + 50, max - 1); + } max_default } else { max_position_embeddings @@ -1389,8 +1394,7 @@ fn main() -> Result<(), LauncherError> { } let cuda_graphs = match (&args.cuda_graphs, &args.quantize) { - (Some(cuda_graphs), Some(_q)) => cuda_graphs.clone(), - (Some(cuda_graphs), None) => cuda_graphs.clone(), + (Some(cuda_graphs), _) => cuda_graphs.iter().cloned().filter(|&c| c > 0).collect(), #[allow(deprecated)] ( None, diff --git a/server/text_generation_server/models/globals.py b/server/text_generation_server/models/globals.py index b92aa65b..6f8d1017 100644 --- a/server/text_generation_server/models/globals.py +++ b/server/text_generation_server/models/globals.py @@ -4,7 +4,7 @@ import os MEM_POOL = torch.cuda.graph_pool_handle() if torch.cuda.is_available() else None # This is overridden by the cli cuda_graphs = os.getenv("CUDA_GRAPHS") -if torch.cuda.is_available() and cuda_graphs is not None and cuda_graphs != "0": +if cuda_graphs is not None: try: cuda_graphs = [int(item) for item in cuda_graphs.split(",")] except Exception as e: From 743ecbca3aa5a708f438ae473f17ede3c15452b6 Mon Sep 17 00:00:00 2001 From: Brandon Royal <2762697+brandonroyal@users.noreply.github.com> Date: Tue, 30 Apr 2024 05:39:52 -0400 Subject: [PATCH 56/74] Add reference to TPU support (#1760) # What does this PR do? This PR makes a small addition to the readme that reference new TGI support for TPUs via Optimum TPU (https://huggingface.co/docs/optimum-tpu/howto/serving) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ad66e328..74616748 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ Text Generation Inference (TGI) is a toolkit for deploying and serving Large Lan - [Inferentia](https://github.com/huggingface/optimum-neuron/tree/main/text-generation-inference) - [Intel GPU](https://github.com/huggingface/text-generation-inference/pull/1475) - [Gaudi](https://github.com/huggingface/tgi-gaudi) +- [Google TPU](https://huggingface.co/docs/optimum-tpu/howto/serving) ## Get Started From 8332fc490804a83d3ac050bc825f3175c4b7fc51 Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Tue, 30 Apr 2024 11:45:26 +0200 Subject: [PATCH 57/74] fix: use get_speculate to the number of layers (#1737) --- server/text_generation_server/utils/layers.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index 8c46ea49..6e4a13cd 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -8,7 +8,8 @@ from typing import List, Tuple, Optional from loguru import logger from functools import lru_cache -# Dummy comment. +from text_generation_server.utils.speculate import get_speculate + HAS_BITS_AND_BYTES = True try: import bitsandbytes as bnb @@ -445,7 +446,7 @@ class MedusaModel(torch.nn.Module): self.heads = torch.nn.ModuleList( [ MedusaHead(config, medusa_config, prefix=f"{i}", weights=weights) - for i in range(medusa_config["medusa_num_heads"]) + for i in range(get_speculate()) ] ) @@ -542,7 +543,7 @@ class MedusaHeadV2(nn.Module): ) routing[k] = filename - self.n_medusa_heads = medusa_config["medusa_num_heads"] + self.n_medusa_heads = get_speculate() assert medusa_config["medusa_num_layers"] == 1 self.linear = TensorParallelColumnLinear.load_multi( From f6615080b9290a89d9e83d29257d510c8c994762 Mon Sep 17 00:00:00 2001 From: drbh Date: Tue, 30 Apr 2024 05:45:49 -0400 Subject: [PATCH 58/74] feat: add how it works section (#1773) This PR adds a short "how it works" section to guidance and includes a mention to the outlines library that enables grammars/tools *and a small formatting change --------- Co-authored-by: Mishig --- docs/source/conceptual/guidance.md | 108 +++++++++++++++-------------- 1 file changed, 56 insertions(+), 52 deletions(-) diff --git a/docs/source/conceptual/guidance.md b/docs/source/conceptual/guidance.md index cecb3f03..d3ec5fb9 100644 --- a/docs/source/conceptual/guidance.md +++ b/docs/source/conceptual/guidance.md @@ -12,6 +12,10 @@ Before we jump into the deep end, ensure your system is using TGI version `1.4.3 If you're not up to date, grab the latest version and let's get started! +## How it works + +TGI leverages the [outlines](https://github.com/outlines-dev/outlines) library to efficiently parse and compile the grammatical structures and tools specified by users. This integration transforms the defined grammars into an intermediate representation that acts as a framework to guide and constrain content generation, ensuring that outputs adhere to the specified grammatical rules. + ## Table of Contents 📚 ### Grammar and Constraints @@ -270,58 +274,58 @@ curl localhost:3000/v1/chat/completions \
Tools used in example below - ```python - tools = [ - { - "type": "function", - "function": { - "name": "get_current_weather", - "description": "Get the current weather", - "parameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "The city and state, e.g. San Francisco, CA", - }, - "format": { - "type": "string", - "enum": ["celsius", "fahrenheit"], - "description": "The temperature unit to use. Infer this from the users location.", - }, - }, - "required": ["location", "format"], - }, - }, - }, - { - "type": "function", - "function": { - "name": "get_n_day_weather_forecast", - "description": "Get an N-day weather forecast", - "parameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "The city and state, e.g. San Francisco, CA", - }, - "format": { - "type": "string", - "enum": ["celsius", "fahrenheit"], - "description": "The temperature unit to use. Infer this from the users location.", - }, - "num_days": { - "type": "integer", - "description": "The number of days to forecast", - }, - }, - "required": ["location", "format", "num_days"], - }, - }, - } - ] - ``` +```python + tools = [ + { + "type": "function", + "function": { + "name": "get_current_weather", + "description": "Get the current weather", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA", + }, + "format": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "The temperature unit to use. Infer this from the users location.", + }, + }, + "required": ["location", "format"], + }, + }, + }, + { + "type": "function", + "function": { + "name": "get_n_day_weather_forecast", + "description": "Get an N-day weather forecast", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA", + }, + "format": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "The temperature unit to use. Infer this from the users location.", + }, + "num_days": { + "type": "integer", + "description": "The number of days to forecast", + }, + }, + "required": ["location", "format", "num_days"], + }, + }, + } + ] +```
From 9192de57cc6802508db41c489a9e0ee9df569de5 Mon Sep 17 00:00:00 2001 From: Martin Iglesias Goyanes Date: Tue, 30 Apr 2024 12:13:23 +0200 Subject: [PATCH 59/74] Fixing frequency penalty (#1811) Thank you so much for the work you are doing, this is my little contribution to this great thing you have built. I hope it is useful and helpful, please don't hesitate to discuss any matters that are not clear! I am basing my implementation of frequency penalty on OpenAI's implementation: https://platform.openai.com/docs/guides/text-generation/parameter-details The problem I see with TGI's current implementation is that is not taking into account the frequency of tokens which have already been sampled in the current generation stream. Also, the scaling is of the adjusted token logits is done differently for positive and negative logits. While in OpenAI's implementation token frequency is taking into account and the scaling is always done with a subtraction (if penalty is positive) or add operation (if penalty is negative). This leads to corrupt generations as I mentioned in issue #1810 . Moreover, after my tests, other issues are also gone like the one about some request's with ``penalty_frequency = 1.0`` overruling other requests (with ``frequency_penalty = 0.0``) in the same batch and therefore corrupting all generations in the batch. Basically, padding does not affect this implementation so I believe this ``score *= input_ids.ne(0)`` is not needed anymore. Frequency penalty | -1.0 | 0.0 | 1.0 -- | -- | -- | -- Before my change | https://paste.mozilla.org/JxqGJkWY | https://paste.mozilla.org/hrztJ56h | https://paste.mozilla.org/pBSEH2zw After my change | https://paste.mozilla.org/7gXCi7zo | https://paste.mozilla.org/ZR9rJ92g | https://paste.mozilla.org/gHaD2YnC --------- Co-authored-by: martini --- .gitignore | 2 ++ .../utils/logits_process.py | 23 +++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index b3ca772b..2ac2f6b4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ server/exllama_kernels/exllama_kernels/hip_func/ *_hip.cuh server/exllama_kernels/exllama_kernels/hip_buffers.cuh server/exllama_kernels/exllama_kernels/exllama_ext_hip.cpp + +data/ diff --git a/server/text_generation_server/utils/logits_process.py b/server/text_generation_server/utils/logits_process.py index 2decee53..6b915437 100644 --- a/server/text_generation_server/utils/logits_process.py +++ b/server/text_generation_server/utils/logits_process.py @@ -151,7 +151,8 @@ class FrequencyPenaltyLogitsProcessor(LogitsProcessor): class HeterogeneousFrequencyPenaltyLogitsProcessor(LogitsProcessor): r""" - Frequency penalty as defined by OpenAI + Frequency penalty as defined by OpenAI in + https://platform.openai.com/docs/guides/text-generation/parameter-details Args: frequency_penalty (`List[float]`): @@ -165,15 +166,19 @@ class HeterogeneousFrequencyPenaltyLogitsProcessor(LogitsProcessor): ).unsqueeze(1) def __call__(self, input_ids: torch.Tensor, scores: torch.Tensor) -> torch.Tensor: - score = torch.gather(scores, 1, input_ids) - # if score < 0 then penalty has to be multiplied to reduce the previous token probability - score = -torch.where( - score < 0, score * self.penalty_tensor, score / self.penalty_tensor - ) - # set score to 0 where input_ids is a padding token - score *= input_ids.ne(0) + batch_size, input_size = input_ids.size() + vocab_size = scores.size(1) - return scores.scatter_add_(1, input_ids, score) + # Calculate the frequency for each token so far + token_freq = torch.zeros(batch_size, vocab_size, device=input_ids.device) + token_freq.scatter_add_( + 1, input_ids, torch.ones_like(input_ids, dtype=torch.float) + ) + token_freq /= input_size + + # Apply the frequency penalty to logits + scores -= token_freq * self.penalty_tensor + return scores def filter(self, indices): self.penalty = [self.penalty[i] for i in indices] From b2c982750a398a562fe7e442d289d629e62b4303 Mon Sep 17 00:00:00 2001 From: drbh Date: Tue, 30 Apr 2024 06:14:39 -0400 Subject: [PATCH 60/74] feat: add vlm docs and simple examples (#1812) This PR start to add documentation for visual language models --- docs/source/_toctree.yml | 3 + .../basic_tutorials/visual_language_models.md | 170 ++++++++++++++++++ 2 files changed, 173 insertions(+) create mode 100644 docs/source/basic_tutorials/visual_language_models.md diff --git a/docs/source/_toctree.yml b/docs/source/_toctree.yml index 1598c248..79a2102f 100644 --- a/docs/source/_toctree.yml +++ b/docs/source/_toctree.yml @@ -25,6 +25,8 @@ title: Non-core Model Serving - local: basic_tutorials/safety title: Safety + - local: basic_tutorials/visual_language_models + title: Visual Language Models title: Tutorials - sections: - local: conceptual/streaming @@ -43,4 +45,5 @@ title: Speculation (Medusa, ngram) - local: conceptual/guidance title: Guidance, JSON, tools (using outlines) + title: Conceptual Guides diff --git a/docs/source/basic_tutorials/visual_language_models.md b/docs/source/basic_tutorials/visual_language_models.md new file mode 100644 index 00000000..e804ef09 --- /dev/null +++ b/docs/source/basic_tutorials/visual_language_models.md @@ -0,0 +1,170 @@ +# Vision Language Model Inference in TGI + +Visual Language Model (VLM) are models that consume both image and text inputs to generate text. + +VLM's are trained on a combination of image and text data and can handle a wide range of tasks, such as image captioning, visual question answering, and visual dialog. + +> What distinguishes VLMs from other text and image models is their ability to handle long context and generate text that is coherent and relevant to the image even after multiple turns or in some cases, multiple images. + +Below are couple of common use cases for vision language models: + +- **Image Captioning**: Given an image, generate a caption that describes the image. +- **Visual Question Answering (VQA)**: Given an image and a question about the image, generate an answer to the question. +- **Mulimodal Dialog**: Generate response to multiple turns of images and conversations. +- **Image Information Retrieval**: Given an image, retrieve information from the image. + +## How to Use a Vision Language Model? + +### Hugging Face Hub Python Library + +To infer with vision language models through Python, you can use the [`huggingface_hub`](https://pypi.org/project/huggingface-hub/) library. The `InferenceClient` class provides a simple way to interact with the [Inference API](https://huggingface.co/docs/api-inference/index). Images can be passed as URLs or base64-encoded strings. The `InferenceClient` will automatically detect the image format. + +```python +from huggingface_hub import InferenceClient + +client = InferenceClient("http://127.0.0.1:3000") +image = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png" +prompt = f"![]({image})What is this a picture of?\n\n" +for token in client.text_generation(prompt, max_new_tokens=16, stream=True): + print(token) + +# This is a picture of an anthropomorphic rabbit in a space suit. +``` + +```python +from huggingface_hub import InferenceClient +import base64 +import requests +import io + +client = InferenceClient("http://127.0.0.1:3000") + +# read image from local file +image_path = "rabbit.png" +with open(image_path, "rb") as f: + image = base64.b64encode(f.read()).decode("utf-8") + +image = f"data:image/png;base64,{image}" +prompt = f"![]({image})What is this a picture of?\n\n" + +for token in client.text_generation(prompt, max_new_tokens=10, stream=True): + print(token) + +# This is a picture of an anthropomorphic rabbit in a space suit. +``` + +If you want additional details, you can add `details=True`. In this case, you get a `TextGenerationStreamResponse` which contains additional information such as the probabilities and the tokens. For the final response in the stream, it also returns the full generated text. + +### Inference Through Sending `cURL` Requests + +To use the `generate_stream` endpoint with curl, you can add the `-N` flag. This flag disables curl default buffering and shows data as it arrives from the server. + +```bash +curl -N 127.0.0.1:3000/generate_stream \ + -X POST \ + -d '{"inputs":"![](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png)What is this a picture of?\n\n","parameters":{"max_new_tokens":16, "seed": 42}}' \ + -H 'Content-Type: application/json' + +# ... +# data:{"index":16,"token":{"id":28723,"text":".","logprob":-0.6196289,"special":false},"generated_text":"This is a picture of an anthropomorphic rabbit in a space suit.","details":null} +``` + +### Inference Through JavaScript + +First, we need to install the `@huggingface/inference` library. + +```bash +npm install @huggingface/inference +``` + +If you're using the free Inference API, you can use [Huggingface.js](https://huggingface.co/docs/huggingface.js/inference/README)'s `HfInference`. If you're using inference endpoints, you can use `HfInferenceEndpoint` class to easily interact with the Inference API. + +We can create a `HfInferenceEndpoint` providing our endpoint URL and We can create a `HfInferenceEndpoint` providing our endpoint URL and [Hugging Face access token](https://huggingface.co/settings/tokens). + +```js +import { HfInferenceEndpoint } from "@huggingface/inference"; + +const hf = new HfInferenceEndpoint("http://127.0.0.1:3000", "HF_TOKEN"); + +const prompt = + "![](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png)What is this a picture of?\n\n"; + +const stream = hf.textGenerationStream({ + inputs: prompt, + parameters: { max_new_tokens: 16, seed: 42 }, +}); +for await (const r of stream) { + // yield the generated token + process.stdout.write(r.token.text); +} + +// This is a picture of an anthropomorphic rabbit in a space suit. +``` + +## Combining Vision Language Models with Other Features + +VLMs in TGI have several advantages, for example these models can be used in tandem with other features for more complex tasks. For example, you can use VLMs with [Guided Generation](/docs/conceptual/guided-generation) to generate specific JSON data from an image. + +
+ +
+ +For example we can extract information from the rabbit image and generate a JSON object with the location, activity, number of animals seen, and the animals seen. That would look like this: + +```json +{ + "activity": "Standing", + "animals": ["Rabbit"], + "animals_seen": 1, + "location": "Rocky surface with mountains in the background and a red light on the rabbit's chest" +} +``` + +All we need to do is provide a JSON schema to the VLM model and it will generate the JSON object for us. + +```bash +curl localhost:3000/generate \ + -X POST \ + -H 'Content-Type: application/json' \ + -d '{ + "inputs":"![](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png)What is this a picture of?\n\n", + "parameters": { + "max_new_tokens": 100, + "seed": 42, + "grammar": { + "type": "json", + "value": { + "properties": { + "location": { + "type": "string" + }, + "activity": { + "type": "string" + }, + "animals_seen": { + "type": "integer", + "minimum": 1, + "maximum": 5 + }, + "animals": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["location", "activity", "animals_seen", "animals"] + } + } + } +}' + +# { +# "generated_text": "{ \"activity\": \"Standing\", \"animals\": [ \"Rabbit\" ], \"animals_seen\": 1, \"location\": \"Rocky surface with mountains in the background and a red light on the rabbit's chest\" }" +# } +``` + +Want to learn more about how Vision Language Models work? Check out the [awesome blog post on the topic](https://huggingface.co/blog/vlms). From c99ecd77ecc079a67c176b46b61c7a2d85ac068f Mon Sep 17 00:00:00 2001 From: drbh Date: Tue, 30 Apr 2024 06:18:32 -0400 Subject: [PATCH 61/74] Handle images in chat api (#1828) This PR allows for messages to be formatted as simple strings, or as an array of objects including image urls. This is done by formatting content arrays into a simple string. Example using `llava-hf/llava-v1.6-mistral-7b-hf` ```bash curl localhost: 3000/v1/chat/completions \ -X POST \ -H 'Content-Type: application/json' \ -d '{ "model": "tgi", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Whats in this image?" }, { "type": "image_url", "image_url": { "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png" } } ] } ], "stream": false, "max_tokens": 20, "seed": 42 }' ``` is equivlant to this more simple request ```bash curl localhost: 3000/v1/chat/completions \ -X POST \ -H 'Content-Type: application/json' \ -d '{ "model": "tgi", "messages": [ { "role": "user", "content": "Whats in this image?\n![](https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png)" } ], "stream": false, "max_tokens": 20, "seed": 42 }' ``` output ``` # {"id":"","object":"text_completion","created":1714406985,"model":"llava-hf/llava-v1.6-mistral-7b-hf","system_fingerprint":"2.0.1-native","choices":[{"index":0,"message":{"role":"assistant","content":" This is an illustration of an anthropomorphic rabbit in a spacesuit, standing on what"},"logprobs":null,"finish_reason":"length"}],"usage":{"prompt_tokens":2945,"completion_tokens":20,"total_tokens":2965}}% ``` --------- Co-authored-by: Nicolas Patry --- router/src/lib.rs | 65 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/router/src/lib.rs b/router/src/lib.rs index 9b9097f6..fac4c14e 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -884,12 +884,75 @@ pub(crate) struct ToolCall { pub function: FunctionDefinition, } -#[derive(Clone, Deserialize, ToSchema, Serialize)] +#[derive(Clone, Deserialize, Serialize, ToSchema, Default, Debug)] +pub(crate) struct Text { + #[serde(default)] + pub text: String, +} + +#[derive(Clone, Deserialize, Serialize, ToSchema, Default, Debug)] +pub(crate) struct ImageUrl { + #[serde(default)] + pub url: String, +} + +#[derive(Clone, Deserialize, Serialize, ToSchema, Default, Debug)] +pub(crate) struct Content { + pub r#type: String, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub text: Option, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image_url: Option, +} + +mod message_content_serde { + use super::*; + use serde::de; + use serde::Deserializer; + use serde_json::Value; + + pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> + where + D: Deserializer<'de>, + { + let value = Value::deserialize(deserializer)?; + match value { + Value::String(s) => Ok(Some(s)), + Value::Array(arr) => { + let results: Result, _> = arr + .into_iter() + .map(|v| { + let content: Content = + serde_json::from_value(v).map_err(de::Error::custom)?; + match content.r#type.as_str() { + "text" => Ok(content.text.unwrap_or_default()), + "image_url" => { + if let Some(url) = content.image_url { + Ok(format!("![]({})", url.url)) + } else { + Ok(String::new()) + } + } + _ => Err(de::Error::custom("invalid content type")), + } + }) + .collect(); + + results.map(|strings| Some(strings.join(""))) + } + Value::Null => Ok(None), + _ => Err(de::Error::custom("invalid token format")), + } + } +} + +#[derive(Clone, Deserialize, ToSchema, Serialize, Debug)] pub(crate) struct Message { #[schema(example = "user")] pub role: String, #[serde(skip_serializing_if = "Option::is_none")] #[schema(example = "My name is David and I")] + #[serde(deserialize_with = "message_content_serde::deserialize")] pub content: Option, #[serde(default, skip_serializing_if = "Option::is_none")] #[schema(example = "\"David\"")] From b4ef038837c9264fa7665d5a6baf130f8dbb145b Mon Sep 17 00:00:00 2001 From: OlivierDehaene Date: Tue, 30 Apr 2024 14:04:28 +0200 Subject: [PATCH 62/74] chore: update torch (#1730) Co-authored-by: Nicolas Patry --- Dockerfile | 7 +++++-- server/Makefile-vllm | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index c2ae4c85..333f7c91 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,7 +39,7 @@ RUN cargo build --release # Adapted from: https://github.com/pytorch/pytorch/blob/master/Dockerfile FROM nvidia/cuda:12.1.0-devel-ubuntu22.04 as pytorch-install -ARG PYTORCH_VERSION=2.1.1 +ARG PYTORCH_VERSION=2.3.0 ARG PYTHON_VERSION=3.10 # Keep in sync with `server/pyproject.toml ARG CUDA_VERSION=12.1 @@ -149,6 +149,8 @@ FROM kernel-builder as vllm-builder WORKDIR /usr/src +ENV TORCH_CUDA_ARCH_LIST="7.0 7.5 8.0 8.6 8.9 9.0+PTX" + COPY server/Makefile-vllm Makefile # Build specific version of vllm @@ -210,7 +212,7 @@ COPY --from=vllm-builder /usr/src/vllm/build/lib.linux-x86_64-cpython-310 /opt/c COPY --from=mamba-builder /usr/src/mamba/build/lib.linux-x86_64-cpython-310/ /opt/conda/lib/python3.10/site-packages COPY --from=mamba-builder /usr/src/causal-conv1d/build/lib.linux-x86_64-cpython-310/ /opt/conda/lib/python3.10/site-packages -# Install vllm/flash-attention dependencies +# Install flash-attention dependencies RUN pip install einops --no-cache-dir # Install server @@ -246,6 +248,7 @@ ENTRYPOINT ["./entrypoint.sh"] FROM base COPY ./tgi-entrypoint.sh /tgi-entrypoint.sh +RUN chmod +x /tgi-entrypoint.sh ENTRYPOINT ["/tgi-entrypoint.sh"] CMD ["--json-output"] diff --git a/server/Makefile-vllm b/server/Makefile-vllm index ada484a6..9999ad89 100644 --- a/server/Makefile-vllm +++ b/server/Makefile-vllm @@ -4,7 +4,7 @@ vllm-cuda: git clone https://github.com/OlivierDehaene/vllm.git vllm build-vllm-cuda: vllm-cuda - cd vllm && git fetch && git checkout 4bec8cee87f6bb8cebaec297029713cd2082e0b2 + cd vllm && git fetch && git checkout 3d4693536dcb69f036c26b016a35839b99ebed59 cd vllm && python setup.py build install-vllm-cuda: build-vllm-cuda From dccab72549635c7eb5ddb17f43f0b7cdff07c214 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Tue, 30 Apr 2024 18:15:35 +0200 Subject: [PATCH 63/74] (chore): torch 2.3.0 (#1833) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- server/Makefile-vllm | 4 +- server/poetry.lock | 922 ++++++++++++++++++----------------- server/pyproject.toml | 6 +- server/requirements_cuda.txt | 16 +- server/requirements_rocm.txt | 16 +- 5 files changed, 507 insertions(+), 457 deletions(-) diff --git a/server/Makefile-vllm b/server/Makefile-vllm index 9999ad89..6f36c679 100644 --- a/server/Makefile-vllm +++ b/server/Makefile-vllm @@ -1,10 +1,10 @@ vllm-cuda: # Clone vllm pip install -U ninja packaging --no-cache-dir - git clone https://github.com/OlivierDehaene/vllm.git vllm + git clone https://github.com/Narsil/vllm.git vllm build-vllm-cuda: vllm-cuda - cd vllm && git fetch && git checkout 3d4693536dcb69f036c26b016a35839b99ebed59 + cd vllm && git fetch && git checkout b5dfc61db88a81069e45b44f7cc99bd9e62a60fa cd vllm && python setup.py build install-vllm-cuda: build-vllm-cuda diff --git a/server/poetry.lock b/server/poetry.lock index aea9c4c2..3a554af0 100644 --- a/server/poetry.lock +++ b/server/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. [[package]] name = "accelerate" @@ -359,45 +359,43 @@ files = [ [[package]] name = "datasets" -version = "2.18.0" +version = "2.14.4" description = "HuggingFace community-driven open-source library of datasets" optional = true python-versions = ">=3.8.0" files = [ - {file = "datasets-2.18.0-py3-none-any.whl", hash = "sha256:f1bbf0e2896917a914de01cbd37075b14deea3837af87ad0d9f697388ccaeb50"}, - {file = "datasets-2.18.0.tar.gz", hash = "sha256:cdf8b8c6abf7316377ba4f49f9589a4c74556d6b481afd0abd2284f3d69185cb"}, + {file = "datasets-2.14.4-py3-none-any.whl", hash = "sha256:29336bd316a7d827ccd4da2236596279b20ca2ac78f64c04c9483da7cbc2459b"}, + {file = "datasets-2.14.4.tar.gz", hash = "sha256:ef29c2b5841de488cd343cfc26ab979bff77efa4d2285af51f1ad7db5c46a83b"}, ] [package.dependencies] aiohttp = "*" -dill = ">=0.3.0,<0.3.9" -filelock = "*" -fsspec = {version = ">=2023.1.0,<=2024.2.0", extras = ["http"]} -huggingface-hub = ">=0.19.4" +dill = ">=0.3.0,<0.3.8" +fsspec = {version = ">=2021.11.1", extras = ["http"]} +huggingface-hub = ">=0.14.0,<1.0.0" multiprocess = "*" numpy = ">=1.17" packaging = "*" pandas = "*" -pyarrow = ">=12.0.0" -pyarrow-hotfix = "*" +pyarrow = ">=8.0.0" pyyaml = ">=5.1" requests = ">=2.19.0" tqdm = ">=4.62.1" xxhash = "*" [package.extras] -apache-beam = ["apache-beam (>=2.26.0)"] +apache-beam = ["apache-beam (>=2.26.0,<2.44.0)"] audio = ["librosa", "soundfile (>=0.12.1)"] benchmarks = ["tensorflow (==2.12.0)", "torch (==2.0.1)", "transformers (==4.30.1)"] -dev = ["Pillow (>=6.2.1)", "absl-py", "apache-beam (>=2.26.0)", "elasticsearch (<8.0.0)", "faiss-cpu (>=1.6.4)", "jax (>=0.3.14)", "jaxlib (>=0.3.14)", "joblib (<1.3.0)", "joblibspark", "librosa", "lz4", "py7zr", "pyspark (>=3.4)", "pytest", "pytest-datadir", "pytest-xdist", "rarfile (>=4.0)", "ruff (>=0.3.0)", "s3fs", "s3fs (>=2021.11.1)", "soundfile (>=0.12.1)", "sqlalchemy", "tensorflow (>=2.2.0,!=2.6.0,!=2.6.1)", "tensorflow (>=2.3,!=2.6.0,!=2.6.1)", "tensorflow-macos", "tiktoken", "torch", "torch (>=2.0.0)", "transformers", "typing-extensions (>=4.6.1)", "zstandard"] +dev = ["Pillow (>=6.2.1)", "absl-py", "apache-beam (>=2.26.0,<2.44.0)", "black (>=23.1,<24.0)", "elasticsearch (<8.0.0)", "faiss-cpu (>=1.6.4)", "joblib (<1.3.0)", "joblibspark", "librosa", "lz4", "py7zr", "pyspark (>=3.4)", "pytest", "pytest-datadir", "pytest-xdist", "pyyaml (>=5.3.1)", "rarfile (>=4.0)", "ruff (>=0.0.241)", "s3fs", "s3fs (>=2021.11.1)", "soundfile (>=0.12.1)", "sqlalchemy (<2.0.0)", "tensorflow (>=2.2.0,!=2.6.0,!=2.6.1)", "tensorflow (>=2.3,!=2.6.0,!=2.6.1)", "tensorflow-macos", "tiktoken", "torch", "transformers", "zstandard"] docs = ["s3fs", "tensorflow (>=2.2.0,!=2.6.0,!=2.6.1)", "tensorflow-macos", "torch", "transformers"] -jax = ["jax (>=0.3.14)", "jaxlib (>=0.3.14)"] +jax = ["jax (>=0.2.8,!=0.3.2,<=0.3.25)", "jaxlib (>=0.1.65,<=0.3.25)"] metrics-tests = ["Werkzeug (>=1.0.1)", "accelerate", "bert-score (>=0.3.6)", "jiwer", "langdetect", "mauve-text", "nltk", "requests-file (>=1.5.1)", "rouge-score", "sacrebleu", "sacremoses", "scikit-learn", "scipy", "sentencepiece", "seqeval", "six (>=1.15.0,<1.16.0)", "spacy (>=3.0.0)", "texttable (>=1.6.3)", "tldextract", "tldextract (>=3.1.0)", "toml (>=0.10.1)", "typer (<0.5.0)"] -quality = ["ruff (>=0.3.0)"] +quality = ["black (>=23.1,<24.0)", "pyyaml (>=5.3.1)", "ruff (>=0.0.241)"] s3 = ["s3fs"] tensorflow = ["tensorflow (>=2.2.0,!=2.6.0,!=2.6.1)", "tensorflow-macos"] tensorflow-gpu = ["tensorflow-gpu (>=2.2.0,!=2.6.0,!=2.6.1)"] -tests = ["Pillow (>=6.2.1)", "absl-py", "apache-beam (>=2.26.0)", "elasticsearch (<8.0.0)", "faiss-cpu (>=1.6.4)", "jax (>=0.3.14)", "jaxlib (>=0.3.14)", "joblib (<1.3.0)", "joblibspark", "librosa", "lz4", "py7zr", "pyspark (>=3.4)", "pytest", "pytest-datadir", "pytest-xdist", "rarfile (>=4.0)", "s3fs (>=2021.11.1)", "soundfile (>=0.12.1)", "sqlalchemy", "tensorflow (>=2.3,!=2.6.0,!=2.6.1)", "tensorflow-macos", "tiktoken", "torch (>=2.0.0)", "transformers", "typing-extensions (>=4.6.1)", "zstandard"] +tests = ["Pillow (>=6.2.1)", "absl-py", "apache-beam (>=2.26.0,<2.44.0)", "elasticsearch (<8.0.0)", "faiss-cpu (>=1.6.4)", "joblib (<1.3.0)", "joblibspark", "librosa", "lz4", "py7zr", "pyspark (>=3.4)", "pytest", "pytest-datadir", "pytest-xdist", "rarfile (>=4.0)", "s3fs (>=2021.11.1)", "soundfile (>=0.12.1)", "sqlalchemy (<2.0.0)", "tensorflow (>=2.3,!=2.6.0,!=2.6.1)", "tensorflow-macos", "tiktoken", "torch", "transformers", "zstandard"] torch = ["torch"] vision = ["Pillow (>=6.2.1)"] @@ -420,18 +418,17 @@ dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] [[package]] name = "dill" -version = "0.3.8" +version = "0.3.7" description = "serialize all of Python" optional = true -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, - {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, + {file = "dill-0.3.7-py3-none-any.whl", hash = "sha256:76b122c08ef4ce2eedcd4d1abd8e641114bfc6c2867f49f3c41facf65bf19f5e"}, + {file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"}, ] [package.extras] graph = ["objgraph (>=1.7.2)"] -profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "diskcache" @@ -457,13 +454,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.2.0" +version = "1.2.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, - {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, ] [package.extras] @@ -471,13 +468,13 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.13.4" +version = "3.14.0" description = "A platform independent file lock." optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.13.4-py3-none-any.whl", hash = "sha256:404e5e9253aa60ad457cae1be07c0f0ca90a63931200a47d9b6a6af84fd7b45f"}, - {file = "filelock-3.13.4.tar.gz", hash = "sha256:d13f466618bfde72bd2c18255e269f72542c6e70e7bac83a0232d6b1cc5c8cf4"}, + {file = "filelock-3.14.0-py3-none-any.whl", hash = "sha256:43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f"}, + {file = "filelock-3.14.0.tar.gz", hash = "sha256:6ea72da3be9b8c82afd3edcf99f2fffbb5076335a5ae4d03248bb5b6c3eae78a"}, ] [package.extras] @@ -573,13 +570,13 @@ files = [ [[package]] name = "fsspec" -version = "2024.2.0" +version = "2024.3.1" description = "File-system specification" optional = false python-versions = ">=3.8" files = [ - {file = "fsspec-2024.2.0-py3-none-any.whl", hash = "sha256:817f969556fa5916bc682e02ca2045f96ff7f586d45110fcb76022063ad2c7d8"}, - {file = "fsspec-2024.2.0.tar.gz", hash = "sha256:b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84"}, + {file = "fsspec-2024.3.1-py3-none-any.whl", hash = "sha256:918d18d41bf73f0e2b261824baeb1b124bcf771767e3a26425cd7dec3332f512"}, + {file = "fsspec-2024.3.1.tar.gz", hash = "sha256:f39780e282d7d117ffb42bb96992f8a90795e4d0fb0f661a70ca39fe9c43ded9"}, ] [package.dependencies] @@ -645,166 +642,166 @@ testing = ["protobuf (>=4.21.9)"] [[package]] name = "grpcio" -version = "1.62.1" +version = "1.62.2" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.7" files = [ - {file = "grpcio-1.62.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:179bee6f5ed7b5f618844f760b6acf7e910988de77a4f75b95bbfaa8106f3c1e"}, - {file = "grpcio-1.62.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:48611e4fa010e823ba2de8fd3f77c1322dd60cb0d180dc6630a7e157b205f7ea"}, - {file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:b2a0e71b0a2158aa4bce48be9f8f9eb45cbd17c78c7443616d00abbe2a509f6d"}, - {file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fbe80577c7880911d3ad65e5ecc997416c98f354efeba2f8d0f9112a67ed65a5"}, - {file = "grpcio-1.62.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58f6c693d446964e3292425e1d16e21a97a48ba9172f2d0df9d7b640acb99243"}, - {file = "grpcio-1.62.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:77c339403db5a20ef4fed02e4d1a9a3d9866bf9c0afc77a42234677313ea22f3"}, - {file = "grpcio-1.62.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b5a4ea906db7dec694098435d84bf2854fe158eb3cd51e1107e571246d4d1d70"}, - {file = "grpcio-1.62.1-cp310-cp310-win32.whl", hash = "sha256:4187201a53f8561c015bc745b81a1b2d278967b8de35f3399b84b0695e281d5f"}, - {file = "grpcio-1.62.1-cp310-cp310-win_amd64.whl", hash = "sha256:844d1f3fb11bd1ed362d3fdc495d0770cfab75761836193af166fee113421d66"}, - {file = "grpcio-1.62.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:833379943d1728a005e44103f17ecd73d058d37d95783eb8f0b28ddc1f54d7b2"}, - {file = "grpcio-1.62.1-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:c7fcc6a32e7b7b58f5a7d27530669337a5d587d4066060bcb9dee7a8c833dfb7"}, - {file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:fa7d28eb4d50b7cbe75bb8b45ed0da9a1dc5b219a0af59449676a29c2eed9698"}, - {file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48f7135c3de2f298b833be8b4ae20cafe37091634e91f61f5a7eb3d61ec6f660"}, - {file = "grpcio-1.62.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71f11fd63365ade276c9d4a7b7df5c136f9030e3457107e1791b3737a9b9ed6a"}, - {file = "grpcio-1.62.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4b49fd8fe9f9ac23b78437da94c54aa7e9996fbb220bac024a67469ce5d0825f"}, - {file = "grpcio-1.62.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:482ae2ae78679ba9ed5752099b32e5fe580443b4f798e1b71df412abf43375db"}, - {file = "grpcio-1.62.1-cp311-cp311-win32.whl", hash = "sha256:1faa02530b6c7426404372515fe5ddf66e199c2ee613f88f025c6f3bd816450c"}, - {file = "grpcio-1.62.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bd90b8c395f39bc82a5fb32a0173e220e3f401ff697840f4003e15b96d1befc"}, - {file = "grpcio-1.62.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:b134d5d71b4e0837fff574c00e49176051a1c532d26c052a1e43231f252d813b"}, - {file = "grpcio-1.62.1-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:d1f6c96573dc09d50dbcbd91dbf71d5cf97640c9427c32584010fbbd4c0e0037"}, - {file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:359f821d4578f80f41909b9ee9b76fb249a21035a061a327f91c953493782c31"}, - {file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a485f0c2010c696be269184bdb5ae72781344cb4e60db976c59d84dd6354fac9"}, - {file = "grpcio-1.62.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b50b09b4dc01767163d67e1532f948264167cd27f49e9377e3556c3cba1268e1"}, - {file = "grpcio-1.62.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3227c667dccbe38f2c4d943238b887bac588d97c104815aecc62d2fd976e014b"}, - {file = "grpcio-1.62.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3952b581eb121324853ce2b191dae08badb75cd493cb4e0243368aa9e61cfd41"}, - {file = "grpcio-1.62.1-cp312-cp312-win32.whl", hash = "sha256:83a17b303425104d6329c10eb34bba186ffa67161e63fa6cdae7776ff76df73f"}, - {file = "grpcio-1.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:6696ffe440333a19d8d128e88d440f91fb92c75a80ce4b44d55800e656a3ef1d"}, - {file = "grpcio-1.62.1-cp37-cp37m-linux_armv7l.whl", hash = "sha256:e3393b0823f938253370ebef033c9fd23d27f3eae8eb9a8f6264900c7ea3fb5a"}, - {file = "grpcio-1.62.1-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:83e7ccb85a74beaeae2634f10eb858a0ed1a63081172649ff4261f929bacfd22"}, - {file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:882020c87999d54667a284c7ddf065b359bd00251fcd70279ac486776dbf84ec"}, - {file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a10383035e864f386fe096fed5c47d27a2bf7173c56a6e26cffaaa5a361addb1"}, - {file = "grpcio-1.62.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:960edebedc6b9ada1ef58e1c71156f28689978188cd8cff3b646b57288a927d9"}, - {file = "grpcio-1.62.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:23e2e04b83f347d0aadde0c9b616f4726c3d76db04b438fd3904b289a725267f"}, - {file = "grpcio-1.62.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:978121758711916d34fe57c1f75b79cdfc73952f1481bb9583399331682d36f7"}, - {file = "grpcio-1.62.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9084086190cc6d628f282e5615f987288b95457292e969b9205e45b442276407"}, - {file = "grpcio-1.62.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:22bccdd7b23c420a27fd28540fb5dcbc97dc6be105f7698cb0e7d7a420d0e362"}, - {file = "grpcio-1.62.1-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:8999bf1b57172dbc7c3e4bb3c732658e918f5c333b2942243f10d0d653953ba9"}, - {file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:d9e52558b8b8c2f4ac05ac86344a7417ccdd2b460a59616de49eb6933b07a0bd"}, - {file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1714e7bc935780bc3de1b3fcbc7674209adf5208ff825799d579ffd6cd0bd505"}, - {file = "grpcio-1.62.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8842ccbd8c0e253c1f189088228f9b433f7a93b7196b9e5b6f87dba393f5d5d"}, - {file = "grpcio-1.62.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1f1e7b36bdff50103af95a80923bf1853f6823dd62f2d2a2524b66ed74103e49"}, - {file = "grpcio-1.62.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bba97b8e8883a8038606480d6b6772289f4c907f6ba780fa1f7b7da7dfd76f06"}, - {file = "grpcio-1.62.1-cp38-cp38-win32.whl", hash = "sha256:a7f615270fe534548112a74e790cd9d4f5509d744dd718cd442bf016626c22e4"}, - {file = "grpcio-1.62.1-cp38-cp38-win_amd64.whl", hash = "sha256:e6c8c8693df718c5ecbc7babb12c69a4e3677fd11de8886f05ab22d4e6b1c43b"}, - {file = "grpcio-1.62.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:73db2dc1b201d20ab7083e7041946910bb991e7e9761a0394bbc3c2632326483"}, - {file = "grpcio-1.62.1-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:407b26b7f7bbd4f4751dbc9767a1f0716f9fe72d3d7e96bb3ccfc4aace07c8de"}, - {file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:f8de7c8cef9261a2d0a62edf2ccea3d741a523c6b8a6477a340a1f2e417658de"}, - {file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd5c8a1af40ec305d001c60236308a67e25419003e9bb3ebfab5695a8d0b369"}, - {file = "grpcio-1.62.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be0477cb31da67846a33b1a75c611f88bfbcd427fe17701b6317aefceee1b96f"}, - {file = "grpcio-1.62.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:60dcd824df166ba266ee0cfaf35a31406cd16ef602b49f5d4dfb21f014b0dedd"}, - {file = "grpcio-1.62.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:973c49086cabab773525f6077f95e5a993bfc03ba8fc32e32f2c279497780585"}, - {file = "grpcio-1.62.1-cp39-cp39-win32.whl", hash = "sha256:12859468e8918d3bd243d213cd6fd6ab07208195dc140763c00dfe901ce1e1b4"}, - {file = "grpcio-1.62.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7209117bbeebdfa5d898205cc55153a51285757902dd73c47de498ad4d11332"}, - {file = "grpcio-1.62.1.tar.gz", hash = "sha256:6c455e008fa86d9e9a9d85bb76da4277c0d7d9668a3bfa70dbe86e9f3c759947"}, + {file = "grpcio-1.62.2-cp310-cp310-linux_armv7l.whl", hash = "sha256:66344ea741124c38588a664237ac2fa16dfd226964cca23ddc96bd4accccbde5"}, + {file = "grpcio-1.62.2-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:5dab7ac2c1e7cb6179c6bfad6b63174851102cbe0682294e6b1d6f0981ad7138"}, + {file = "grpcio-1.62.2-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:3ad00f3f0718894749d5a8bb0fa125a7980a2f49523731a9b1fabf2b3522aa43"}, + {file = "grpcio-1.62.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e72ddfee62430ea80133d2cbe788e0d06b12f865765cb24a40009668bd8ea05"}, + {file = "grpcio-1.62.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53d3a59a10af4c2558a8e563aed9f256259d2992ae0d3037817b2155f0341de1"}, + {file = "grpcio-1.62.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a1511a303f8074f67af4119275b4f954189e8313541da7b88b1b3a71425cdb10"}, + {file = "grpcio-1.62.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b94d41b7412ef149743fbc3178e59d95228a7064c5ab4760ae82b562bdffb199"}, + {file = "grpcio-1.62.2-cp310-cp310-win32.whl", hash = "sha256:a75af2fc7cb1fe25785be7bed1ab18cef959a376cdae7c6870184307614caa3f"}, + {file = "grpcio-1.62.2-cp310-cp310-win_amd64.whl", hash = "sha256:80407bc007754f108dc2061e37480238b0dc1952c855e86a4fc283501ee6bb5d"}, + {file = "grpcio-1.62.2-cp311-cp311-linux_armv7l.whl", hash = "sha256:c1624aa686d4b36790ed1c2e2306cc3498778dffaf7b8dd47066cf819028c3ad"}, + {file = "grpcio-1.62.2-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:1c1bb80299bdef33309dff03932264636450c8fdb142ea39f47e06a7153d3063"}, + {file = "grpcio-1.62.2-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:db068bbc9b1fa16479a82e1ecf172a93874540cb84be69f0b9cb9b7ac3c82670"}, + {file = "grpcio-1.62.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2cc8a308780edbe2c4913d6a49dbdb5befacdf72d489a368566be44cadaef1a"}, + {file = "grpcio-1.62.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0695ae31a89f1a8fc8256050329a91a9995b549a88619263a594ca31b76d756"}, + {file = "grpcio-1.62.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:88b4f9ee77191dcdd8810241e89340a12cbe050be3e0d5f2f091c15571cd3930"}, + {file = "grpcio-1.62.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2a0204532aa2f1afd467024b02b4069246320405bc18abec7babab03e2644e75"}, + {file = "grpcio-1.62.2-cp311-cp311-win32.whl", hash = "sha256:6e784f60e575a0de554ef9251cbc2ceb8790914fe324f11e28450047f264ee6f"}, + {file = "grpcio-1.62.2-cp311-cp311-win_amd64.whl", hash = "sha256:112eaa7865dd9e6d7c0556c8b04ae3c3a2dc35d62ad3373ab7f6a562d8199200"}, + {file = "grpcio-1.62.2-cp312-cp312-linux_armv7l.whl", hash = "sha256:65034473fc09628a02fb85f26e73885cf1ed39ebd9cf270247b38689ff5942c5"}, + {file = "grpcio-1.62.2-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:d2c1771d0ee3cf72d69bb5e82c6a82f27fbd504c8c782575eddb7839729fbaad"}, + {file = "grpcio-1.62.2-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:3abe6838196da518863b5d549938ce3159d809218936851b395b09cad9b5d64a"}, + {file = "grpcio-1.62.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5ffeb269f10cedb4f33142b89a061acda9f672fd1357331dbfd043422c94e9e"}, + {file = "grpcio-1.62.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404d3b4b6b142b99ba1cff0b2177d26b623101ea2ce51c25ef6e53d9d0d87bcc"}, + {file = "grpcio-1.62.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:262cda97efdabb20853d3b5a4c546a535347c14b64c017f628ca0cc7fa780cc6"}, + {file = "grpcio-1.62.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17708db5b11b966373e21519c4c73e5a750555f02fde82276ea2a267077c68ad"}, + {file = "grpcio-1.62.2-cp312-cp312-win32.whl", hash = "sha256:b7ec9e2f8ffc8436f6b642a10019fc513722858f295f7efc28de135d336ac189"}, + {file = "grpcio-1.62.2-cp312-cp312-win_amd64.whl", hash = "sha256:aa787b83a3cd5e482e5c79be030e2b4a122ecc6c5c6c4c42a023a2b581fdf17b"}, + {file = "grpcio-1.62.2-cp37-cp37m-linux_armv7l.whl", hash = "sha256:cfd23ad29bfa13fd4188433b0e250f84ec2c8ba66b14a9877e8bce05b524cf54"}, + {file = "grpcio-1.62.2-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:af15e9efa4d776dfcecd1d083f3ccfb04f876d613e90ef8432432efbeeac689d"}, + {file = "grpcio-1.62.2-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:f4aa94361bb5141a45ca9187464ae81a92a2a135ce2800b2203134f7a1a1d479"}, + {file = "grpcio-1.62.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82af3613a219512a28ee5c95578eb38d44dd03bca02fd918aa05603c41018051"}, + {file = "grpcio-1.62.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55ddaf53474e8caeb29eb03e3202f9d827ad3110475a21245f3c7712022882a9"}, + {file = "grpcio-1.62.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c79b518c56dddeec79e5500a53d8a4db90da995dfe1738c3ac57fe46348be049"}, + {file = "grpcio-1.62.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a5eb4844e5e60bf2c446ef38c5b40d7752c6effdee882f716eb57ae87255d20a"}, + {file = "grpcio-1.62.2-cp37-cp37m-win_amd64.whl", hash = "sha256:aaae70364a2d1fb238afd6cc9fcb10442b66e397fd559d3f0968d28cc3ac929c"}, + {file = "grpcio-1.62.2-cp38-cp38-linux_armv7l.whl", hash = "sha256:1bcfe5070e4406f489e39325b76caeadab28c32bf9252d3ae960c79935a4cc36"}, + {file = "grpcio-1.62.2-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:da6a7b6b938c15fa0f0568e482efaae9c3af31963eec2da4ff13a6d8ec2888e4"}, + {file = "grpcio-1.62.2-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:41955b641c34db7d84db8d306937b72bc4968eef1c401bea73081a8d6c3d8033"}, + {file = "grpcio-1.62.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c772f225483905f675cb36a025969eef9712f4698364ecd3a63093760deea1bc"}, + {file = "grpcio-1.62.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07ce1f775d37ca18c7a141300e5b71539690efa1f51fe17f812ca85b5e73262f"}, + {file = "grpcio-1.62.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:26f415f40f4a93579fd648f48dca1c13dfacdfd0290f4a30f9b9aeb745026811"}, + {file = "grpcio-1.62.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:db707e3685ff16fc1eccad68527d072ac8bdd2e390f6daa97bc394ea7de4acea"}, + {file = "grpcio-1.62.2-cp38-cp38-win32.whl", hash = "sha256:589ea8e75de5fd6df387de53af6c9189c5231e212b9aa306b6b0d4f07520fbb9"}, + {file = "grpcio-1.62.2-cp38-cp38-win_amd64.whl", hash = "sha256:3c3ed41f4d7a3aabf0f01ecc70d6b5d00ce1800d4af652a549de3f7cf35c4abd"}, + {file = "grpcio-1.62.2-cp39-cp39-linux_armv7l.whl", hash = "sha256:162ccf61499c893831b8437120600290a99c0bc1ce7b51f2c8d21ec87ff6af8b"}, + {file = "grpcio-1.62.2-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:f27246d7da7d7e3bd8612f63785a7b0c39a244cf14b8dd9dd2f2fab939f2d7f1"}, + {file = "grpcio-1.62.2-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:2507006c8a478f19e99b6fe36a2464696b89d40d88f34e4b709abe57e1337467"}, + {file = "grpcio-1.62.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a90ac47a8ce934e2c8d71e317d2f9e7e6aaceb2d199de940ce2c2eb611b8c0f4"}, + {file = "grpcio-1.62.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99701979bcaaa7de8d5f60476487c5df8f27483624f1f7e300ff4669ee44d1f2"}, + {file = "grpcio-1.62.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:af7dc3f7a44f10863b1b0ecab4078f0a00f561aae1edbd01fd03ad4dcf61c9e9"}, + {file = "grpcio-1.62.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fa63245271920786f4cb44dcada4983a3516be8f470924528cf658731864c14b"}, + {file = "grpcio-1.62.2-cp39-cp39-win32.whl", hash = "sha256:c6ad9c39704256ed91a1cffc1379d63f7d0278d6a0bad06b0330f5d30291e3a3"}, + {file = "grpcio-1.62.2-cp39-cp39-win_amd64.whl", hash = "sha256:16da954692fd61aa4941fbeda405a756cd96b97b5d95ca58a92547bba2c1624f"}, + {file = "grpcio-1.62.2.tar.gz", hash = "sha256:c77618071d96b7a8be2c10701a98537823b9c65ba256c0b9067e0594cdbd954d"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.62.1)"] +protobuf = ["grpcio-tools (>=1.62.2)"] [[package]] name = "grpcio-reflection" -version = "1.62.1" +version = "1.62.2" description = "Standard Protobuf Reflection Service for gRPC" optional = false python-versions = ">=3.6" files = [ - {file = "grpcio-reflection-1.62.1.tar.gz", hash = "sha256:abd453001991871031315ef2d82affe93080c0433fa3a007be34bf427e28a88a"}, - {file = "grpcio_reflection-1.62.1-py3-none-any.whl", hash = "sha256:3eff85f74b6b40f8e6116e8363da1efccf775b7a063d2c6fd12c190bbb9676ed"}, + {file = "grpcio-reflection-1.62.2.tar.gz", hash = "sha256:2dd44806d68d0006636529bda573012b19a42281478c2d051cdaaebb91e2516c"}, + {file = "grpcio_reflection-1.62.2-py3-none-any.whl", hash = "sha256:68e8dff3617a9afaf7c462c688f7ca62b55323f497c662abf9965f2953508885"}, ] [package.dependencies] -grpcio = ">=1.62.1" +grpcio = ">=1.62.2" protobuf = ">=4.21.6" [[package]] name = "grpcio-status" -version = "1.62.1" +version = "1.62.2" description = "Status proto mapping for gRPC" optional = false python-versions = ">=3.6" files = [ - {file = "grpcio-status-1.62.1.tar.gz", hash = "sha256:3431c8abbab0054912c41df5c72f03ddf3b7a67be8a287bb3c18a3456f96ff77"}, - {file = "grpcio_status-1.62.1-py3-none-any.whl", hash = "sha256:af0c3ab85da31669f21749e8d53d669c061ebc6ce5637be49a46edcb7aa8ab17"}, + {file = "grpcio-status-1.62.2.tar.gz", hash = "sha256:62e1bfcb02025a1cd73732a2d33672d3e9d0df4d21c12c51e0bbcaf09bab742a"}, + {file = "grpcio_status-1.62.2-py3-none-any.whl", hash = "sha256:206ddf0eb36bc99b033f03b2c8e95d319f0044defae9b41ae21408e7e0cda48f"}, ] [package.dependencies] googleapis-common-protos = ">=1.5.5" -grpcio = ">=1.62.1" +grpcio = ">=1.62.2" protobuf = ">=4.21.6" [[package]] name = "grpcio-tools" -version = "1.62.1" +version = "1.62.2" description = "Protobuf code generator for gRPC" optional = false python-versions = ">=3.7" files = [ - {file = "grpcio-tools-1.62.1.tar.gz", hash = "sha256:a4991e5ee8a97ab791296d3bf7e8700b1445635cc1828cc98df945ca1802d7f2"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:f2b404bcae7e2ef9b0b9803b2a95119eb7507e6dc80ea4a64a78be052c30cebc"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:fdd987a580b4474769adfd40144486f54bcc73838d5ec5d3647a17883ea78e76"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:07af1a6442e2313cff22af93c2c4dd37ae32b5239b38e0d99e2cbf93de65429f"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:41384c9ee18e61ef20cad2774ef71bd8854b63efce263b5177aa06fccb84df1f"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c38006f7702d2ff52122e4c77a47348709374050c76216e84b30a9f06e45afa"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:08fecc3c5b4e6dd3278f2b9d12837e423c7dcff551ca1e587018b4a0fc5f8019"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a01e8dcd0f041f6fa6d815c54a2017d032950e310c41d514a8bc041e872c4d12"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-win32.whl", hash = "sha256:dd933b8e0b3c13fe3543d58f849a6a5e0d7987688cb6801834278378c724f695"}, - {file = "grpcio_tools-1.62.1-cp310-cp310-win_amd64.whl", hash = "sha256:2b04844a9382f1bde4b4174e476e654ab3976168d2469cb4b29e352f4f35a5aa"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:024380536ba71a96cdf736f0954f6ad03f5da609c09edbcc2ca02fdd639e0eed"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:21f14b99e0cd38ad56754cc0b62b2bf3cf75f9f7fc40647da54669e0da0726fe"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:975ac5fb482c23f3608c16e06a43c8bab4d79c2e2564cdbc25cf753c6e998775"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50739aaab0c8076ad5957204e71f2e0c9876e11fd8338f7f09de12c2d75163c5"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:598c54318f0326cf5020aa43fc95a15e933aba4a71943d3bff2677d2d21ddfa1"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f309bdb33a61f8e049480d41498ee2e525cfb5e959958b326abfdf552bf9b9cb"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f358effd3c11d66c150e0227f983d54a5cd30e14038566dadcf25f9f6844e6e8"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-win32.whl", hash = "sha256:b76aead9b73f1650a091870fe4e9ed15ac4d8ed136f962042367255199c23594"}, - {file = "grpcio_tools-1.62.1-cp311-cp311-win_amd64.whl", hash = "sha256:d66a5d47eaa427039752fa0a83a425ff2a487b6a0ac30556fd3be2f3a27a0130"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:575535d039b97d63e6a9abee626d6c7cd47bd8cb73dd00a5c84a98254a2164a4"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:22644c90e43d1a888477899af917979e17364fdd6e9bbb92679cd6a54c4d36c3"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:156d3e1b227c16e903003a56881dbe60e40f2b4bd66f0bc3b27c53e466e6384d"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ad7c5691625a85327e5b683443baf73ae790fd5afc938252041ed5cd665e377"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e140bbc08eea8abf51c0274f45fb1e8350220e64758998d7f3c7f985a0b2496"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7444fcab861911525470d398e5638b70d5cbea3b4674a3de92b5c58c5c515d4d"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e643cd14a5d1e59865cba68a5a6f0175d987f36c5f4cb0db80dee9ed60b4c174"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-win32.whl", hash = "sha256:1344a773d2caa9bb7fbea7e879b84f33740c808c34a5bd2a2768e526117a6b44"}, - {file = "grpcio_tools-1.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:2eea1db3748b2f37b4dce84d8e0c15d9bc811094807cabafe7b0ea47f424dfd5"}, - {file = "grpcio_tools-1.62.1-cp37-cp37m-linux_armv7l.whl", hash = "sha256:45d2e6cf04d27286b6f73e6e20ba3f0a1f6d8f5535e5dcb1356200419bb457f4"}, - {file = "grpcio_tools-1.62.1-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:46ae58e6926773e7315e9005f0f17aacedbc0895a8752bec087d24efa2f1fb21"}, - {file = "grpcio_tools-1.62.1-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:4c28086df31478023a36f45e50767872ab3aed2419afff09814cb61c88b77db4"}, - {file = "grpcio_tools-1.62.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4fba5b339f4797548591036c9481e6895bf920fab7d3dc664d2697f8fb7c0bf"}, - {file = "grpcio_tools-1.62.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23eb3d47f78f509fcd201749b1f1e44b76f447913f7fbb3b8bae20f109086295"}, - {file = "grpcio_tools-1.62.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:fd5d47707bd6bc2b707ece765c362d2a1d2e8f6cd92b04c99fab49a929f3610c"}, - {file = "grpcio_tools-1.62.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d1924a6a943df7c73b9ef0048302327c75962b567451479710da729ead241228"}, - {file = "grpcio_tools-1.62.1-cp37-cp37m-win_amd64.whl", hash = "sha256:fe71ca30aabe42591e84ecb9694c0297dc699cc20c5b24d2cb267fb0fc01f947"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-linux_armv7l.whl", hash = "sha256:1819fd055c1ae672d1d725ec75eefd1f700c18acba0ed9332202be31d69c401d"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:5dbe1f7481dd14b6d477b4bace96d275090bc7636b9883975a08b802c94e7b78"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:771c051c5ece27ad03e4f2e33624a925f0ad636c01757ab7dbb04a37964af4ba"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98209c438b38b6f1276dbc27b1c04e346a75bfaafe72a25a548f2dc5ce71d226"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2152308e5321cb90fb45aaa84d03d6dedb19735a8779aaf36c624f97b831842d"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ed1f27dc2b2262c8b8d9036276619c1bb18791311c16ccbf1f31b660f2aad7cf"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2744947b6c5e907af21133431809ccca535a037356864e32c122efed8cb9de1f"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-win32.whl", hash = "sha256:13b20e269d14ad629ff9a2c9a2450f3dbb119d5948de63b27ffe624fa7aea85a"}, - {file = "grpcio_tools-1.62.1-cp38-cp38-win_amd64.whl", hash = "sha256:999823758e9eacd0095863d06cd6d388be769f80c9abb65cdb11c4f2cfce3fea"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:941f8a5c31986053e75fa466bcfa743c2bf1b513b7978cf1f4ab4e96a8219d27"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:b9c02c88c77ef6057c6cbeea8922d7c2424aabf46bfc40ddf42a32765ba91061"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:6abd4eb3ccb444383a40156139acc3aaa73745d395139cb6bc8e2a3429e1e627"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:449503213d142f8470b331a1c2f346f8457f16c7fe20f531bc2500e271f7c14c"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a11bcf609d00cfc9baed77ab308223cabc1f0b22a05774a26dd4c94c0c80f1f"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:5d7bdea33354b55acf40bb4dd3ba7324d6f1ef6b4a1a4da0807591f8c7e87b9a"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d03b645852d605f43003020e78fe6d573cae6ee6b944193e36b8b317e7549a20"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-win32.whl", hash = "sha256:52b185dfc3bf32e70929310367dbc66185afba60492a6a75a9b1141d407e160c"}, - {file = "grpcio_tools-1.62.1-cp39-cp39-win_amd64.whl", hash = "sha256:63a273b70896d3640b7a883eb4a080c3c263d91662d870a2e9c84b7bbd978e7b"}, + {file = "grpcio-tools-1.62.2.tar.gz", hash = "sha256:5fd5e1582b678e6b941ee5f5809340be5e0724691df5299aae8226640f94e18f"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-linux_armv7l.whl", hash = "sha256:1679b4903aed2dc5bd8cb22a452225b05dc8470a076f14fd703581efc0740cdb"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:9d41e0e47dd075c075bb8f103422968a65dd0d8dc8613288f573ae91eb1053ba"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:987e774f74296842bbffd55ea8826370f70c499e5b5f71a8cf3103838b6ee9c3"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40cd4eeea4b25bcb6903b82930d579027d034ba944393c4751cdefd9c49e6989"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6746bc823958499a3cf8963cc1de00072962fb5e629f26d658882d3f4c35095"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2ed775e844566ce9ce089be9a81a8b928623b8ee5820f5e4d58c1a9d33dfc5ae"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bdc5dd3f57b5368d5d661d5d3703bcaa38bceca59d25955dff66244dbc987271"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-win32.whl", hash = "sha256:3a8d6f07e64c0c7756f4e0c4781d9d5a2b9cc9cbd28f7032a6fb8d4f847d0445"}, + {file = "grpcio_tools-1.62.2-cp310-cp310-win_amd64.whl", hash = "sha256:e33b59fb3efdddeb97ded988a871710033e8638534c826567738d3edce528752"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-linux_armv7l.whl", hash = "sha256:472505d030135d73afe4143b0873efe0dcb385bd6d847553b4f3afe07679af00"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:ec674b4440ef4311ac1245a709e87b36aca493ddc6850eebe0b278d1f2b6e7d1"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:184b4174d4bd82089d706e8223e46c42390a6ebac191073b9772abc77308f9fa"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c195d74fe98541178ece7a50dad2197d43991e0f77372b9a88da438be2486f12"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a34d97c62e61bfe9e6cff0410fe144ac8cca2fc979ad0be46b7edf026339d161"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cbb8453ae83a1db2452b7fe0f4b78e4a8dd32be0f2b2b73591ae620d4d784d3d"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f989e5cebead3ae92c6abf6bf7b19949e1563a776aea896ac5933f143f0c45d"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-win32.whl", hash = "sha256:c48fabe40b9170f4e3d7dd2c252e4f1ff395dc24e49ac15fc724b1b6f11724da"}, + {file = "grpcio_tools-1.62.2-cp311-cp311-win_amd64.whl", hash = "sha256:8c616d0ad872e3780693fce6a3ac8ef00fc0963e6d7815ce9dcfae68ba0fc287"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-linux_armv7l.whl", hash = "sha256:10cc3321704ecd17c93cf68c99c35467a8a97ffaaed53207e9b2da6ae0308ee1"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:9be84ff6d47fd61462be7523b49d7ba01adf67ce4e1447eae37721ab32464dd8"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:d82f681c9a9d933a9d8068e8e382977768e7779ddb8870fa0cf918d8250d1532"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04c607029ae3660fb1624ed273811ffe09d57d84287d37e63b5b802a35897329"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72b61332f1b439c14cbd3815174a8f1d35067a02047c32decd406b3a09bb9890"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8214820990d01b52845f9fbcb92d2b7384a0c321b303e3ac614c219dc7d1d3af"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:462e0ab8dd7c7b70bfd6e3195eebc177549ede5cf3189814850c76f9a340d7ce"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-win32.whl", hash = "sha256:fa107460c842e4c1a6266150881694fefd4f33baa544ea9489601810c2210ef8"}, + {file = "grpcio_tools-1.62.2-cp312-cp312-win_amd64.whl", hash = "sha256:759c60f24c33a181bbbc1232a6752f9b49fbb1583312a4917e2b389fea0fb0f2"}, + {file = "grpcio_tools-1.62.2-cp37-cp37m-linux_armv7l.whl", hash = "sha256:45db5da2bcfa88f2b86b57ef35daaae85c60bd6754a051d35d9449c959925b57"}, + {file = "grpcio_tools-1.62.2-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:ab84bae88597133f6ea7a2bdc57b2fda98a266fe8d8d4763652cbefd20e73ad7"}, + {file = "grpcio_tools-1.62.2-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:7a49bccae1c7d154b78e991885c3111c9ad8c8fa98e91233de425718f47c6139"}, + {file = "grpcio_tools-1.62.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7e439476b29d6dac363b321781a113794397afceeb97dad85349db5f1cb5e9a"}, + {file = "grpcio_tools-1.62.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ea369c4d1567d1acdf69c8ea74144f4ccad9e545df7f9a4fc64c94fa7684ba3"}, + {file = "grpcio_tools-1.62.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4f955702dc4b530696375251319d05223b729ed24e8673c2129f7a75d2caefbb"}, + {file = "grpcio_tools-1.62.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3708a747aa4b6b505727282ca887041174e146ae030ebcadaf4c1d346858df62"}, + {file = "grpcio_tools-1.62.2-cp37-cp37m-win_amd64.whl", hash = "sha256:2ce149ea55eadb486a7fb75a20f63ef3ac065ee6a0240ed25f3549ce7954c653"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-linux_armv7l.whl", hash = "sha256:58cbb24b3fa6ae35aa9c210fcea3a51aa5fef0cd25618eb4fd94f746d5a9b703"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:6413581e14a80e0b4532577766cf0586de4dd33766a31b3eb5374a746771c07d"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:47117c8a7e861382470d0e22d336e5a91fdc5f851d1db44fa784b9acea190d87"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f1ba79a253df9e553d20319c615fa2b429684580fa042dba618d7f6649ac7e4"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04a394cf5e51ba9be412eb9f6c482b6270bd81016e033e8eb7d21b8cc28fe8b5"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3c53b221378b035ae2f1881cbc3aca42a6075a8e90e1a342c2f205eb1d1aa6a1"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c384c838b34d1b67068e51b5bbe49caa6aa3633acd158f1ab16b5da8d226bc53"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-win32.whl", hash = "sha256:19ea69e41c3565932aa28a202d1875ec56786aea46a2eab54a3b28e8a27f9517"}, + {file = "grpcio_tools-1.62.2-cp38-cp38-win_amd64.whl", hash = "sha256:1d768a5c07279a4c461ebf52d0cec1c6ca85c6291c71ec2703fe3c3e7e28e8c4"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-linux_armv7l.whl", hash = "sha256:5b07b5874187e170edfbd7aa2ca3a54ebf3b2952487653e8c0b0d83601c33035"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:d58389fe8be206ddfb4fa703db1e24c956856fcb9a81da62b13577b3a8f7fda7"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:7d8b4e00c3d7237b92260fc18a561cd81f1da82e8be100db1b7d816250defc66"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fe08d2038f2b7c53259b5c49e0ad08c8e0ce2b548d8185993e7ef67e8592cca"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:19216e1fb26dbe23d12a810517e1b3fbb8d4f98b1a3fbebeec9d93a79f092de4"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b8574469ecc4ff41d6bb95f44e0297cdb0d95bade388552a9a444db9cd7485cd"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4f6f32d39283ea834a493fccf0ebe9cfddee7577bdcc27736ad4be1732a36399"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-win32.whl", hash = "sha256:76eb459bdf3fb666e01883270beee18f3f11ed44488486b61cd210b4e0e17cc1"}, + {file = "grpcio_tools-1.62.2-cp39-cp39-win_amd64.whl", hash = "sha256:217c2ee6a7ce519a55958b8622e21804f6fdb774db08c322f4c9536c35fdce7c"}, ] [package.dependencies] -grpcio = ">=1.62.1" +grpcio = ">=1.62.2" protobuf = ">=4.21.6,<5.0dev" setuptools = "*" @@ -935,6 +932,20 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "intel-openmp" +version = "2021.4.0" +description = "Intel OpenMP* Runtime Library" +optional = true +python-versions = "*" +files = [ + {file = "intel_openmp-2021.4.0-py2.py3-none-macosx_10_15_x86_64.macosx_11_0_x86_64.whl", hash = "sha256:41c01e266a7fdb631a7609191709322da2bbf24b252ba763f125dd651bcc7675"}, + {file = "intel_openmp-2021.4.0-py2.py3-none-manylinux1_i686.whl", hash = "sha256:3b921236a38384e2016f0f3d65af6732cf2c12918087128a9163225451e776f2"}, + {file = "intel_openmp-2021.4.0-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:e2240ab8d01472fed04f3544a878cda5da16c26232b7ea1b59132dbfb48b186e"}, + {file = "intel_openmp-2021.4.0-py2.py3-none-win32.whl", hash = "sha256:6e863d8fd3d7e8ef389d52cf97a50fe2afe1a19247e8c0d168ce021546f96fc9"}, + {file = "intel_openmp-2021.4.0-py2.py3-none-win_amd64.whl", hash = "sha256:eef4c8bcc8acefd7f5cd3b9384dbf73d59e2c99fc56545712ded913f43c4a94f"}, +] + [[package]] name = "interegular" version = "0.3.3" @@ -1143,6 +1154,24 @@ files = [ {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] +[[package]] +name = "mkl" +version = "2021.4.0" +description = "Intel® oneAPI Math Kernel Library" +optional = true +python-versions = "*" +files = [ + {file = "mkl-2021.4.0-py2.py3-none-macosx_10_15_x86_64.macosx_11_0_x86_64.whl", hash = "sha256:67460f5cd7e30e405b54d70d1ed3ca78118370b65f7327d495e9c8847705e2fb"}, + {file = "mkl-2021.4.0-py2.py3-none-manylinux1_i686.whl", hash = "sha256:636d07d90e68ccc9630c654d47ce9fdeb036bb46e2b193b3a9ac8cfea683cce5"}, + {file = "mkl-2021.4.0-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:398dbf2b0d12acaf54117a5210e8f191827f373d362d796091d161f610c1ebfb"}, + {file = "mkl-2021.4.0-py2.py3-none-win32.whl", hash = "sha256:439c640b269a5668134e3dcbcea4350459c4a8bc46469669b2d67e07e3d330e8"}, + {file = "mkl-2021.4.0-py2.py3-none-win_amd64.whl", hash = "sha256:ceef3cafce4c009dd25f65d7ad0d833a0fbadc3d8903991ec92351fe5de1e718"}, +] + +[package.dependencies] +intel-openmp = "==2021.*" +tbb = "==2021.*" + [[package]] name = "mpmath" version = "1.3.0" @@ -1261,27 +1290,31 @@ files = [ [[package]] name = "multiprocess" -version = "0.70.16" +version = "0.70.15" description = "better multiprocessing and multithreading in Python" optional = true -python-versions = ">=3.8" +python-versions = ">=3.7" files = [ - {file = "multiprocess-0.70.16-pp310-pypy310_pp73-macosx_10_13_x86_64.whl", hash = "sha256:476887be10e2f59ff183c006af746cb6f1fd0eadcfd4ef49e605cbe2659920ee"}, - {file = "multiprocess-0.70.16-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:d951bed82c8f73929ac82c61f01a7b5ce8f3e5ef40f5b52553b4f547ce2b08ec"}, - {file = "multiprocess-0.70.16-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37b55f71c07e2d741374998c043b9520b626a8dddc8b3129222ca4f1a06ef67a"}, - {file = "multiprocess-0.70.16-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba8c31889abf4511c7308a8c52bb4a30b9d590e7f58523302ba00237702ca054"}, - {file = "multiprocess-0.70.16-pp39-pypy39_pp73-macosx_10_13_x86_64.whl", hash = "sha256:0dfd078c306e08d46d7a8d06fb120313d87aa43af60d66da43ffff40b44d2f41"}, - {file = "multiprocess-0.70.16-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e7b9d0f307cd9bd50851afaac0dba2cb6c44449efff697df7c7645f7d3f2be3a"}, - {file = "multiprocess-0.70.16-py310-none-any.whl", hash = "sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02"}, - {file = "multiprocess-0.70.16-py311-none-any.whl", hash = "sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a"}, - {file = "multiprocess-0.70.16-py312-none-any.whl", hash = "sha256:fc0544c531920dde3b00c29863377f87e1632601092ea2daca74e4beb40faa2e"}, - {file = "multiprocess-0.70.16-py38-none-any.whl", hash = "sha256:a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435"}, - {file = "multiprocess-0.70.16-py39-none-any.whl", hash = "sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3"}, - {file = "multiprocess-0.70.16.tar.gz", hash = "sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1"}, + {file = "multiprocess-0.70.15-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:aa36c7ed16f508091438687fe9baa393a7a8e206731d321e443745e743a0d4e5"}, + {file = "multiprocess-0.70.15-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:20e024018c46d0d1602024c613007ac948f9754659e3853b0aa705e83f6931d8"}, + {file = "multiprocess-0.70.15-pp37-pypy37_pp73-manylinux_2_24_i686.whl", hash = "sha256:e576062981c91f0fe8a463c3d52506e598dfc51320a8dd8d78b987dfca91c5db"}, + {file = "multiprocess-0.70.15-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:e73f497e6696a0f5433ada2b3d599ae733b87a6e8b008e387c62ac9127add177"}, + {file = "multiprocess-0.70.15-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:73db2e7b32dcc7f9b0f075c2ffa45c90b6729d3f1805f27e88534c8d321a1be5"}, + {file = "multiprocess-0.70.15-pp38-pypy38_pp73-manylinux_2_24_i686.whl", hash = "sha256:4271647bd8a49c28ecd6eb56a7fdbd3c212c45529ad5303b40b3c65fc6928e5f"}, + {file = "multiprocess-0.70.15-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:cf981fb998d6ec3208cb14f0cf2e9e80216e834f5d51fd09ebc937c32b960902"}, + {file = "multiprocess-0.70.15-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:18f9f2c7063346d1617bd1684fdcae8d33380ae96b99427260f562e1a1228b67"}, + {file = "multiprocess-0.70.15-pp39-pypy39_pp73-manylinux_2_24_i686.whl", hash = "sha256:0eac53214d664c49a34695e5824872db4006b1a465edd7459a251809c3773370"}, + {file = "multiprocess-0.70.15-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:1a51dd34096db47fb21fa2b839e615b051d51b97af9a67afbcdaa67186b44883"}, + {file = "multiprocess-0.70.15-py310-none-any.whl", hash = "sha256:7dd58e33235e83cf09d625e55cffd7b0f0eede7ee9223cdd666a87624f60c21a"}, + {file = "multiprocess-0.70.15-py311-none-any.whl", hash = "sha256:134f89053d82c9ed3b73edd3a2531eb791e602d4f4156fc92a79259590bd9670"}, + {file = "multiprocess-0.70.15-py37-none-any.whl", hash = "sha256:f7d4a1629bccb433114c3b4885f69eccc200994323c80f6feee73b0edc9199c5"}, + {file = "multiprocess-0.70.15-py38-none-any.whl", hash = "sha256:bee9afba476c91f9ebee7beeee0601face9eff67d822e893f9a893725fbd6316"}, + {file = "multiprocess-0.70.15-py39-none-any.whl", hash = "sha256:3e0953f5d52b4c76f1c973eaf8214554d146f2be5decb48e928e55c7a2d19338"}, + {file = "multiprocess-0.70.15.tar.gz", hash = "sha256:f20eed3036c0ef477b07a4177cf7c1ba520d9a2677870a4f47fe026f0cd6787e"}, ] [package.dependencies] -dill = ">=0.3.8" +dill = ">=0.3.7" [[package]] name = "nest-asyncio" @@ -1502,12 +1535,13 @@ nvidia-nvjitlink-cu12 = "*" [[package]] name = "nvidia-nccl-cu12" -version = "2.19.3" +version = "2.20.5" description = "NVIDIA Collective Communication Library (NCCL) Runtime" optional = true python-versions = ">=3" files = [ - {file = "nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl", hash = "sha256:a9734707a2c96443331c1e48c717024aa6678a0e2a4cb66b2c364d18cee6b48d"}, + {file = "nvidia_nccl_cu12-2.20.5-py3-none-manylinux2014_aarch64.whl", hash = "sha256:1fc150d5c3250b170b29410ba682384b14581db722b2531b0d8d33c595f33d01"}, + {file = "nvidia_nccl_cu12-2.20.5-py3-none-manylinux2014_x86_64.whl", hash = "sha256:057f6bf9685f75215d0c53bf3ac4a10b3e6578351de307abad9e18a99182af56"}, ] [[package]] @@ -1920,19 +1954,33 @@ xmp = ["defusedxml"] [[package]] name = "pluggy" -version = "1.4.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, - {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] +[[package]] +name = "prometheus-client" +version = "0.20.0" +description = "Python client for the Prometheus monitoring system." +optional = false +python-versions = ">=3.8" +files = [ + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, +] + +[package.extras] +twisted = ["twisted"] + [[package]] name = "protobuf" version = "4.25.3" @@ -1981,79 +2029,79 @@ files = [ [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] +[[package]] +name = "py-cpuinfo" +version = "9.0.0" +description = "Get CPU info with pure Python" +optional = false +python-versions = "*" +files = [ + {file = "py-cpuinfo-9.0.0.tar.gz", hash = "sha256:3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690"}, + {file = "py_cpuinfo-9.0.0-py3-none-any.whl", hash = "sha256:859625bc251f64e21f077d099d4162689c762b5d6a4c3c97553d56241c9674d5"}, +] + [[package]] name = "pyarrow" -version = "15.0.2" +version = "16.0.0" description = "Python library for Apache Arrow" optional = true python-versions = ">=3.8" files = [ - {file = "pyarrow-15.0.2-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:88b340f0a1d05b5ccc3d2d986279045655b1fe8e41aba6ca44ea28da0d1455d8"}, - {file = "pyarrow-15.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eaa8f96cecf32da508e6c7f69bb8401f03745c050c1dd42ec2596f2e98deecac"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23c6753ed4f6adb8461e7c383e418391b8d8453c5d67e17f416c3a5d5709afbd"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f639c059035011db8c0497e541a8a45d98a58dbe34dc8fadd0ef128f2cee46e5"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:290e36a59a0993e9a5224ed2fb3e53375770f07379a0ea03ee2fce2e6d30b423"}, - {file = "pyarrow-15.0.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:06c2bb2a98bc792f040bef31ad3e9be6a63d0cb39189227c08a7d955db96816e"}, - {file = "pyarrow-15.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:f7a197f3670606a960ddc12adbe8075cea5f707ad7bf0dffa09637fdbb89f76c"}, - {file = "pyarrow-15.0.2-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:5f8bc839ea36b1f99984c78e06e7a06054693dc2af8920f6fb416b5bca9944e4"}, - {file = "pyarrow-15.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5e81dfb4e519baa6b4c80410421528c214427e77ca0ea9461eb4097c328fa33"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a4f240852b302a7af4646c8bfe9950c4691a419847001178662a98915fd7ee7"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e7d9cfb5a1e648e172428c7a42b744610956f3b70f524aa3a6c02a448ba853e"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2d4f905209de70c0eb5b2de6763104d5a9a37430f137678edfb9a675bac9cd98"}, - {file = "pyarrow-15.0.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:90adb99e8ce5f36fbecbbc422e7dcbcbed07d985eed6062e459e23f9e71fd197"}, - {file = "pyarrow-15.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:b116e7fd7889294cbd24eb90cd9bdd3850be3738d61297855a71ac3b8124ee38"}, - {file = "pyarrow-15.0.2-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:25335e6f1f07fdaa026a61c758ee7d19ce824a866b27bba744348fa73bb5a440"}, - {file = "pyarrow-15.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:90f19e976d9c3d8e73c80be84ddbe2f830b6304e4c576349d9360e335cd627fc"}, - {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a22366249bf5fd40ddacc4f03cd3160f2d7c247692945afb1899bab8a140ddfb"}, - {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2a335198f886b07e4b5ea16d08ee06557e07db54a8400cc0d03c7f6a22f785f"}, - {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e6d459c0c22f0b9c810a3917a1de3ee704b021a5fb8b3bacf968eece6df098f"}, - {file = "pyarrow-15.0.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:033b7cad32198754d93465dcfb71d0ba7cb7cd5c9afd7052cab7214676eec38b"}, - {file = "pyarrow-15.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:29850d050379d6e8b5a693098f4de7fd6a2bea4365bfd073d7c57c57b95041ee"}, - {file = "pyarrow-15.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:7167107d7fb6dcadb375b4b691b7e316f4368f39f6f45405a05535d7ad5e5058"}, - {file = "pyarrow-15.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e85241b44cc3d365ef950432a1b3bd44ac54626f37b2e3a0cc89c20e45dfd8bf"}, - {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:248723e4ed3255fcd73edcecc209744d58a9ca852e4cf3d2577811b6d4b59818"}, - {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ff3bdfe6f1b81ca5b73b70a8d482d37a766433823e0c21e22d1d7dde76ca33f"}, - {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:f3d77463dee7e9f284ef42d341689b459a63ff2e75cee2b9302058d0d98fe142"}, - {file = "pyarrow-15.0.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:8c1faf2482fb89766e79745670cbca04e7018497d85be9242d5350cba21357e1"}, - {file = "pyarrow-15.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:28f3016958a8e45a1069303a4a4f6a7d4910643fc08adb1e2e4a7ff056272ad3"}, - {file = "pyarrow-15.0.2-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:89722cb64286ab3d4daf168386f6968c126057b8c7ec3ef96302e81d8cdb8ae4"}, - {file = "pyarrow-15.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd0ba387705044b3ac77b1b317165c0498299b08261d8122c96051024f953cd5"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad2459bf1f22b6a5cdcc27ebfd99307d5526b62d217b984b9f5c974651398832"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58922e4bfece8b02abf7159f1f53a8f4d9f8e08f2d988109126c17c3bb261f22"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:adccc81d3dc0478ea0b498807b39a8d41628fa9210729b2f718b78cb997c7c91"}, - {file = "pyarrow-15.0.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:8bd2baa5fe531571847983f36a30ddbf65261ef23e496862ece83bdceb70420d"}, - {file = "pyarrow-15.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6669799a1d4ca9da9c7e06ef48368320f5856f36f9a4dd31a11839dda3f6cc8c"}, - {file = "pyarrow-15.0.2.tar.gz", hash = "sha256:9c9bc803cb3b7bfacc1e96ffbfd923601065d9d3f911179d81e72d99fd74a3d9"}, + {file = "pyarrow-16.0.0-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:22a1fdb1254e5095d629e29cd1ea98ed04b4bbfd8e42cc670a6b639ccc208b60"}, + {file = "pyarrow-16.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:574a00260a4ed9d118a14770edbd440b848fcae5a3024128be9d0274dbcaf858"}, + {file = "pyarrow-16.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0815d0ddb733b8c1b53a05827a91f1b8bde6240f3b20bf9ba5d650eb9b89cdf"}, + {file = "pyarrow-16.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df0080339387b5d30de31e0a149c0c11a827a10c82f0c67d9afae3981d1aabb7"}, + {file = "pyarrow-16.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:edf38cce0bf0dcf726e074159c60516447e4474904c0033f018c1f33d7dac6c5"}, + {file = "pyarrow-16.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:91d28f9a40f1264eab2af7905a4d95320ac2f287891e9c8b0035f264fe3c3a4b"}, + {file = "pyarrow-16.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:99af421ee451a78884d7faea23816c429e263bd3618b22d38e7992c9ce2a7ad9"}, + {file = "pyarrow-16.0.0-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:d22d0941e6c7bafddf5f4c0662e46f2075850f1c044bf1a03150dd9e189427ce"}, + {file = "pyarrow-16.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:266ddb7e823f03733c15adc8b5078db2df6980f9aa93d6bb57ece615df4e0ba7"}, + {file = "pyarrow-16.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cc23090224b6594f5a92d26ad47465af47c1d9c079dd4a0061ae39551889efe"}, + {file = "pyarrow-16.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56850a0afe9ef37249d5387355449c0f94d12ff7994af88f16803a26d38f2016"}, + {file = "pyarrow-16.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:705db70d3e2293c2f6f8e84874b5b775f690465798f66e94bb2c07bab0a6bb55"}, + {file = "pyarrow-16.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:5448564754c154997bc09e95a44b81b9e31ae918a86c0fcb35c4aa4922756f55"}, + {file = "pyarrow-16.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:729f7b262aa620c9df8b9967db96c1575e4cfc8c25d078a06968e527b8d6ec05"}, + {file = "pyarrow-16.0.0-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:fb8065dbc0d051bf2ae2453af0484d99a43135cadabacf0af588a3be81fbbb9b"}, + {file = "pyarrow-16.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:20ce707d9aa390593ea93218b19d0eadab56390311cb87aad32c9a869b0e958c"}, + {file = "pyarrow-16.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5823275c8addbbb50cd4e6a6839952682a33255b447277e37a6f518d6972f4e1"}, + {file = "pyarrow-16.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ab8b9050752b16a8b53fcd9853bf07d8daf19093533e990085168f40c64d978"}, + {file = "pyarrow-16.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:42e56557bc7c5c10d3e42c3b32f6cff649a29d637e8f4e8b311d334cc4326730"}, + {file = "pyarrow-16.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:2a7abdee4a4a7cfa239e2e8d721224c4b34ffe69a0ca7981354fe03c1328789b"}, + {file = "pyarrow-16.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:ef2f309b68396bcc5a354106741d333494d6a0d3e1951271849787109f0229a6"}, + {file = "pyarrow-16.0.0-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:ed66e5217b4526fa3585b5e39b0b82f501b88a10d36bd0d2a4d8aa7b5a48e2df"}, + {file = "pyarrow-16.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:cc8814310486f2a73c661ba8354540f17eef51e1b6dd090b93e3419d3a097b3a"}, + {file = "pyarrow-16.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c2f5e239db7ed43e0ad2baf46a6465f89c824cc703f38ef0fde927d8e0955f7"}, + {file = "pyarrow-16.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f293e92d1db251447cb028ae12f7bc47526e4649c3a9924c8376cab4ad6b98bd"}, + {file = "pyarrow-16.0.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:dd9334a07b6dc21afe0857aa31842365a62eca664e415a3f9536e3a8bb832c07"}, + {file = "pyarrow-16.0.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:d91073d1e2fef2c121154680e2ba7e35ecf8d4969cc0af1fa6f14a8675858159"}, + {file = "pyarrow-16.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:71d52561cd7aefd22cf52538f262850b0cc9e4ec50af2aaa601da3a16ef48877"}, + {file = "pyarrow-16.0.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b93c9a50b965ee0bf4fef65e53b758a7e8dcc0c2d86cebcc037aaaf1b306ecc0"}, + {file = "pyarrow-16.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d831690844706e374c455fba2fb8cfcb7b797bfe53ceda4b54334316e1ac4fa4"}, + {file = "pyarrow-16.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35692ce8ad0b8c666aa60f83950957096d92f2a9d8d7deda93fb835e6053307e"}, + {file = "pyarrow-16.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dd3151d098e56f16a8389c1247137f9e4c22720b01c6f3aa6dec29a99b74d80"}, + {file = "pyarrow-16.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:bd40467bdb3cbaf2044ed7a6f7f251c8f941c8b31275aaaf88e746c4f3ca4a7a"}, + {file = "pyarrow-16.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:00a1dcb22ad4ceb8af87f7bd30cc3354788776c417f493089e0a0af981bc8d80"}, + {file = "pyarrow-16.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:fda9a7cebd1b1d46c97b511f60f73a5b766a6de4c5236f144f41a5d5afec1f35"}, + {file = "pyarrow-16.0.0.tar.gz", hash = "sha256:59bb1f1edbbf4114c72415f039f1359f1a57d166a331c3229788ccbfbb31689a"}, ] [package.dependencies] -numpy = ">=1.16.6,<2" - -[[package]] -name = "pyarrow-hotfix" -version = "0.6" -description = "" -optional = true -python-versions = ">=3.5" -files = [ - {file = "pyarrow_hotfix-0.6-py3-none-any.whl", hash = "sha256:dcc9ae2d220dff0083be6a9aa8e0cdee5182ad358d4931fce825c545e5c89178"}, - {file = "pyarrow_hotfix-0.6.tar.gz", hash = "sha256:79d3e030f7ff890d408a100ac16d6f00b14d44a502d7897cd9fc3e3a534e9945"}, -] +numpy = ">=1.16.6" [[package]] name = "pydantic" -version = "2.7.0" +version = "2.7.1" description = "Data validation using Python type hints" optional = true python-versions = ">=3.8" files = [ - {file = "pydantic-2.7.0-py3-none-any.whl", hash = "sha256:9dee74a271705f14f9a1567671d144a851c675b072736f0a7b2608fd9e495352"}, - {file = "pydantic-2.7.0.tar.gz", hash = "sha256:b5ecdd42262ca2462e2624793551e80911a1e989f462910bb81aef974b4bb383"}, + {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"}, + {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"}, ] [package.dependencies] annotated-types = ">=0.4.0" -pydantic-core = "2.18.1" +pydantic-core = "2.18.2" typing-extensions = ">=4.6.1" [package.extras] @@ -2061,90 +2109,90 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.18.1" +version = "2.18.2" description = "Core functionality for Pydantic validation and serialization" optional = true python-versions = ">=3.8" files = [ - {file = "pydantic_core-2.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ee9cf33e7fe14243f5ca6977658eb7d1042caaa66847daacbd2117adb258b226"}, - {file = "pydantic_core-2.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b7bbb97d82659ac8b37450c60ff2e9f97e4eb0f8a8a3645a5568b9334b08b50"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df4249b579e75094f7e9bb4bd28231acf55e308bf686b952f43100a5a0be394c"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d0491006a6ad20507aec2be72e7831a42efc93193d2402018007ff827dc62926"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ae80f72bb7a3e397ab37b53a2b49c62cc5496412e71bc4f1277620a7ce3f52b"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58aca931bef83217fca7a390e0486ae327c4af9c3e941adb75f8772f8eeb03a1"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1be91ad664fc9245404a789d60cba1e91c26b1454ba136d2a1bf0c2ac0c0505a"}, - {file = "pydantic_core-2.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:667880321e916a8920ef49f5d50e7983792cf59f3b6079f3c9dac2b88a311d17"}, - {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f7054fdc556f5421f01e39cbb767d5ec5c1139ea98c3e5b350e02e62201740c7"}, - {file = "pydantic_core-2.18.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:030e4f9516f9947f38179249778709a460a3adb516bf39b5eb9066fcfe43d0e6"}, - {file = "pydantic_core-2.18.1-cp310-none-win32.whl", hash = "sha256:2e91711e36e229978d92642bfc3546333a9127ecebb3f2761372e096395fc649"}, - {file = "pydantic_core-2.18.1-cp310-none-win_amd64.whl", hash = "sha256:9a29726f91c6cb390b3c2338f0df5cd3e216ad7a938762d11c994bb37552edb0"}, - {file = "pydantic_core-2.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9ece8a49696669d483d206b4474c367852c44815fca23ac4e48b72b339807f80"}, - {file = "pydantic_core-2.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a5d83efc109ceddb99abd2c1316298ced2adb4570410defe766851a804fcd5b"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7973c381283783cd1043a8c8f61ea5ce7a3a58b0369f0ee0ee975eaf2f2a1b"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:54c7375c62190a7845091f521add19b0f026bcf6ae674bdb89f296972272e86d"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd63cec4e26e790b70544ae5cc48d11b515b09e05fdd5eff12e3195f54b8a586"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:561cf62c8a3498406495cfc49eee086ed2bb186d08bcc65812b75fda42c38294"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68717c38a68e37af87c4da20e08f3e27d7e4212e99e96c3d875fbf3f4812abfc"}, - {file = "pydantic_core-2.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d5728e93d28a3c63ee513d9ffbac9c5989de8c76e049dbcb5bfe4b923a9739d"}, - {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f0f17814c505f07806e22b28856c59ac80cee7dd0fbb152aed273e116378f519"}, - {file = "pydantic_core-2.18.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d816f44a51ba5175394bc6c7879ca0bd2be560b2c9e9f3411ef3a4cbe644c2e9"}, - {file = "pydantic_core-2.18.1-cp311-none-win32.whl", hash = "sha256:09f03dfc0ef8c22622eaa8608caa4a1e189cfb83ce847045eca34f690895eccb"}, - {file = "pydantic_core-2.18.1-cp311-none-win_amd64.whl", hash = "sha256:27f1009dc292f3b7ca77feb3571c537276b9aad5dd4efb471ac88a8bd09024e9"}, - {file = "pydantic_core-2.18.1-cp311-none-win_arm64.whl", hash = "sha256:48dd883db92e92519201f2b01cafa881e5f7125666141a49ffba8b9facc072b0"}, - {file = "pydantic_core-2.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b6b0e4912030c6f28bcb72b9ebe4989d6dc2eebcd2a9cdc35fefc38052dd4fe8"}, - {file = "pydantic_core-2.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3202a429fe825b699c57892d4371c74cc3456d8d71b7f35d6028c96dfecad31"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3982b0a32d0a88b3907e4b0dc36809fda477f0757c59a505d4e9b455f384b8b"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25595ac311f20e5324d1941909b0d12933f1fd2171075fcff763e90f43e92a0d"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:14fe73881cf8e4cbdaded8ca0aa671635b597e42447fec7060d0868b52d074e6"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca976884ce34070799e4dfc6fbd68cb1d181db1eefe4a3a94798ddfb34b8867f"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:684d840d2c9ec5de9cb397fcb3f36d5ebb6fa0d94734f9886032dd796c1ead06"}, - {file = "pydantic_core-2.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:54764c083bbe0264f0f746cefcded6cb08fbbaaf1ad1d78fb8a4c30cff999a90"}, - {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:201713f2f462e5c015b343e86e68bd8a530a4f76609b33d8f0ec65d2b921712a"}, - {file = "pydantic_core-2.18.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fd1a9edb9dd9d79fbeac1ea1f9a8dd527a6113b18d2e9bcc0d541d308dae639b"}, - {file = "pydantic_core-2.18.1-cp312-none-win32.whl", hash = "sha256:d5e6b7155b8197b329dc787356cfd2684c9d6a6b1a197f6bbf45f5555a98d411"}, - {file = "pydantic_core-2.18.1-cp312-none-win_amd64.whl", hash = "sha256:9376d83d686ec62e8b19c0ac3bf8d28d8a5981d0df290196fb6ef24d8a26f0d6"}, - {file = "pydantic_core-2.18.1-cp312-none-win_arm64.whl", hash = "sha256:c562b49c96906b4029b5685075fe1ebd3b5cc2601dfa0b9e16c2c09d6cbce048"}, - {file = "pydantic_core-2.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:3e352f0191d99fe617371096845070dee295444979efb8f27ad941227de6ad09"}, - {file = "pydantic_core-2.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0295d52b012cbe0d3059b1dba99159c3be55e632aae1999ab74ae2bd86a33d7"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56823a92075780582d1ffd4489a2e61d56fd3ebb4b40b713d63f96dd92d28144"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dd3f79e17b56741b5177bcc36307750d50ea0698df6aa82f69c7db32d968c1c2"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38a5024de321d672a132b1834a66eeb7931959c59964b777e8f32dbe9523f6b1"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ce426ee691319d4767748c8e0895cfc56593d725594e415f274059bcf3cb76"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2adaeea59849ec0939af5c5d476935f2bab4b7f0335b0110f0f069a41024278e"}, - {file = "pydantic_core-2.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9b6431559676a1079eac0f52d6d0721fb8e3c5ba43c37bc537c8c83724031feb"}, - {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:85233abb44bc18d16e72dc05bf13848a36f363f83757541f1a97db2f8d58cfd9"}, - {file = "pydantic_core-2.18.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:641a018af4fe48be57a2b3d7a1f0f5dbca07c1d00951d3d7463f0ac9dac66622"}, - {file = "pydantic_core-2.18.1-cp38-none-win32.whl", hash = "sha256:63d7523cd95d2fde0d28dc42968ac731b5bb1e516cc56b93a50ab293f4daeaad"}, - {file = "pydantic_core-2.18.1-cp38-none-win_amd64.whl", hash = "sha256:907a4d7720abfcb1c81619863efd47c8a85d26a257a2dbebdb87c3b847df0278"}, - {file = "pydantic_core-2.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:aad17e462f42ddbef5984d70c40bfc4146c322a2da79715932cd8976317054de"}, - {file = "pydantic_core-2.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:94b9769ba435b598b547c762184bcfc4783d0d4c7771b04a3b45775c3589ca44"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80e0e57cc704a52fb1b48f16d5b2c8818da087dbee6f98d9bf19546930dc64b5"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:76b86e24039c35280ceee6dce7e62945eb93a5175d43689ba98360ab31eebc4a"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a05db5013ec0ca4a32cc6433f53faa2a014ec364031408540ba858c2172bb0"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:250ae39445cb5475e483a36b1061af1bc233de3e9ad0f4f76a71b66231b07f88"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a32204489259786a923e02990249c65b0f17235073149d0033efcebe80095570"}, - {file = "pydantic_core-2.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6395a4435fa26519fd96fdccb77e9d00ddae9dd6c742309bd0b5610609ad7fb2"}, - {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2533ad2883f001efa72f3d0e733fb846710c3af6dcdd544fe5bf14fa5fe2d7db"}, - {file = "pydantic_core-2.18.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b560b72ed4816aee52783c66854d96157fd8175631f01ef58e894cc57c84f0f6"}, - {file = "pydantic_core-2.18.1-cp39-none-win32.whl", hash = "sha256:582cf2cead97c9e382a7f4d3b744cf0ef1a6e815e44d3aa81af3ad98762f5a9b"}, - {file = "pydantic_core-2.18.1-cp39-none-win_amd64.whl", hash = "sha256:ca71d501629d1fa50ea7fa3b08ba884fe10cefc559f5c6c8dfe9036c16e8ae89"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e178e5b66a06ec5bf51668ec0d4ac8cfb2bdcb553b2c207d58148340efd00143"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:72722ce529a76a4637a60be18bd789d8fb871e84472490ed7ddff62d5fed620d"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fe0c1ce5b129455e43f941f7a46f61f3d3861e571f2905d55cdbb8b5c6f5e2c"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4284c621f06a72ce2cb55f74ea3150113d926a6eb78ab38340c08f770eb9b4d"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a0c3e718f4e064efde68092d9d974e39572c14e56726ecfaeebbe6544521f47"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2027493cc44c23b598cfaf200936110433d9caa84e2c6cf487a83999638a96ac"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:76909849d1a6bffa5a07742294f3fa1d357dc917cb1fe7b470afbc3a7579d539"}, - {file = "pydantic_core-2.18.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ee7ccc7fb7e921d767f853b47814c3048c7de536663e82fbc37f5eb0d532224b"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee2794111c188548a4547eccc73a6a8527fe2af6cf25e1a4ebda2fd01cdd2e60"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a139fe9f298dc097349fb4f28c8b81cc7a202dbfba66af0e14be5cfca4ef7ce5"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d074b07a10c391fc5bbdcb37b2f16f20fcd9e51e10d01652ab298c0d07908ee2"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c69567ddbac186e8c0aadc1f324a60a564cfe25e43ef2ce81bcc4b8c3abffbae"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:baf1c7b78cddb5af00971ad5294a4583188bda1495b13760d9f03c9483bb6203"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:2684a94fdfd1b146ff10689c6e4e815f6a01141781c493b97342cdc5b06f4d5d"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:73c1bc8a86a5c9e8721a088df234265317692d0b5cd9e86e975ce3bc3db62a59"}, - {file = "pydantic_core-2.18.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e60defc3c15defb70bb38dd605ff7e0fae5f6c9c7cbfe0ad7868582cb7e844a6"}, - {file = "pydantic_core-2.18.1.tar.gz", hash = "sha256:de9d3e8717560eb05e28739d1b35e4eac2e458553a52a301e51352a7ffc86a35"}, + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"}, + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"}, + {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"}, + {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"}, + {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"}, + {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"}, + {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"}, + {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"}, + {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"}, + {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"}, + {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"}, + {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"}, + {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"}, + {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"}, + {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"}, ] [package.dependencies] @@ -2222,6 +2270,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -2258,13 +2307,13 @@ files = [ [[package]] name = "referencing" -version = "0.34.0" +version = "0.35.0" description = "JSON Referencing + Python" optional = true python-versions = ">=3.8" files = [ - {file = "referencing-0.34.0-py3-none-any.whl", hash = "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4"}, - {file = "referencing-0.34.0.tar.gz", hash = "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844"}, + {file = "referencing-0.35.0-py3-none-any.whl", hash = "sha256:8080727b30e364e5783152903672df9b6b091c926a146a759080b62ca3126cd6"}, + {file = "referencing-0.35.0.tar.gz", hash = "sha256:191e936b0c696d0af17ad7430a3dc68e88bc11be6514f4757dc890f04ab05889"}, ] [package.dependencies] @@ -2273,104 +2322,90 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2024.4.16" +version = "2024.4.28" description = "Alternative regular expression module, to replace re." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "regex-2024.4.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb83cc090eac63c006871fd24db5e30a1f282faa46328572661c0a24a2323a08"}, - {file = "regex-2024.4.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8c91e1763696c0eb66340c4df98623c2d4e77d0746b8f8f2bee2c6883fd1fe18"}, - {file = "regex-2024.4.16-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:10188fe732dec829c7acca7422cdd1bf57d853c7199d5a9e96bb4d40db239c73"}, - {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:956b58d692f235cfbf5b4f3abd6d99bf102f161ccfe20d2fd0904f51c72c4c66"}, - {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a70b51f55fd954d1f194271695821dd62054d949efd6368d8be64edd37f55c86"}, - {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c02fcd2bf45162280613d2e4a1ca3ac558ff921ae4e308ecb307650d3a6ee51"}, - {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4ed75ea6892a56896d78f11006161eea52c45a14994794bcfa1654430984b22"}, - {file = "regex-2024.4.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd727ad276bb91928879f3aa6396c9a1d34e5e180dce40578421a691eeb77f47"}, - {file = "regex-2024.4.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7cbc5d9e8a1781e7be17da67b92580d6ce4dcef5819c1b1b89f49d9678cc278c"}, - {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:78fddb22b9ef810b63ef341c9fcf6455232d97cfe03938cbc29e2672c436670e"}, - {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:445ca8d3c5a01309633a0c9db57150312a181146315693273e35d936472df912"}, - {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:95399831a206211d6bc40224af1c635cb8790ddd5c7493e0bd03b85711076a53"}, - {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7731728b6568fc286d86745f27f07266de49603a6fdc4d19c87e8c247be452af"}, - {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4facc913e10bdba42ec0aee76d029aedda628161a7ce4116b16680a0413f658a"}, - {file = "regex-2024.4.16-cp310-cp310-win32.whl", hash = "sha256:911742856ce98d879acbea33fcc03c1d8dc1106234c5e7d068932c945db209c0"}, - {file = "regex-2024.4.16-cp310-cp310-win_amd64.whl", hash = "sha256:e0a2df336d1135a0b3a67f3bbf78a75f69562c1199ed9935372b82215cddd6e2"}, - {file = "regex-2024.4.16-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1210365faba7c2150451eb78ec5687871c796b0f1fa701bfd2a4a25420482d26"}, - {file = "regex-2024.4.16-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9ab40412f8cd6f615bfedea40c8bf0407d41bf83b96f6fc9ff34976d6b7037fd"}, - {file = "regex-2024.4.16-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fd80d1280d473500d8086d104962a82d77bfbf2b118053824b7be28cd5a79ea5"}, - {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bb966fdd9217e53abf824f437a5a2d643a38d4fd5fd0ca711b9da683d452969"}, - {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:20b7a68444f536365af42a75ccecb7ab41a896a04acf58432db9e206f4e525d6"}, - {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b74586dd0b039c62416034f811d7ee62810174bb70dffcca6439f5236249eb09"}, - {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8290b44d8b0af4e77048646c10c6e3aa583c1ca67f3b5ffb6e06cf0c6f0f89"}, - {file = "regex-2024.4.16-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2d80a6749724b37853ece57988b39c4e79d2b5fe2869a86e8aeae3bbeef9eb0"}, - {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3a1018e97aeb24e4f939afcd88211ace472ba566efc5bdf53fd8fd7f41fa7170"}, - {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8d015604ee6204e76569d2f44e5a210728fa917115bef0d102f4107e622b08d5"}, - {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:3d5ac5234fb5053850d79dd8eb1015cb0d7d9ed951fa37aa9e6249a19aa4f336"}, - {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:0a38d151e2cdd66d16dab550c22f9521ba79761423b87c01dae0a6e9add79c0d"}, - {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:159dc4e59a159cb8e4e8f8961eb1fa5d58f93cb1acd1701d8aff38d45e1a84a6"}, - {file = "regex-2024.4.16-cp311-cp311-win32.whl", hash = "sha256:ba2336d6548dee3117520545cfe44dc28a250aa091f8281d28804aa8d707d93d"}, - {file = "regex-2024.4.16-cp311-cp311-win_amd64.whl", hash = "sha256:8f83b6fd3dc3ba94d2b22717f9c8b8512354fd95221ac661784df2769ea9bba9"}, - {file = "regex-2024.4.16-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:80b696e8972b81edf0af2a259e1b2a4a661f818fae22e5fa4fa1a995fb4a40fd"}, - {file = "regex-2024.4.16-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d61ae114d2a2311f61d90c2ef1358518e8f05eafda76eaf9c772a077e0b465ec"}, - {file = "regex-2024.4.16-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ba6745440b9a27336443b0c285d705ce73adb9ec90e2f2004c64d95ab5a7598"}, - {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6295004b2dd37b0835ea5c14a33e00e8cfa3c4add4d587b77287825f3418d310"}, - {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4aba818dcc7263852aabb172ec27b71d2abca02a593b95fa79351b2774eb1d2b"}, - {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0800631e565c47520aaa04ae38b96abc5196fe8b4aa9bd864445bd2b5848a7a"}, - {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08dea89f859c3df48a440dbdcd7b7155bc675f2fa2ec8c521d02dc69e877db70"}, - {file = "regex-2024.4.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eeaa0b5328b785abc344acc6241cffde50dc394a0644a968add75fcefe15b9d4"}, - {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4e819a806420bc010489f4e741b3036071aba209f2e0989d4750b08b12a9343f"}, - {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:c2d0e7cbb6341e830adcbfa2479fdeebbfbb328f11edd6b5675674e7a1e37730"}, - {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:91797b98f5e34b6a49f54be33f72e2fb658018ae532be2f79f7c63b4ae225145"}, - {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:d2da13568eff02b30fd54fccd1e042a70fe920d816616fda4bf54ec705668d81"}, - {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:370c68dc5570b394cbaadff50e64d705f64debed30573e5c313c360689b6aadc"}, - {file = "regex-2024.4.16-cp312-cp312-win32.whl", hash = "sha256:904c883cf10a975b02ab3478bce652f0f5346a2c28d0a8521d97bb23c323cc8b"}, - {file = "regex-2024.4.16-cp312-cp312-win_amd64.whl", hash = "sha256:785c071c982dce54d44ea0b79cd6dfafddeccdd98cfa5f7b86ef69b381b457d9"}, - {file = "regex-2024.4.16-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e2f142b45c6fed48166faeb4303b4b58c9fcd827da63f4cf0a123c3480ae11fb"}, - {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e87ab229332ceb127a165612d839ab87795972102cb9830e5f12b8c9a5c1b508"}, - {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81500ed5af2090b4a9157a59dbc89873a25c33db1bb9a8cf123837dcc9765047"}, - {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b340cccad138ecb363324aa26893963dcabb02bb25e440ebdf42e30963f1a4e0"}, - {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c72608e70f053643437bd2be0608f7f1c46d4022e4104d76826f0839199347a"}, - {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a01fe2305e6232ef3e8f40bfc0f0f3a04def9aab514910fa4203bafbc0bb4682"}, - {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:03576e3a423d19dda13e55598f0fd507b5d660d42c51b02df4e0d97824fdcae3"}, - {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:549c3584993772e25f02d0656ac48abdda73169fe347263948cf2b1cead622f3"}, - {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:34422d5a69a60b7e9a07a690094e824b66f5ddc662a5fc600d65b7c174a05f04"}, - {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:5f580c651a72b75c39e311343fe6875d6f58cf51c471a97f15a938d9fe4e0d37"}, - {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:3399dd8a7495bbb2bacd59b84840eef9057826c664472e86c91d675d007137f5"}, - {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8d1f86f3f4e2388aa3310b50694ac44daefbd1681def26b4519bd050a398dc5a"}, - {file = "regex-2024.4.16-cp37-cp37m-win32.whl", hash = "sha256:dd5acc0a7d38fdc7a3a6fd3ad14c880819008ecb3379626e56b163165162cc46"}, - {file = "regex-2024.4.16-cp37-cp37m-win_amd64.whl", hash = "sha256:ba8122e3bb94ecda29a8de4cf889f600171424ea586847aa92c334772d200331"}, - {file = "regex-2024.4.16-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:743deffdf3b3481da32e8a96887e2aa945ec6685af1cfe2bcc292638c9ba2f48"}, - {file = "regex-2024.4.16-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7571f19f4a3fd00af9341c7801d1ad1967fc9c3f5e62402683047e7166b9f2b4"}, - {file = "regex-2024.4.16-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:df79012ebf6f4efb8d307b1328226aef24ca446b3ff8d0e30202d7ebcb977a8c"}, - {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e757d475953269fbf4b441207bb7dbdd1c43180711b6208e129b637792ac0b93"}, - {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4313ab9bf6a81206c8ac28fdfcddc0435299dc88cad12cc6305fd0e78b81f9e4"}, - {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d83c2bc678453646f1a18f8db1e927a2d3f4935031b9ad8a76e56760461105dd"}, - {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9df1bfef97db938469ef0a7354b2d591a2d438bc497b2c489471bec0e6baf7c4"}, - {file = "regex-2024.4.16-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62120ed0de69b3649cc68e2965376048793f466c5a6c4370fb27c16c1beac22d"}, - {file = "regex-2024.4.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c2ef6f7990b6e8758fe48ad08f7e2f66c8f11dc66e24093304b87cae9037bb4a"}, - {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8fc6976a3395fe4d1fbeb984adaa8ec652a1e12f36b56ec8c236e5117b585427"}, - {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:03e68f44340528111067cecf12721c3df4811c67268b897fbe695c95f860ac42"}, - {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ec7e0043b91115f427998febaa2beb82c82df708168b35ece3accb610b91fac1"}, - {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c21fc21a4c7480479d12fd8e679b699f744f76bb05f53a1d14182b31f55aac76"}, - {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:12f6a3f2f58bb7344751919a1876ee1b976fe08b9ffccb4bbea66f26af6017b9"}, - {file = "regex-2024.4.16-cp38-cp38-win32.whl", hash = "sha256:479595a4fbe9ed8f8f72c59717e8cf222da2e4c07b6ae5b65411e6302af9708e"}, - {file = "regex-2024.4.16-cp38-cp38-win_amd64.whl", hash = "sha256:0534b034fba6101611968fae8e856c1698da97ce2efb5c2b895fc8b9e23a5834"}, - {file = "regex-2024.4.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a7ccdd1c4a3472a7533b0a7aa9ee34c9a2bef859ba86deec07aff2ad7e0c3b94"}, - {file = "regex-2024.4.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f2f017c5be19984fbbf55f8af6caba25e62c71293213f044da3ada7091a4455"}, - {file = "regex-2024.4.16-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:803b8905b52de78b173d3c1e83df0efb929621e7b7c5766c0843704d5332682f"}, - {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:684008ec44ad275832a5a152f6e764bbe1914bea10968017b6feaecdad5736e0"}, - {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65436dce9fdc0aeeb0a0effe0839cb3d6a05f45aa45a4d9f9c60989beca78b9c"}, - {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea355eb43b11764cf799dda62c658c4d2fdb16af41f59bb1ccfec517b60bcb07"}, - {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98c1165f3809ce7774f05cb74e5408cd3aa93ee8573ae959a97a53db3ca3180d"}, - {file = "regex-2024.4.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cccc79a9be9b64c881f18305a7c715ba199e471a3973faeb7ba84172abb3f317"}, - {file = "regex-2024.4.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00169caa125f35d1bca6045d65a662af0202704489fada95346cfa092ec23f39"}, - {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6cc38067209354e16c5609b66285af17a2863a47585bcf75285cab33d4c3b8df"}, - {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:23cff1b267038501b179ccbbd74a821ac4a7192a1852d1d558e562b507d46013"}, - {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:b9d320b3bf82a39f248769fc7f188e00f93526cc0fe739cfa197868633d44701"}, - {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:89ec7f2c08937421bbbb8b48c54096fa4f88347946d4747021ad85f1b3021b3c"}, - {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4918fd5f8b43aa7ec031e0fef1ee02deb80b6afd49c85f0790be1dc4ce34cb50"}, - {file = "regex-2024.4.16-cp39-cp39-win32.whl", hash = "sha256:684e52023aec43bdf0250e843e1fdd6febbe831bd9d52da72333fa201aaa2335"}, - {file = "regex-2024.4.16-cp39-cp39-win_amd64.whl", hash = "sha256:e697e1c0238133589e00c244a8b676bc2cfc3ab4961318d902040d099fec7483"}, - {file = "regex-2024.4.16.tar.gz", hash = "sha256:fa454d26f2e87ad661c4f0c5a5fe4cf6aab1e307d1b94f16ffdfcb089ba685c0"}, + {file = "regex-2024.4.28-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd196d056b40af073d95a2879678585f0b74ad35190fac04ca67954c582c6b61"}, + {file = "regex-2024.4.28-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8bb381f777351bd534462f63e1c6afb10a7caa9fa2a421ae22c26e796fe31b1f"}, + {file = "regex-2024.4.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:47af45b6153522733aa6e92543938e97a70ce0900649ba626cf5aad290b737b6"}, + {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99d6a550425cc51c656331af0e2b1651e90eaaa23fb4acde577cf15068e2e20f"}, + {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bf29304a8011feb58913c382902fde3395957a47645bf848eea695839aa101b7"}, + {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:92da587eee39a52c91aebea8b850e4e4f095fe5928d415cb7ed656b3460ae79a"}, + {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6277d426e2f31bdbacb377d17a7475e32b2d7d1f02faaecc48d8e370c6a3ff31"}, + {file = "regex-2024.4.28-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28e1f28d07220c0f3da0e8fcd5a115bbb53f8b55cecf9bec0c946eb9a059a94c"}, + {file = "regex-2024.4.28-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:aaa179975a64790c1f2701ac562b5eeb733946eeb036b5bcca05c8d928a62f10"}, + {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6f435946b7bf7a1b438b4e6b149b947c837cb23c704e780c19ba3e6855dbbdd3"}, + {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:19d6c11bf35a6ad077eb23852827f91c804eeb71ecb85db4ee1386825b9dc4db"}, + {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:fdae0120cddc839eb8e3c15faa8ad541cc6d906d3eb24d82fb041cfe2807bc1e"}, + {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e672cf9caaf669053121f1766d659a8813bd547edef6e009205378faf45c67b8"}, + {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f57515750d07e14743db55d59759893fdb21d2668f39e549a7d6cad5d70f9fea"}, + {file = "regex-2024.4.28-cp310-cp310-win32.whl", hash = "sha256:a1409c4eccb6981c7baabc8888d3550df518add6e06fe74fa1d9312c1838652d"}, + {file = "regex-2024.4.28-cp310-cp310-win_amd64.whl", hash = "sha256:1f687a28640f763f23f8a9801fe9e1b37338bb1ca5d564ddd41619458f1f22d1"}, + {file = "regex-2024.4.28-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:84077821c85f222362b72fdc44f7a3a13587a013a45cf14534df1cbbdc9a6796"}, + {file = "regex-2024.4.28-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b45d4503de8f4f3dc02f1d28a9b039e5504a02cc18906cfe744c11def942e9eb"}, + {file = "regex-2024.4.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:457c2cd5a646dd4ed536c92b535d73548fb8e216ebee602aa9f48e068fc393f3"}, + {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b51739ddfd013c6f657b55a508de8b9ea78b56d22b236052c3a85a675102dc6"}, + {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:459226445c7d7454981c4c0ce0ad1a72e1e751c3e417f305722bbcee6697e06a"}, + {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:670fa596984b08a4a769491cbdf22350431970d0112e03d7e4eeaecaafcd0fec"}, + {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe00f4fe11c8a521b173e6324d862ee7ee3412bf7107570c9b564fe1119b56fb"}, + {file = "regex-2024.4.28-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:36f392dc7763fe7924575475736bddf9ab9f7a66b920932d0ea50c2ded2f5636"}, + {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:23a412b7b1a7063f81a742463f38821097b6a37ce1e5b89dd8e871d14dbfd86b"}, + {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f1d6e4b7b2ae3a6a9df53efbf199e4bfcff0959dbdb5fd9ced34d4407348e39a"}, + {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:499334ad139557de97cbc4347ee921c0e2b5e9c0f009859e74f3f77918339257"}, + {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:0940038bec2fe9e26b203d636c44d31dd8766abc1fe66262da6484bd82461ccf"}, + {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:66372c2a01782c5fe8e04bff4a2a0121a9897e19223d9eab30c54c50b2ebeb7f"}, + {file = "regex-2024.4.28-cp311-cp311-win32.whl", hash = "sha256:c77d10ec3c1cf328b2f501ca32583625987ea0f23a0c2a49b37a39ee5c4c4630"}, + {file = "regex-2024.4.28-cp311-cp311-win_amd64.whl", hash = "sha256:fc0916c4295c64d6890a46e02d4482bb5ccf33bf1a824c0eaa9e83b148291f90"}, + {file = "regex-2024.4.28-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:08a1749f04fee2811c7617fdd46d2e46d09106fa8f475c884b65c01326eb15c5"}, + {file = "regex-2024.4.28-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b8eb28995771c087a73338f695a08c9abfdf723d185e57b97f6175c5051ff1ae"}, + {file = "regex-2024.4.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dd7ef715ccb8040954d44cfeff17e6b8e9f79c8019daae2fd30a8806ef5435c0"}, + {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb0315a2b26fde4005a7c401707c5352df274460f2f85b209cf6024271373013"}, + {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f2fc053228a6bd3a17a9b0a3f15c3ab3cf95727b00557e92e1cfe094b88cc662"}, + {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7fe9739a686dc44733d52d6e4f7b9c77b285e49edf8570754b322bca6b85b4cc"}, + {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74fcf77d979364f9b69fcf8200849ca29a374973dc193a7317698aa37d8b01c"}, + {file = "regex-2024.4.28-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:965fd0cf4694d76f6564896b422724ec7b959ef927a7cb187fc6b3f4e4f59833"}, + {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2fef0b38c34ae675fcbb1b5db760d40c3fc3612cfa186e9e50df5782cac02bcd"}, + {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bc365ce25f6c7c5ed70e4bc674f9137f52b7dd6a125037f9132a7be52b8a252f"}, + {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:ac69b394764bb857429b031d29d9604842bc4cbfd964d764b1af1868eeebc4f0"}, + {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:144a1fc54765f5c5c36d6d4b073299832aa1ec6a746a6452c3ee7b46b3d3b11d"}, + {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2630ca4e152c221072fd4a56d4622b5ada876f668ecd24d5ab62544ae6793ed6"}, + {file = "regex-2024.4.28-cp312-cp312-win32.whl", hash = "sha256:7f3502f03b4da52bbe8ba962621daa846f38489cae5c4a7b5d738f15f6443d17"}, + {file = "regex-2024.4.28-cp312-cp312-win_amd64.whl", hash = "sha256:0dd3f69098511e71880fb00f5815db9ed0ef62c05775395968299cb400aeab82"}, + {file = "regex-2024.4.28-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:374f690e1dd0dbdcddea4a5c9bdd97632cf656c69113f7cd6a361f2a67221cb6"}, + {file = "regex-2024.4.28-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f87ae6b96374db20f180eab083aafe419b194e96e4f282c40191e71980c666"}, + {file = "regex-2024.4.28-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5dbc1bcc7413eebe5f18196e22804a3be1bfdfc7e2afd415e12c068624d48247"}, + {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f85151ec5a232335f1be022b09fbbe459042ea1951d8a48fef251223fc67eee1"}, + {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:57ba112e5530530fd175ed550373eb263db4ca98b5f00694d73b18b9a02e7185"}, + {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:224803b74aab56aa7be313f92a8d9911dcade37e5f167db62a738d0c85fdac4b"}, + {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a54a047b607fd2d2d52a05e6ad294602f1e0dec2291152b745870afc47c1397"}, + {file = "regex-2024.4.28-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a2a512d623f1f2d01d881513af9fc6a7c46e5cfffb7dc50c38ce959f9246c94"}, + {file = "regex-2024.4.28-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c06bf3f38f0707592898428636cbb75d0a846651b053a1cf748763e3063a6925"}, + {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1031a5e7b048ee371ab3653aad3030ecfad6ee9ecdc85f0242c57751a05b0ac4"}, + {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d7a353ebfa7154c871a35caca7bfd8f9e18666829a1dc187115b80e35a29393e"}, + {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:7e76b9cfbf5ced1aca15a0e5b6f229344d9b3123439ffce552b11faab0114a02"}, + {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5ce479ecc068bc2a74cb98dd8dba99e070d1b2f4a8371a7dfe631f85db70fe6e"}, + {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7d77b6f63f806578c604dca209280e4c54f0fa9a8128bb8d2cc5fb6f99da4150"}, + {file = "regex-2024.4.28-cp38-cp38-win32.whl", hash = "sha256:d84308f097d7a513359757c69707ad339da799e53b7393819ec2ea36bc4beb58"}, + {file = "regex-2024.4.28-cp38-cp38-win_amd64.whl", hash = "sha256:2cc1b87bba1dd1a898e664a31012725e48af826bf3971e786c53e32e02adae6c"}, + {file = "regex-2024.4.28-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7413167c507a768eafb5424413c5b2f515c606be5bb4ef8c5dee43925aa5718b"}, + {file = "regex-2024.4.28-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:108e2dcf0b53a7c4ab8986842a8edcb8ab2e59919a74ff51c296772e8e74d0ae"}, + {file = "regex-2024.4.28-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f1c5742c31ba7d72f2dedf7968998730664b45e38827637e0f04a2ac7de2f5f1"}, + {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecc6148228c9ae25ce403eade13a0961de1cb016bdb35c6eafd8e7b87ad028b1"}, + {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7d893c8cf0e2429b823ef1a1d360a25950ed11f0e2a9df2b5198821832e1947"}, + {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4290035b169578ffbbfa50d904d26bec16a94526071ebec3dadbebf67a26b25e"}, + {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44a22ae1cfd82e4ffa2066eb3390777dc79468f866f0625261a93e44cdf6482b"}, + {file = "regex-2024.4.28-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd24fd140b69f0b0bcc9165c397e9b2e89ecbeda83303abf2a072609f60239e2"}, + {file = "regex-2024.4.28-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:39fb166d2196413bead229cd64a2ffd6ec78ebab83fff7d2701103cf9f4dfd26"}, + {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9301cc6db4d83d2c0719f7fcda37229691745168bf6ae849bea2e85fc769175d"}, + {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c3d389e8d76a49923683123730c33e9553063d9041658f23897f0b396b2386f"}, + {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:99ef6289b62042500d581170d06e17f5353b111a15aa6b25b05b91c6886df8fc"}, + {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:b91d529b47798c016d4b4c1d06cc826ac40d196da54f0de3c519f5a297c5076a"}, + {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:43548ad74ea50456e1c68d3c67fff3de64c6edb85bcd511d1136f9b5376fc9d1"}, + {file = "regex-2024.4.28-cp39-cp39-win32.whl", hash = "sha256:05d9b6578a22db7dedb4df81451f360395828b04f4513980b6bd7a1412c679cc"}, + {file = "regex-2024.4.28-cp39-cp39-win_amd64.whl", hash = "sha256:3986217ec830c2109875be740531feb8ddafe0dfa49767cdcd072ed7e8927962"}, + {file = "regex-2024.4.28.tar.gz", hash = "sha256:83ab366777ea45d58f72593adf35d36ca911ea8bd838483c1823b883a121b0e4"}, ] [[package]] @@ -2761,6 +2796,19 @@ files = [ [package.dependencies] mpmath = ">=0.19" +[[package]] +name = "tbb" +version = "2021.12.0" +description = "Intel® oneAPI Threading Building Blocks (oneTBB)" +optional = true +python-versions = "*" +files = [ + {file = "tbb-2021.12.0-py2.py3-none-manylinux1_i686.whl", hash = "sha256:f2cc9a7f8ababaa506cbff796ce97c3bf91062ba521e15054394f773375d81d8"}, + {file = "tbb-2021.12.0-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:a925e9a7c77d3a46ae31c34b0bb7f801c4118e857d137b68f68a8e458fcf2bd7"}, + {file = "tbb-2021.12.0-py3-none-win32.whl", hash = "sha256:b1725b30c174048edc8be70bd43bb95473f396ce895d91151a474d0fa9f450a8"}, + {file = "tbb-2021.12.0-py3-none-win_amd64.whl", hash = "sha256:fc2772d850229f2f3df85f1109c4844c495a2db7433d38200959ee9265b34789"}, +] + [[package]] name = "texttable" version = "1.7.0" @@ -2902,42 +2950,38 @@ files = [ [[package]] name = "torch" -version = "2.2.2" +version = "2.3.0" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" optional = true python-versions = ">=3.8.0" files = [ - {file = "torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:bc889d311a855dd2dfd164daf8cc903a6b7273a747189cebafdd89106e4ad585"}, - {file = "torch-2.2.2-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:15dffa4cc3261fa73d02f0ed25f5fa49ecc9e12bf1ae0a4c1e7a88bbfaad9030"}, - {file = "torch-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:11e8fe261233aeabd67696d6b993eeb0896faa175c6b41b9a6c9f0334bdad1c5"}, - {file = "torch-2.2.2-cp310-none-macosx_10_9_x86_64.whl", hash = "sha256:b2e2200b245bd9f263a0d41b6a2dab69c4aca635a01b30cca78064b0ef5b109e"}, - {file = "torch-2.2.2-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:877b3e6593b5e00b35bbe111b7057464e76a7dd186a287280d941b564b0563c2"}, - {file = "torch-2.2.2-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:ad4c03b786e074f46606f4151c0a1e3740268bcf29fbd2fdf6666d66341c1dcb"}, - {file = "torch-2.2.2-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:32827fa1fbe5da8851686256b4cd94cc7b11be962862c2293811c94eea9457bf"}, - {file = "torch-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:f9ef0a648310435511e76905f9b89612e45ef2c8b023bee294f5e6f7e73a3e7c"}, - {file = "torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl", hash = "sha256:95b9b44f3bcebd8b6cd8d37ec802048c872d9c567ba52c894bba90863a439059"}, - {file = "torch-2.2.2-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:49aa4126ede714c5aeef7ae92969b4b0bbe67f19665106463c39f22e0a1860d1"}, - {file = "torch-2.2.2-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:cf12cdb66c9c940227ad647bc9cf5dba7e8640772ae10dfe7569a0c1e2a28aca"}, - {file = "torch-2.2.2-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:89ddac2a8c1fb6569b90890955de0c34e1724f87431cacff4c1979b5f769203c"}, - {file = "torch-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:451331406b760f4b1ab298ddd536486ab3cfb1312614cfe0532133535be60bea"}, - {file = "torch-2.2.2-cp312-none-macosx_10_9_x86_64.whl", hash = "sha256:eb4d6e9d3663e26cd27dc3ad266b34445a16b54908e74725adb241aa56987533"}, - {file = "torch-2.2.2-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:bf9558da7d2bf7463390b3b2a61a6a3dbb0b45b161ee1dd5ec640bf579d479fc"}, - {file = "torch-2.2.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:cd2bf7697c9e95fb5d97cc1d525486d8cf11a084c6af1345c2c2c22a6b0029d0"}, - {file = "torch-2.2.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:b421448d194496e1114d87a8b8d6506bce949544e513742b097e2ab8f7efef32"}, - {file = "torch-2.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:3dbcd563a9b792161640c0cffe17e3270d85e8f4243b1f1ed19cca43d28d235b"}, - {file = "torch-2.2.2-cp38-none-macosx_10_9_x86_64.whl", hash = "sha256:31f4310210e7dda49f1fb52b0ec9e59382cfcb938693f6d5378f25b43d7c1d29"}, - {file = "torch-2.2.2-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:c795feb7e8ce2e0ef63f75f8e1ab52e7fd5e1a4d7d0c31367ade1e3de35c9e95"}, - {file = "torch-2.2.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:a6e5770d68158d07456bfcb5318b173886f579fdfbf747543901ce718ea94782"}, - {file = "torch-2.2.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:67dcd726edff108e2cd6c51ff0e416fd260c869904de95750e80051358680d24"}, - {file = "torch-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:539d5ef6c4ce15bd3bd47a7b4a6e7c10d49d4d21c0baaa87c7d2ef8698632dfb"}, - {file = "torch-2.2.2-cp39-none-macosx_10_9_x86_64.whl", hash = "sha256:dff696de90d6f6d1e8200e9892861fd4677306d0ef604cb18f2134186f719f82"}, - {file = "torch-2.2.2-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:3a4dd910663fd7a124c056c878a52c2b0be4a5a424188058fe97109d4436ee42"}, + {file = "torch-2.3.0-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:d8ea5a465dbfd8501f33c937d1f693176c9aef9d1c1b0ca1d44ed7b0a18c52ac"}, + {file = "torch-2.3.0-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:09c81c5859a5b819956c6925a405ef1cdda393c9d8a01ce3851453f699d3358c"}, + {file = "torch-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:1bf023aa20902586f614f7682fedfa463e773e26c58820b74158a72470259459"}, + {file = "torch-2.3.0-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:758ef938de87a2653bba74b91f703458c15569f1562bf4b6c63c62d9c5a0c1f5"}, + {file = "torch-2.3.0-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:493d54ee2f9df100b5ce1d18c96dbb8d14908721f76351e908c9d2622773a788"}, + {file = "torch-2.3.0-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:bce43af735c3da16cc14c7de2be7ad038e2fbf75654c2e274e575c6c05772ace"}, + {file = "torch-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:729804e97b7cf19ae9ab4181f91f5e612af07956f35c8b2c8e9d9f3596a8e877"}, + {file = "torch-2.3.0-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:d24e328226d8e2af7cf80fcb1d2f1d108e0de32777fab4aaa2b37b9765d8be73"}, + {file = "torch-2.3.0-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:b0de2bdc0486ea7b14fc47ff805172df44e421a7318b7c4d92ef589a75d27410"}, + {file = "torch-2.3.0-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:a306c87a3eead1ed47457822c01dfbd459fe2920f2d38cbdf90de18f23f72542"}, + {file = "torch-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:f9b98bf1a3c8af2d4c41f0bf1433920900896c446d1ddc128290ff146d1eb4bd"}, + {file = "torch-2.3.0-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:dca986214267b34065a79000cee54232e62b41dff1ec2cab9abc3fc8b3dee0ad"}, + {file = "torch-2.3.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:20572f426965dd8a04e92a473d7e445fa579e09943cc0354f3e6fef6130ce061"}, + {file = "torch-2.3.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e65ba85ae292909cde0dde6369826d51165a3fc8823dc1854cd9432d7f79b932"}, + {file = "torch-2.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:5515503a193781fd1b3f5c474e89c9dfa2faaa782b2795cc4a7ab7e67de923f6"}, + {file = "torch-2.3.0-cp38-none-macosx_11_0_arm64.whl", hash = "sha256:6ae9f64b09516baa4ef890af0672dc981c20b1f0d829ce115d4420a247e88fba"}, + {file = "torch-2.3.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cd0dc498b961ab19cb3f8dbf0c6c50e244f2f37dbfa05754ab44ea057c944ef9"}, + {file = "torch-2.3.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:e05f836559251e4096f3786ee99f4a8cbe67bc7fbedba8ad5e799681e47c5e80"}, + {file = "torch-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:4fb27b35dbb32303c2927da86e27b54a92209ddfb7234afb1949ea2b3effffea"}, + {file = "torch-2.3.0-cp39-none-macosx_11_0_arm64.whl", hash = "sha256:760f8bedff506ce9e6e103498f9b1e9e15809e008368594c3a66bf74a8a51380"}, ] [package.dependencies] filelock = "*" fsspec = "*" jinja2 = "*" +mkl = {version = ">=2021.1.1,<=2021.4.0", markers = "platform_system == \"Windows\""} networkx = "*" nvidia-cublas-cu12 = {version = "12.1.3.1", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-cuda-cupti-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} @@ -2948,10 +2992,10 @@ nvidia-cufft-cu12 = {version = "11.0.2.54", markers = "platform_system == \"Linu nvidia-curand-cu12 = {version = "10.3.2.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-cusolver-cu12 = {version = "11.4.5.107", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-cusparse-cu12 = {version = "12.1.0.106", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} -nvidia-nccl-cu12 = {version = "2.19.3", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +nvidia-nccl-cu12 = {version = "2.20.5", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} nvidia-nvtx-cu12 = {version = "12.1.105", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} sympy = "*" -triton = {version = "2.2.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\" and python_version < \"3.12\""} +triton = {version = "2.3.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\" and python_version < \"3.12\""} typing-extensions = ">=4.8.0" [package.extras] @@ -2980,13 +3024,13 @@ telegram = ["requests"] [[package]] name = "transformers" -version = "4.40.0" +version = "4.40.1" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" optional = false python-versions = ">=3.8.0" files = [ - {file = "transformers-4.40.0-py3-none-any.whl", hash = "sha256:92797ec3368ed4476a053529a4039a12ad09167d9e371981dda4afb4bdf590ac"}, - {file = "transformers-4.40.0.tar.gz", hash = "sha256:fdb01dfe6a492bd34e3fa2aefffa470b1d8a2341db47a932f83ed33839d96b03"}, + {file = "transformers-4.40.1-py3-none-any.whl", hash = "sha256:9d5ee0c8142a60501faf9e49a0b42f8e9cb8611823bce4f195a9325a6816337e"}, + {file = "transformers-4.40.1.tar.gz", hash = "sha256:55e1697e6f18b58273e7117bb469cdffc11be28995462d8d5e422fef38d2de36"}, ] [package.dependencies] @@ -3048,17 +3092,17 @@ vision = ["Pillow (>=10.0.1,<=15.0)"] [[package]] name = "triton" -version = "2.2.0" +version = "2.3.0" description = "A language and compiler for custom Deep Learning operations" optional = true python-versions = "*" files = [ - {file = "triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2294514340cfe4e8f4f9e5c66c702744c4a117d25e618bd08469d0bfed1e2e5"}, - {file = "triton-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da58a152bddb62cafa9a857dd2bc1f886dbf9f9c90a2b5da82157cd2b34392b0"}, - {file = "triton-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af58716e721460a61886668b205963dc4d1e4ac20508cc3f623aef0d70283d5"}, - {file = "triton-2.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8fe46d3ab94a8103e291bd44c741cc294b91d1d81c1a2888254cbf7ff846dab"}, - {file = "triton-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8ce26093e539d727e7cf6f6f0d932b1ab0574dc02567e684377630d86723ace"}, - {file = "triton-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:227cc6f357c5efcb357f3867ac2a8e7ecea2298cd4606a8ba1e931d1d5a947df"}, + {file = "triton-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ce4b8ff70c48e47274c66f269cce8861cf1dc347ceeb7a67414ca151b1822d8"}, + {file = "triton-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c3d9607f85103afdb279938fc1dd2a66e4f5999a58eb48a346bd42738f986dd"}, + {file = "triton-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:218d742e67480d9581bafb73ed598416cc8a56f6316152e5562ee65e33de01c0"}, + {file = "triton-2.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381ec6b3dac06922d3e4099cfc943ef032893b25415de295e82b1a82b0359d2c"}, + {file = "triton-2.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:038e06a09c06a164fef9c48de3af1e13a63dc1ba3c792871e61a8e79720ea440"}, + {file = "triton-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8f636e0341ac348899a47a057c3daea99ea7db31528a225a3ba4ded28ccc65"}, ] [package.dependencies] @@ -3452,4 +3496,4 @@ torch = ["torch"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.13" -content-hash = "438514f5cf9978fbd39b910596634e6ec4a6191d10026dafbb026808eb63c70b" +content-hash = "df83b265d0263870b5d1ae8bfd847f406abef90868fdf528ff38527b512f86c0" diff --git a/server/pyproject.toml b/server/pyproject.toml index 23dc5eee..3868c962 100644 --- a/server/pyproject.toml +++ b/server/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "text-generation-server" -version = "2.0.1" +version = "2.0.2" description = "Text Generation Inference Python gRPC Server" authors = ["Olivier Dehaene "] @@ -31,10 +31,12 @@ einops = "^0.6.1" texttable = { version = "^1.6.7", optional = true } datasets = { version = "^2.14.0", optional = true } peft = { version = "^0.10", optional = true } -torch = { version = "^2.1.1", optional = true } +torch = { version = "^2.3.0", optional = true } scipy = "^1.11.1" pillow = "^10.0.0" outlines= { version = "^0.0.36", optional = true } +prometheus-client = "^0.20.0" +py-cpuinfo = "^9.0.0" [tool.poetry.extras] torch = ["torch"] diff --git a/server/requirements_cuda.txt b/server/requirements_cuda.txt index 5cd03130..c2714764 100644 --- a/server/requirements_cuda.txt +++ b/server/requirements_cuda.txt @@ -5,13 +5,13 @@ click==8.1.7 ; python_version >= "3.9" and python_version < "3.13" colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") deprecated==1.2.14 ; python_version >= "3.9" and python_version < "3.13" einops==0.6.1 ; python_version >= "3.9" and python_version < "3.13" -filelock==3.13.4 ; python_version >= "3.9" and python_version < "3.13" -fsspec==2024.2.0 ; python_version >= "3.9" and python_version < "3.13" +filelock==3.14.0 ; python_version >= "3.9" and python_version < "3.13" +fsspec==2024.3.1 ; python_version >= "3.9" and python_version < "3.13" googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < "3.13" grpc-interceptor==0.15.4 ; python_version >= "3.9" and python_version < "3.13" -grpcio-reflection==1.62.1 ; python_version >= "3.9" and python_version < "3.13" -grpcio-status==1.62.1 ; python_version >= "3.9" and python_version < "3.13" -grpcio==1.62.1 ; python_version >= "3.9" and python_version < "3.13" +grpcio-reflection==1.62.2 ; python_version >= "3.9" and python_version < "3.13" +grpcio-status==1.62.2 ; python_version >= "3.9" and python_version < "3.13" +grpcio==1.62.2 ; python_version >= "3.9" and python_version < "3.13" hf-transfer==0.1.6 ; python_version >= "3.9" and python_version < "3.13" huggingface-hub==0.19.4 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" @@ -28,9 +28,11 @@ opentelemetry-sdk==1.15.0 ; python_version >= "3.9" and python_version < "3.13" opentelemetry-semantic-conventions==0.36b0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.0 ; python_version >= "3.9" and python_version < "3.13" pillow==10.3.0 ; python_version >= "3.9" and python_version < "3.13" +prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.13" +py-cpuinfo==9.0.0 ; python_version >= "3.9" and python_version < "3.13" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" -regex==2024.4.16 ; python_version >= "3.9" and python_version < "3.13" +regex==2024.4.28 ; python_version >= "3.9" and python_version < "3.13" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.13" safetensors==0.4.3 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.0 ; python_version >= "3.9" and python_version < "3.13" @@ -38,7 +40,7 @@ sentencepiece==0.1.99 ; python_version >= "3.9" and python_version < "3.13" setuptools==69.5.1 ; python_version >= "3.9" and python_version < "3.13" tokenizers==0.19.1 ; python_version >= "3.9" and python_version < "3.13" tqdm==4.66.2 ; python_version >= "3.9" and python_version < "3.13" -transformers==4.40.0 ; python_version >= "3.9" and python_version < "3.13" +transformers==4.40.1 ; python_version >= "3.9" and python_version < "3.13" typer==0.6.1 ; python_version >= "3.9" and python_version < "3.13" typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.13" diff --git a/server/requirements_rocm.txt b/server/requirements_rocm.txt index 5cd03130..c2714764 100644 --- a/server/requirements_rocm.txt +++ b/server/requirements_rocm.txt @@ -5,13 +5,13 @@ click==8.1.7 ; python_version >= "3.9" and python_version < "3.13" colorama==0.4.6 ; python_version >= "3.9" and python_version < "3.13" and (sys_platform == "win32" or platform_system == "Windows") deprecated==1.2.14 ; python_version >= "3.9" and python_version < "3.13" einops==0.6.1 ; python_version >= "3.9" and python_version < "3.13" -filelock==3.13.4 ; python_version >= "3.9" and python_version < "3.13" -fsspec==2024.2.0 ; python_version >= "3.9" and python_version < "3.13" +filelock==3.14.0 ; python_version >= "3.9" and python_version < "3.13" +fsspec==2024.3.1 ; python_version >= "3.9" and python_version < "3.13" googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < "3.13" grpc-interceptor==0.15.4 ; python_version >= "3.9" and python_version < "3.13" -grpcio-reflection==1.62.1 ; python_version >= "3.9" and python_version < "3.13" -grpcio-status==1.62.1 ; python_version >= "3.9" and python_version < "3.13" -grpcio==1.62.1 ; python_version >= "3.9" and python_version < "3.13" +grpcio-reflection==1.62.2 ; python_version >= "3.9" and python_version < "3.13" +grpcio-status==1.62.2 ; python_version >= "3.9" and python_version < "3.13" +grpcio==1.62.2 ; python_version >= "3.9" and python_version < "3.13" hf-transfer==0.1.6 ; python_version >= "3.9" and python_version < "3.13" huggingface-hub==0.19.4 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" @@ -28,9 +28,11 @@ opentelemetry-sdk==1.15.0 ; python_version >= "3.9" and python_version < "3.13" opentelemetry-semantic-conventions==0.36b0 ; python_version >= "3.9" and python_version < "3.13" packaging==24.0 ; python_version >= "3.9" and python_version < "3.13" pillow==10.3.0 ; python_version >= "3.9" and python_version < "3.13" +prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.13" +py-cpuinfo==9.0.0 ; python_version >= "3.9" and python_version < "3.13" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" -regex==2024.4.16 ; python_version >= "3.9" and python_version < "3.13" +regex==2024.4.28 ; python_version >= "3.9" and python_version < "3.13" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.13" safetensors==0.4.3 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.0 ; python_version >= "3.9" and python_version < "3.13" @@ -38,7 +40,7 @@ sentencepiece==0.1.99 ; python_version >= "3.9" and python_version < "3.13" setuptools==69.5.1 ; python_version >= "3.9" and python_version < "3.13" tokenizers==0.19.1 ; python_version >= "3.9" and python_version < "3.13" tqdm==4.66.2 ; python_version >= "3.9" and python_version < "3.13" -transformers==4.40.0 ; python_version >= "3.9" and python_version < "3.13" +transformers==4.40.1 ; python_version >= "3.9" and python_version < "3.13" typer==0.6.1 ; python_version >= "3.9" and python_version < "3.13" typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.13" From 6073ece4fc2d7180c2057cb49b9ea436463fd52b Mon Sep 17 00:00:00 2001 From: drbh Date: Wed, 1 May 2024 03:03:25 -0400 Subject: [PATCH 64/74] fix: split docs and start conceptual page (#1836) This PR improves the guidance docs and adds a section that explains how grammars are applied on a technical level --- docs/source/_toctree.yml | 4 +- docs/source/basic_tutorials/using_guidance.md | 419 ++++++++++++++++ docs/source/conceptual/guidance.md | 459 +++--------------- 3 files changed, 482 insertions(+), 400 deletions(-) create mode 100644 docs/source/basic_tutorials/using_guidance.md diff --git a/docs/source/_toctree.yml b/docs/source/_toctree.yml index 79a2102f..c815b535 100644 --- a/docs/source/_toctree.yml +++ b/docs/source/_toctree.yml @@ -25,6 +25,8 @@ title: Non-core Model Serving - local: basic_tutorials/safety title: Safety + - local: basic_tutorials/using_guidance + title: Using Guidance, JSON, tools - local: basic_tutorials/visual_language_models title: Visual Language Models title: Tutorials @@ -44,6 +46,6 @@ - local: conceptual/speculation title: Speculation (Medusa, ngram) - local: conceptual/guidance - title: Guidance, JSON, tools (using outlines) + title: How Guidance Works (via outlines) title: Conceptual Guides diff --git a/docs/source/basic_tutorials/using_guidance.md b/docs/source/basic_tutorials/using_guidance.md new file mode 100644 index 00000000..606f2453 --- /dev/null +++ b/docs/source/basic_tutorials/using_guidance.md @@ -0,0 +1,419 @@ +# Guidance + +Text Generation Inference (TGI) now supports [JSON and regex grammars](#grammar-and-constraints) and [tools and functions](#tools-and-functions) to help developers guide LLM responses to fit their needs. + +These feature are available starting from version `1.4.3`. They are accessible via the [text_generation](https://pypi.org/project/text-generation/) library. The tool support is compatible with OpenAI's client libraries. The following guide will walk you through the new features and how to use them! + +_note: guidance is supported as grammar in the `/generate` endpoint and as tools in the `/chat/completions` endpoint._ + +## How it works + +TGI leverages the [outlines](https://github.com/outlines-dev/outlines) library to efficiently parse and compile the grammatical structures and tools specified by users. This integration transforms the defined grammars into an intermediate representation that acts as a framework to guide and constrain content generation, ensuring that outputs adhere to the specified grammatical rules. + +If you are interested in the technical details on how outlines is used in TGI, you can check out the [conceptual guidance documentation](../conceptual/guidance). + +## Table of Contents 📚 + +### Grammar and Constraints + +- [The Grammar Parameter](#the-grammar-parameter): Shape your AI's responses with precision. +- [Constrain with Pydantic](#constrain-with-pydantic): Define a grammar using Pydantic models. +- [JSON Schema Integration](#json-schema-integration): Fine-grained control over your requests via JSON schema. +- [Using the client](#using-the-client): Use TGI's client libraries to shape the AI's responses. + +### Tools and Functions + +- [The Tools Parameter](#the-tools-parameter): Enhance the AI's capabilities with predefined functions. +- [Via the client](#text-generation-inference-client): Use TGI's client libraries to interact with the Messages API and Tool functions. +- [OpenAI integration](#openai-integration): Use OpenAI's client libraries to interact with TGI's Messages API and Tool functions. + +## Grammar and Constraints 🛣️ + +### The Grammar Parameter + +In TGI `1.4.3`, we've introduced the grammar parameter, which allows you to specify the format of the response you want from the LLM. + +Using curl, you can make a request to TGI's Messages API with the grammar parameter. This is the most primitive way to interact with the API and using [Pydantic](#constrain-with-pydantic) is recommended for ease of use and readability. + +```json +curl localhost:3000/generate \ + -X POST \ + -H 'Content-Type: application/json' \ + -d '{ + "inputs": "I saw a puppy a cat and a raccoon during my bike ride in the park", + "parameters": { + "repetition_penalty": 1.3, + "grammar": { + "type": "json", + "value": { + "properties": { + "location": { + "type": "string" + }, + "activity": { + "type": "string" + }, + "animals_seen": { + "type": "integer", + "minimum": 1, + "maximum": 5 + }, + "animals": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["location", "activity", "animals_seen", "animals"] + } + } + } +}' +// {"generated_text":"{ \n\n\"activity\": \"biking\",\n\"animals\": [\"puppy\",\"cat\",\"raccoon\"],\n\"animals_seen\": 3,\n\"location\": \"park\"\n}"} + +``` + +A grammar can be defined using Pydantic models, JSON schemas, or regular expressions. The LLM will then generate a response that conforms to the specified grammar. + +> Note: A grammar must compile to an intermediate representation to constrain the output. Grammar compilation is a computationally expensive and may take a few seconds to complete on the first request. Subsequent requests will use the cached grammar and will be much faster. + +### Constrain with Pydantic + +Using Pydantic models we can define a similar grammar as the previous example in a shorter and more readable way. + +```python +import requests +from pydantic import BaseModel, conint +from typing import List + +class Animals(BaseModel): + location: str + activity: str + animals_seen: conint(ge=1, le=5) # Constrained integer type + animals: List[str] + +prompt = "convert to JSON: I saw a puppy a cat and a raccoon during my bike ride in the park" + +data = { + "inputs": prompt, + "parameters": { + "repetition_penalty": 1.3, + "grammar": { + "type": "json", + "value": Animals.schema() + } + } +} + +headers = { + "Content-Type": "application/json", +} + +response = requests.post( + 'http://127.0.0.1:3000/generate', + headers=headers, + json=data +) +print(response.json()) +# {'generated_text': '{ "activity": "bike riding", "animals": ["puppy","cat","raccoon"],"animals_seen": 3, "location":"park" }'} + +``` + +### JSON Schema Integration + +If Pydantic's not your style, go raw with direct JSON Schema integration. This is similar to the first example but with programmatic control. + +```python +import requests + +json_schema = { + "properties": { + "location": { + "type": "string" + }, + "activity": { + "type": "string" + }, + "animals_seen": { + "type": "integer", + "minimum": 1, + "maximum": 5 + }, + "animals": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["location", "activity", "animals_seen", "animals"] +} + +data = { + "inputs": "convert to JSON: I saw a puppy a cat and a raccoon during my bike ride in the park", + "parameters": { + "max_new_tokens": 200, + "repetition_penalty": 1.3, + "grammar": { + "type": "json", + "value": json_schema + } + } +} + +headers = { + "Content-Type": "application/json", +} + +response = requests.post( + 'http://127.0.0.1:3000/generate', + headers=headers, + json=data +) +print(response.json()) +# {'generated_text': '{\n"activity": "biking",\n"animals": ["puppy","cat","raccoon"]\n , "animals_seen": 3,\n "location":"park"}'} + +``` + +### Using the client + +TGI provides a client library to that make it easy to send requests with all of the parameters we've discussed above. Here's an example of how to use the client to send a request with a grammar parameter. + +```python +from text_generation import AsyncClient +from text_generation.types import GrammarType + +# NOTE: tools defined above and removed for brevity + +# Define an async function to encapsulate the async operation +async def main(): + client = AsyncClient(base_url="http://localhost:3000") + + # Use 'await' to wait for the async method 'chat' to complete + response = await client.generate( + "Whats Googles DNS", + max_new_tokens=10, + decoder_input_details=True, + seed=1, + grammar={ + "type": GrammarType.Regex, + "value": "((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)", + }, + ) + + # Once the response is received, you can process it + print(response.generated_text) + +# Ensure the main async function is run in the event loop +if __name__ == "__main__": + import asyncio + asyncio.run(main()) + +# 118.8.0.84 + +``` + +## Tools and Functions 🛠️ + +### The Tools Parameter + +In addition to the grammar parameter, we've also introduced a set of tools and functions to help you get the most out of the Messages API. + +Tools are a set of user defined functions that can be used in tandem with the chat functionality to enhance the LLM's capabilities. Functions, similar to grammar are defined as JSON schema and can be passed as part of the parameters to the Messages API. + +Functions, similar to grammar are defined as JSON schema and can be passed as part of the parameters to the Messages API. + +```json +curl localhost:3000/v1/chat/completions \ + -X POST \ + -H 'Content-Type: application/json' \ + -d '{ + "model": "tgi", + "messages": [ + { + "role": "user", + "content": "What is the weather like in New York?" + } + ], + "tools": [ + { + "type": "function", + "function": { + "name": "get_current_weather", + "description": "Get the current weather", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA" + }, + "format": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "The temperature unit to use. Infer this from the users location." + } + }, + "required": ["location", "format"] + } + } + } + ], + "tool_choice": "get_current_weather" +}' +// {"id":"","object":"text_completion","created":1709051640,"model":"HuggingFaceH4/zephyr-7b-beta","system_fingerprint":"1.4.3-native","choices":[{"index":0,"message":{"role":"assistant","tool_calls":{"id":0,"type":"function","function":{"description":null,"name":"tools","parameters":{"format":"celsius","location":"New York"}}}},"logprobs":null,"finish_reason":"eos_token"}],"usage":{"prompt_tokens":157,"completion_tokens":19,"total_tokens":176}} +``` + +### Text Generation Inference Client + +TGI provides a client library to interact with the Messages API and Tool functions. The client library is available in both synchronous and asynchronous versions. + +```python +from text_generation import AsyncClient + +# NOTE: tools defined above and removed for brevity + +# Define an async function to encapsulate the async operation +async def main(): + client = AsyncClient(base_url="http://localhost:3000") + + # Use 'await' to wait for the async method 'chat' to complete + response = await client.chat( + max_tokens=100, + seed=1, + tools=tools, + presence_penalty=-1.1, + messages=[ + { + "role": "system", + "content": "You're a helpful assistant! Answer the users question best you can.", + }, + { + "role": "user", + "content": "What is the weather like in Brooklyn, New York?", + }, + ], + ) + + # Once the response is received, you can process it + print(response.choices[0].message.tool_calls) + +# Ensure the main async function is run in the event loop +if __name__ == "__main__": + import asyncio + asyncio.run(main()) + +# {"id":"","object":"text_completion","created":1709051942,"model":"HuggingFaceH4/zephyr-7b-beta","system_fingerprint":"1.4.3-native","choices":[{"index":0,"message":{"role":"assistant","tool_calls":{"id":0,"type":"function","function":{"description":null,"name":"tools","parameters":{"format":"celsius","location":"New York"}}}},"logprobs":null,"finish_reason":"eos_token"}],"usage":{"prompt_tokens":157,"completion_tokens":20,"total_tokens":177}} + +``` + +
+ Tools used in example above + +```python + tools = [ + { + "type": "function", + "function": { + "name": "get_current_weather", + "description": "Get the current weather", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA", + }, + "format": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "The temperature unit to use. Infer this from the users location.", + }, + }, + "required": ["location", "format"], + }, + }, + }, + { + "type": "function", + "function": { + "name": "get_n_day_weather_forecast", + "description": "Get an N-day weather forecast", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA", + }, + "format": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "The temperature unit to use. Infer this from the users location.", + }, + "num_days": { + "type": "integer", + "description": "The number of days to forecast", + }, + }, + "required": ["location", "format", "num_days"], + }, + }, + } + ] +``` + +
+ +### OpenAI integration + +TGI exposes an OpenAI-compatible API, which means you can use OpenAI's client libraries to interact with TGI's Messages API and Tool functions. + +However there are some minor differences in the API, for example `tool_choice="auto"` will ALWAYS choose the tool for you. This is different from OpenAI's API where `tool_choice="auto"` will choose a tool if the model thinks it's necessary. + +```python +from openai import OpenAI + +# Initialize the client, pointing it to one of the available models +client = OpenAI( + base_url="http://localhost:3000/v1", + api_key="_", +) + +# NOTE: tools defined above and removed for brevity + +chat_completion = client.chat.completions.create( + model="tgi", + messages=[ + { + "role": "system", + "content": "Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous.", + }, + { + "role": "user", + "content": "What's the weather like the next 3 days in San Francisco, CA?", + }, + ], + tools=tools, + tool_choice="auto", # tool selected by model + max_tokens=500, +) + + +called = chat_completion.choices[0].message.tool_calls +print(called) +# { +# "id": 0, +# "type": "function", +# "function": { +# "description": None, +# "name": "tools", +# "parameters": { +# "format": "celsius", +# "location": "San Francisco, CA", +# "num_days": 3, +# }, +# }, +# } +``` diff --git a/docs/source/conceptual/guidance.md b/docs/source/conceptual/guidance.md index d3ec5fb9..0ce34f2f 100644 --- a/docs/source/conceptual/guidance.md +++ b/docs/source/conceptual/guidance.md @@ -1,425 +1,86 @@ # Guidance -Text Generation Inference (TGI) now supports [JSON and regex grammars](#grammar-and-constraints) and [tools and functions](#tools-and-functions) to help developers guide LLM responses to fit their needs. +## What is Guidance? -These feature are available starting from version `1.4.3`. They are accessible via the [text_generation](https://pypi.org/project/text-generation/) library. The tool support is compatible with OpenAI's client libraries. The following guide will walk you through the new features and how to use them! +Guidance is a feature that allows users to constrain the generation of a large language model with a specified grammar. This feature is particularly useful when you want to generate text that follows a specific structure or uses a specific set of words or produce output in a specific format. -> The Grammar guidance support is currently only available in the TGI API due to lack of support in Open AI API. +## How is it used? -## Quick Start +Guidance can be in many ways and the community is always finding new ways to use it. Here are some examples of how you can use guidance: -Before we jump into the deep end, ensure your system is using TGI version `1.4.3` or later to access all the features we're about to explore in this guide. +Technically, guidance can be used to generate: -If you're not up to date, grab the latest version and let's get started! +- a specific JSON object +- a function signature +- typed output like a list of integers -## How it works +However these use cases can span a wide range of applications, such as: -TGI leverages the [outlines](https://github.com/outlines-dev/outlines) library to efficiently parse and compile the grammatical structures and tools specified by users. This integration transforms the defined grammars into an intermediate representation that acts as a framework to guide and constrain content generation, ensuring that outputs adhere to the specified grammatical rules. +- extracting structured data from unstructured text +- summarizing text into a specific format +- limit output to specific classes of words (act as a LLM powered classifier) +- generate the input to specific APIs or services +- provide reliable and consistent output for downstream tasks +- extract data from multimodal inputs -## Table of Contents 📚 +## How it works? -### Grammar and Constraints +Diving into the details, guidance is enabled by including a grammar with a generation request that is compiled, and used to modify the chosen tokens. -- [The Grammar Parameter](#the-grammar-parameter): Shape your AI's responses with precision. -- [Constrain with Pydantic](#constrain-with-pydantic): Define a grammar using Pydantic models. -- [JSON Schema Integration](#json-schema-integration): Fine-grained control over your requests via JSON schema. -- [Using the client](#using-the-client): Use TGI's client libraries to shape the AI's responses. +This process can be broken down into the following steps: -### Tools and Functions +1. A request is sent to the backend, it is processed and placed in batch. Processing includes compiling the grammar into a finite state machine and a grammar state. -- [The Tools Parameter](#the-tools-parameter): Enhance the AI's capabilities with predefined functions. -- [Via the client](#text-generation-inference-client): Use TGI's client libraries to interact with the Messages API and Tool functions. -- [OpenAI integration](#openai-integration): Use OpenAI's client libraries to interact with TGI's Messages API and Tool functions. +
+ + +
-## Grammar and Constraints 🛣️ +2. The model does a forward pass over the batch. This returns probabilities for each token in the vocabulary for each request in the batch. -### The Grammar Parameter +3. The process of choosing one of those tokens is called `sampling`. The model samples from the distribution of probabilities to choose the next token. In TGI all of the steps before sampling are called `processor`. Grammars are applied as a processor that masks out tokens that are not allowed by the grammar. -In TGI `1.4.3`, we've introduced the grammar parameter, which allows you to specify the format of the response you want from the AI. This is a game-changer for those who need precise control over the AI's output. +
+ + +
-Using curl, you can make a request to TGI's Messages API with the grammar parameter. This is the most primitive way to interact with the API and using [Pydantic](#constrain-with-pydantic) is recommended for ease of use and readability. +4. The grammar mask is applied and the model samples from the remaining tokens. Once a token is chosen, we update the grammar state with the new token, to prepare it for the next pass. -```json -curl localhost:3000/generate \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{ - "inputs": "I saw a puppy a cat and a raccoon during my bike ride in the park", - "parameters": { - "repetition_penalty": 1.3, - "grammar": { - "type": "json", - "value": { - "properties": { - "location": { - "type": "string" - }, - "activity": { - "type": "string" - }, - "animals_seen": { - "type": "integer", - "minimum": 1, - "maximum": 5 - }, - "animals": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": ["location", "activity", "animals_seen", "animals"] - } - } - } -}' -// {"generated_text":"{ \n\n\"activity\": \"biking\",\n\"animals\": [\"puppy\",\"cat\",\"raccoon\"],\n\"animals_seen\": 3,\n\"location\": \"park\"\n}"} +
+ + +
-``` +## How to use Guidance? -A grammar can be defined using Pydantic models, JSON schemas, or regular expressions. The AI will then generate a response that conforms to the specified grammar. +There are two main ways to use guidance; you can either use the `/generate` endpoint with a grammar or use the `/chat/completion` endpoint with tools. -> Note: A grammar must compile to an intermediate representation to constrain the output. Grammar compilation is a computationally expensive and may take a few seconds to complete on the first request. Subsequent requests will use the cached grammar and will be much faster. +Under the hood tools are a special case of grammars that allows the model to choose one or none of the provided tools. -### Constrain with Pydantic +Please refer to [using guidance](../basic_tutorial/using_guidance) for more examples and details on how to use guidance in Python, JavaScript, and cURL. -Pydantic is a powerful library for data validation and settings management. It's the perfect tool for crafting the a specific response format. +### Getting the most out of guidance -Using Pydantic models we can define a similar grammar as the previous example in a shorter and more readable way. +Depending on how you are using guidance, you may want to make use of different features. Here are some tips to get the most out of guidance: -```python -import requests -from pydantic import BaseModel, conint -from typing import List - -class Animals(BaseModel): - location: str - activity: str - animals_seen: conint(ge=1, le=5) # Constrained integer type - animals: List[str] - -prompt = "convert to JSON: I saw a puppy a cat and a raccoon during my bike ride in the park" - -data = { - "inputs": prompt, - "parameters": { - "repetition_penalty": 1.3, - "grammar": { - "type": "json", - "value": Animals.schema() - } - } -} - -headers = { - "Content-Type": "application/json", -} - -response = requests.post( - 'http://127.0.0.1:3000/generate', - headers=headers, - json=data -) -print(response.json()) -# {'generated_text': '{ "activity": "bike riding", "animals": ["puppy","cat","raccoon"],"animals_seen": 3, "location":"park" }'} - -``` - -### JSON Schema Integration - -If Pydantic's not your style, go raw with direct JSON Schema integration. It's like having a conversation with the AI in its own language. This is simliar to the first example but with programmatic control. - -```python -import requests - -json_schema = { - "properties": { - "location": { - "type": "string" - }, - "activity": { - "type": "string" - }, - "animals_seen": { - "type": "integer", - "minimum": 1, - "maximum": 5 - }, - "animals": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": ["location", "activity", "animals_seen", "animals"] -} - -data = { - "inputs": "convert to JSON: I saw a puppy a cat and a raccoon during my bike ride in the park", - "parameters": { - "max_new_tokens": 200, - "repetition_penalty": 1.3, - "grammar": { - "type": "json", - "value": json_schema - } - } -} - -headers = { - "Content-Type": "application/json", -} - -response = requests.post( - 'http://127.0.0.1:3000/generate', - headers=headers, - json=data -) -print(response.json()) -# {'generated_text': '{\n"activity": "biking",\n"animals": ["puppy","cat","raccoon"]\n , "animals_seen": 3,\n "location":"park"}'} - -``` - -### Using the client - -TGI provides a client library to that make it easy to send requests with all of the parameters we've discussed above. Here's an example of how to use the client to send a request with a grammar parameter. - -```python -from text_generation import AsyncClient -from text_generation.types import GrammarType - -# NOTE: tools defined above and removed for brevity - -# Define an async function to encapsulate the async operation -async def main(): - client = AsyncClient(base_url="http://localhost:3000") - - # Use 'await' to wait for the async method 'chat' to complete - response = await client.generate( - "Whats Googles DNS", - max_new_tokens=10, - decoder_input_details=True, - seed=1, - grammar={ - "type": GrammarType.Regex, - "value": "((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)", - }, - ) - - # Once the response is received, you can process it - print(response.generated_text) - -# Ensure the main async function is run in the event loop -if __name__ == "__main__": - import asyncio - asyncio.run(main()) - -# 118.8.0.84 - -``` - -## Tools and Functions 🛠️ - -### The Tools Parameter - -In addition to the grammar parameter, we've also introduced a set of tools and functions to help you get the most out of the Messages API. - -Tools are a set of user defined functions that can be used in tandem with the chat functionality to enhance the AI's capabilities. You can use these tools to perform a variety of tasks, such as data manipulation, formatting, and more. - -Functions, similar to grammar are defined as JSON schema and can be passed as part of the parameters to the Messages API. - -```json -curl localhost:3000/v1/chat/completions \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{ - "model": "tgi", - "messages": [ - { - "role": "user", - "content": "What is the weather like in New York?" - } - ], - "tools": [ - { - "type": "function", - "function": { - "name": "get_current_weather", - "description": "Get the current weather", - "parameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "The city and state, e.g. San Francisco, CA" - }, - "format": { - "type": "string", - "enum": ["celsius", "fahrenheit"], - "description": "The temperature unit to use. Infer this from the users location." - } - }, - "required": ["location", "format"] - } - } - } - ], - "tool_choice": "get_current_weather" -}' -// {"id":"","object":"text_completion","created":1709051640,"model":"HuggingFaceH4/zephyr-7b-beta","system_fingerprint":"1.4.3-native","choices":[{"index":0,"message":{"role":"assistant","tool_calls":{"id":0,"type":"function","function":{"description":null,"name":"tools","parameters":{"format":"celsius","location":"New York"}}}},"logprobs":null,"finish_reason":"eos_token"}],"usage":{"prompt_tokens":157,"completion_tokens":19,"total_tokens":176}} -``` - -
- Tools used in example below - -```python - tools = [ - { - "type": "function", - "function": { - "name": "get_current_weather", - "description": "Get the current weather", - "parameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "The city and state, e.g. San Francisco, CA", - }, - "format": { - "type": "string", - "enum": ["celsius", "fahrenheit"], - "description": "The temperature unit to use. Infer this from the users location.", - }, - }, - "required": ["location", "format"], - }, - }, - }, - { - "type": "function", - "function": { - "name": "get_n_day_weather_forecast", - "description": "Get an N-day weather forecast", - "parameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "The city and state, e.g. San Francisco, CA", - }, - "format": { - "type": "string", - "enum": ["celsius", "fahrenheit"], - "description": "The temperature unit to use. Infer this from the users location.", - }, - "num_days": { - "type": "integer", - "description": "The number of days to forecast", - }, - }, - "required": ["location", "format", "num_days"], - }, - }, - } - ] -``` - -
- -### Text Generation Inference Client - -TGI provides a client library to interact with the Messages API and Tool functions. The client library is available in both synchronous and asynchronous versions. - -```python -from text_generation import AsyncClient - -# NOTE: tools defined above and removed for brevity - -# Define an async function to encapsulate the async operation -async def main(): - client = AsyncClient(base_url="http://localhost:3000") - - # Use 'await' to wait for the async method 'chat' to complete - response = await client.chat( - max_tokens=100, - seed=1, - tools=tools, - presence_penalty=-1.1, - messages=[ - { - "role": "system", - "content": "You're a helpful assistant! Answer the users question best you can.", - }, - { - "role": "user", - "content": "What is the weather like in Brooklyn, New York?", - }, - ], - ) - - # Once the response is received, you can process it - print(response.choices[0].message.tool_calls) - -# Ensure the main async function is run in the event loop -if __name__ == "__main__": - import asyncio - asyncio.run(main()) - -# {"id":"","object":"text_completion","created":1709051942,"model":"HuggingFaceH4/zephyr-7b-beta","system_fingerprint":"1.4.3-native","choices":[{"index":0,"message":{"role":"assistant","tool_calls":{"id":0,"type":"function","function":{"description":null,"name":"tools","parameters":{"format":"celsius","location":"New York"}}}},"logprobs":null,"finish_reason":"eos_token"}],"usage":{"prompt_tokens":157,"completion_tokens":20,"total_tokens":177}} - -``` - -### OpenAI integration - -TGI exposes an OpenAI-compatible API, which means you can use OpenAI's client libraries to interact with TGI's Messages API and Tool functions. - -However there are some minor differences in the API, for example `tool_choice="auto"` will ALWAYS choose the tool for you. This is different from OpenAI's API where `tool_choice="auto"` will choose a tool if the model thinks it's necessary. - -```python -from openai import OpenAI - -# Initialize the client, pointing it to one of the available models -client = OpenAI( - base_url="http://localhost:3000/v1", - api_key="_", -) - -# NOTE: tools defined above and removed for brevity - -chat_completion = client.chat.completions.create( - model="tgi", - messages=[ - { - "role": "system", - "content": "Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous.", - }, - { - "role": "user", - "content": "What's the weather like the next 3 days in San Francisco, CA?", - }, - ], - tools=tools, - tool_choice="auto", # tool selected by model - max_tokens=500, -) - - -called = chat_completion.choices[0].message.tool_calls -print(called) -# { -# "id": 0, -# "type": "function", -# "function": { -# "description": None, -# "name": "tools", -# "parameters": { -# "format": "celsius", -# "location": "San Francisco, CA", -# "num_days": 3, -# }, -# }, -# } -``` +- If you are using the `/generate` with a `grammar` it is recommended to include the grammar in the prompt prefixed by something like `Please use the following JSON schema to generate the output:`. This will help the model understand the context of the grammar and generate the output accordingly. +- If you are getting a response with many repeated tokens, please use the `frequency_penalty` or `repetition_penalty` to reduce the number of repeated tokens in the output. From 27b3a2c9fc3fd85e8c52ac0ed9c5a2aefe395f97 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Wed, 1 May 2024 18:21:17 +0200 Subject: [PATCH 65/74] Fix: "Fixing" double BOS for mistral too. (#1843) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- server/text_generation_server/models/flash_mistral.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/text_generation_server/models/flash_mistral.py b/server/text_generation_server/models/flash_mistral.py index 6959e2ec..85e93543 100644 --- a/server/text_generation_server/models/flash_mistral.py +++ b/server/text_generation_server/models/flash_mistral.py @@ -121,6 +121,11 @@ class FlashMistralBatch(FlashCausalLMBatch): requests_idx_mapping[r.id] = i tokenized_input = tokenized_input[-r.truncate :] + if ( + tokenized_input[0] == tokenizer.bos_token_id + and tokenized_input[1] == tokenizer.bos_token_id + ): + tokenized_input = tokenized_input[1:] input_length = len(tokenized_input) input_lengths.append(input_length) From 0038e6020fec4650ce6c35de37440ab7c7bb206e Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Wed, 1 May 2024 21:48:06 +0200 Subject: [PATCH 66/74] Adding scripts to prepare load data. (#1841) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- .gitignore | 1 + load_tests/Makefile | 9 ++++++ load_tests/filter.py | 26 +++++++++++++++ load_tests/orca.py | 27 ++++++++++++++++ load_tests/starcoder_load.js | 63 ------------------------------------ 5 files changed, 63 insertions(+), 63 deletions(-) create mode 100644 load_tests/Makefile create mode 100644 load_tests/filter.py create mode 100644 load_tests/orca.py delete mode 100644 load_tests/starcoder_load.js diff --git a/.gitignore b/.gitignore index 2ac2f6b4..e9ad1808 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ server/exllama_kernels/exllama_kernels/hip_buffers.cuh server/exllama_kernels/exllama_kernels/exllama_ext_hip.cpp data/ +load_tests/*.json diff --git a/load_tests/Makefile b/load_tests/Makefile new file mode 100644 index 00000000..9199aa3b --- /dev/null +++ b/load_tests/Makefile @@ -0,0 +1,9 @@ + +ShareGPT_V3_unfiltered_cleaned_split.json: + wget https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json + +prepare_share: ShareGPT_V3_unfiltered_cleaned_split.json + python filter.py + +prepare_orca: + python orca.py diff --git a/load_tests/filter.py b/load_tests/filter.py new file mode 100644 index 00000000..a00226ed --- /dev/null +++ b/load_tests/filter.py @@ -0,0 +1,26 @@ +import json + + +def main(): + with open("./ShareGPT_V3_unfiltered_cleaned_split.json", "r") as f: + data = json.load(f) + + # Select only the first 2k conversations that start with a human. + max = 2000 + conversations = [] + for conversation in data: + conv = conversation.get("conversations") + if conv and conv[0]["from"] == "human": + # Trim the rest of the output + conversation["conversations"] = conversation["conversations"][:1] + conversations.append(conversation) + + if len(conversation) >= max: + break + + with open("./small.json", "w") as f: + data = json.dump(conversations, f, indent=4) + + +if __name__ == "__main__": + main() diff --git a/load_tests/orca.py b/load_tests/orca.py new file mode 100644 index 00000000..e607d27c --- /dev/null +++ b/load_tests/orca.py @@ -0,0 +1,27 @@ +import json +import datasets +import tqdm + + +def main(): + dataset = datasets.load_dataset("Open-Orca/OpenOrca", split="train") + # Select only the first 2k conversations that start with a human. + max = min(2000, len(dataset)) + conversations = [] + for item in tqdm.tqdm(dataset, total=max): + conversation = { + "conversations": [ + {"from": "human", "value": item["question"]}, + ], + "id": item["id"], + } + conversations.append(conversation) + if len(conversations) >= max: + break + + with open("./small.json", "w") as f: + data = json.dump(conversations, f, indent=4) + + +if __name__ == "__main__": + main() diff --git a/load_tests/starcoder_load.js b/load_tests/starcoder_load.js deleted file mode 100644 index 2f6cb3d6..00000000 --- a/load_tests/starcoder_load.js +++ /dev/null @@ -1,63 +0,0 @@ -import {check} from 'k6'; -import http from 'k6/http'; -import {Trend} from 'k6/metrics'; - -const host = __ENV.HOST || '127.0.0.1:3000'; - -const totalTime = new Trend('total_time', true); -const validationTime = new Trend('validation_time', true); -const queueTime = new Trend('queue_time', true); -const inferenceTime = new Trend('inference_time', true); -const timePerToken = new Trend('time_per_token', true); - -const example = { - payload: JSON.stringify({ - inputs: '# This is a fibonacci function written in the Python programming language.' + - 'def fibonacci', - parameters: { - details: true, - max_new_tokens: 60, - temperature: 0.2, - top_p: 0.95, - seed: 0, - }, - }), - generated_tokens: 60 -}; - -export const options = { - thresholds: { - http_req_failed: ['rate==0'], - time_per_token: ['p(95)<90'], - queue_time: ['p(95)<1500'], - }, - scenarios: { - load_test: { - executor: 'constant-arrival-rate', - duration: '60s', - preAllocatedVUs: 100, - rate: 10, - timeUnit: '1s', - }, - }, -}; - -export default function () { - const headers = {'Content-Type': 'application/json'}; - const res = http.post(`http://${host}/generate`, example.payload, { - headers, - }); - - check(res, { - 'Post status is 200': (r) => res.status === 200, - 'Post response generated tokens': (r) => res.status === 200 && res.json().details.generated_tokens === example.generated_tokens, - }); - - if (res.status === 200) { - totalTime.add(res.headers["X-Total-Time"]); - validationTime.add(res.headers["X-Validation-Time"]); - queueTime.add(res.headers["X-Queue-Time"]); - inferenceTime.add(res.headers["X-Inference-Time"]); - timePerToken.add(res.headers["X-Time-Per-Token"]); - } -} From de079d607a3af4ae893c12c9ddc339e32b3fb95e Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Thu, 2 May 2024 15:09:46 +0200 Subject: [PATCH 67/74] Remove misleading warning (not that important nowadays anyway). (#1848) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- .../models/custom_modeling/neox_modeling.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/server/text_generation_server/models/custom_modeling/neox_modeling.py b/server/text_generation_server/models/custom_modeling/neox_modeling.py index 1b060060..f060ec0e 100644 --- a/server/text_generation_server/models/custom_modeling/neox_modeling.py +++ b/server/text_generation_server/models/custom_modeling/neox_modeling.py @@ -60,9 +60,6 @@ if ( except ImportError: pass -if not CUSTOM_KERNELS_ENABLED: - logger.warning("We're not using custom kernels.") - def make_causal_mask( input_ids_shape: torch.Size, device: torch.device, past_key_values_length: int From 65539b743ee2d4dd9b85a9961c33f11b4f687566 Mon Sep 17 00:00:00 2001 From: drbh Date: Thu, 2 May 2024 10:56:24 -0400 Subject: [PATCH 68/74] feat: prefer huggingface_hub in docs and show image api (#1844) This PR prefers the `huggingface_hub` library, refactors the grammar docs and adds the new image_url api to the vlm docs. --- docs/source/basic_tutorials/using_guidance.md | 332 +++++++----------- .../basic_tutorials/visual_language_models.md | 62 +++- 2 files changed, 197 insertions(+), 197 deletions(-) diff --git a/docs/source/basic_tutorials/using_guidance.md b/docs/source/basic_tutorials/using_guidance.md index 606f2453..d0008fdb 100644 --- a/docs/source/basic_tutorials/using_guidance.md +++ b/docs/source/basic_tutorials/using_guidance.md @@ -2,7 +2,7 @@ Text Generation Inference (TGI) now supports [JSON and regex grammars](#grammar-and-constraints) and [tools and functions](#tools-and-functions) to help developers guide LLM responses to fit their needs. -These feature are available starting from version `1.4.3`. They are accessible via the [text_generation](https://pypi.org/project/text-generation/) library. The tool support is compatible with OpenAI's client libraries. The following guide will walk you through the new features and how to use them! +These feature are available starting from version `1.4.3`. They are accessible via the [`huggingface_hub`](https://pypi.org/project/huggingface-hub/) library. The tool support is compatible with OpenAI's client libraries. The following guide will walk you through the new features and how to use them! _note: guidance is supported as grammar in the `/generate` endpoint and as tools in the `/chat/completions` endpoint._ @@ -74,6 +74,45 @@ curl localhost:3000/generate \ ``` +### Hugging Face Hub Python Library + +The Hugging Face Hub Python library provides a client that makes it easy to interact with the Messages API. Here's an example of how to use the client to send a request with a grammar parameter. + +```python +from huggingface_hub import InferenceClient + +client = InferenceClient("http://localhost:3000") + +schema = { + "properties": { + "location": {"title": "Location", "type": "string"}, + "activity": {"title": "Activity", "type": "string"}, + "animals_seen": { + "maximum": 5, + "minimum": 1, + "title": "Animals Seen", + "type": "integer", + }, + "animals": {"items": {"type": "string"}, "title": "Animals", "type": "array"}, + }, + "required": ["location", "activity", "animals_seen", "animals"], + "title": "Animals", + "type": "object", +} + +user_input = "I saw a puppy a cat and a raccoon during my bike ride in the park" +resp = client.text_generation( + f"convert to JSON: 'f{user_input}'. please use the following schema: {schema}", + max_new_tokens=100, + seed=42, + grammar={"type": "json", "value": schema}, +) + +print(resp) +# { "activity": "bike ride", "animals": ["puppy", "cat", "raccoon"], "animals_seen": 3, "location": "park" } + +``` + A grammar can be defined using Pydantic models, JSON schemas, or regular expressions. The LLM will then generate a response that conforms to the specified grammar. > Note: A grammar must compile to an intermediate representation to constrain the output. Grammar compilation is a computationally expensive and may take a few seconds to complete on the first request. Subsequent requests will use the cached grammar and will be much faster. @@ -83,134 +122,55 @@ A grammar can be defined using Pydantic models, JSON schemas, or regular express Using Pydantic models we can define a similar grammar as the previous example in a shorter and more readable way. ```python -import requests +from huggingface_hub import InferenceClient from pydantic import BaseModel, conint from typing import List + class Animals(BaseModel): location: str activity: str animals_seen: conint(ge=1, le=5) # Constrained integer type animals: List[str] -prompt = "convert to JSON: I saw a puppy a cat and a raccoon during my bike ride in the park" -data = { - "inputs": prompt, - "parameters": { - "repetition_penalty": 1.3, - "grammar": { - "type": "json", - "value": Animals.schema() - } - } -} +client = InferenceClient("http://localhost:3000") -headers = { - "Content-Type": "application/json", -} - -response = requests.post( - 'http://127.0.0.1:3000/generate', - headers=headers, - json=data +user_input = "I saw a puppy a cat and a raccoon during my bike ride in the park" +resp = client.text_generation( + f"convert to JSON: 'f{user_input}'. please use the following schema: {Animals.schema()}", + max_new_tokens=100, + seed=42, + grammar={"type": "json", "value": Animals.schema()}, ) -print(response.json()) -# {'generated_text': '{ "activity": "bike riding", "animals": ["puppy","cat","raccoon"],"animals_seen": 3, "location":"park" }'} + +print(resp) +# { "activity": "bike ride", "animals": ["puppy", "cat", "raccoon"], "animals_seen": 3, "location": "park" } + ``` -### JSON Schema Integration - -If Pydantic's not your style, go raw with direct JSON Schema integration. This is similar to the first example but with programmatic control. +defining a grammar as regular expressions ```python -import requests +from huggingface_hub import InferenceClient -json_schema = { - "properties": { - "location": { - "type": "string" - }, - "activity": { - "type": "string" - }, - "animals_seen": { - "type": "integer", - "minimum": 1, - "maximum": 5 - }, - "animals": { - "type": "array", - "items": { - "type": "string" - } - } +client = InferenceClient("http://localhost:3000") + +regexp = "((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)" + +resp = client.text_generation( + f"Whats Googles DNS? Please use the following regex: {regexp}", + seed=42, + grammar={ + "type": "regex", + "value": regexp, }, - "required": ["location", "activity", "animals_seen", "animals"] -} - -data = { - "inputs": "convert to JSON: I saw a puppy a cat and a raccoon during my bike ride in the park", - "parameters": { - "max_new_tokens": 200, - "repetition_penalty": 1.3, - "grammar": { - "type": "json", - "value": json_schema - } - } -} - -headers = { - "Content-Type": "application/json", -} - -response = requests.post( - 'http://127.0.0.1:3000/generate', - headers=headers, - json=data ) -print(response.json()) -# {'generated_text': '{\n"activity": "biking",\n"animals": ["puppy","cat","raccoon"]\n , "animals_seen": 3,\n "location":"park"}'} -``` -### Using the client - -TGI provides a client library to that make it easy to send requests with all of the parameters we've discussed above. Here's an example of how to use the client to send a request with a grammar parameter. - -```python -from text_generation import AsyncClient -from text_generation.types import GrammarType - -# NOTE: tools defined above and removed for brevity - -# Define an async function to encapsulate the async operation -async def main(): - client = AsyncClient(base_url="http://localhost:3000") - - # Use 'await' to wait for the async method 'chat' to complete - response = await client.generate( - "Whats Googles DNS", - max_new_tokens=10, - decoder_input_details=True, - seed=1, - grammar={ - "type": GrammarType.Regex, - "value": "((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)", - }, - ) - - # Once the response is received, you can process it - print(response.generated_text) - -# Ensure the main async function is run in the event loop -if __name__ == "__main__": - import asyncio - asyncio.run(main()) - -# 118.8.0.84 +print(resp) +# 7.1.1.1 ``` @@ -265,107 +225,87 @@ curl localhost:3000/v1/chat/completions \ // {"id":"","object":"text_completion","created":1709051640,"model":"HuggingFaceH4/zephyr-7b-beta","system_fingerprint":"1.4.3-native","choices":[{"index":0,"message":{"role":"assistant","tool_calls":{"id":0,"type":"function","function":{"description":null,"name":"tools","parameters":{"format":"celsius","location":"New York"}}}},"logprobs":null,"finish_reason":"eos_token"}],"usage":{"prompt_tokens":157,"completion_tokens":19,"total_tokens":176}} ``` -### Text Generation Inference Client +### Chat Completion with Tools -TGI provides a client library to interact with the Messages API and Tool functions. The client library is available in both synchronous and asynchronous versions. +Grammars are supported in the `/generate` endpoint, while tools are supported in the `/chat/completions` endpoint. Here's an example of how to use the client to send a request with a tool parameter. ```python -from text_generation import AsyncClient +from huggingface_hub import InferenceClient -# NOTE: tools defined above and removed for brevity +client = InferenceClient("http://localhost:3000") -# Define an async function to encapsulate the async operation -async def main(): - client = AsyncClient(base_url="http://localhost:3000") - - # Use 'await' to wait for the async method 'chat' to complete - response = await client.chat( - max_tokens=100, - seed=1, - tools=tools, - presence_penalty=-1.1, - messages=[ - { - "role": "system", - "content": "You're a helpful assistant! Answer the users question best you can.", +tools = [ + { + "type": "function", + "function": { + "name": "get_current_weather", + "description": "Get the current weather", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA", + }, + "format": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "The temperature unit to use. Infer this from the users location.", + }, + }, + "required": ["location", "format"], }, - { - "role": "user", - "content": "What is the weather like in Brooklyn, New York?", + }, + }, + { + "type": "function", + "function": { + "name": "get_n_day_weather_forecast", + "description": "Get an N-day weather forecast", + "parameters": { + "type": "object", + "properties": { + "location": { + "type": "string", + "description": "The city and state, e.g. San Francisco, CA", + }, + "format": { + "type": "string", + "enum": ["celsius", "fahrenheit"], + "description": "The temperature unit to use. Infer this from the users location.", + }, + "num_days": { + "type": "integer", + "description": "The number of days to forecast", + }, + }, + "required": ["location", "format", "num_days"], }, - ], - ) + }, + }, +] - # Once the response is received, you can process it - print(response.choices[0].message.tool_calls) +chat = client.chat_completion( + messages=[ + { + "role": "system", + "content": "You're a helpful assistant! Answer the users question best you can.", + }, + { + "role": "user", + "content": "What is the weather like in Brooklyn, New York?", + }, + ], + tools=tools, + seed=42, + max_tokens=100, +) -# Ensure the main async function is run in the event loop -if __name__ == "__main__": - import asyncio - asyncio.run(main()) - -# {"id":"","object":"text_completion","created":1709051942,"model":"HuggingFaceH4/zephyr-7b-beta","system_fingerprint":"1.4.3-native","choices":[{"index":0,"message":{"role":"assistant","tool_calls":{"id":0,"type":"function","function":{"description":null,"name":"tools","parameters":{"format":"celsius","location":"New York"}}}},"logprobs":null,"finish_reason":"eos_token"}],"usage":{"prompt_tokens":157,"completion_tokens":20,"total_tokens":177}} +print(chat.choices[0].message.tool_calls) +# [ChatCompletionOutputToolCall(function=ChatCompletionOutputFunctionDefinition(arguments={'format': 'fahrenheit', 'location': 'Brooklyn, New York', 'num_days': 7}, name='get_n_day_weather_forecast', description=None), id=0, type='function')] ``` -
- Tools used in example above - -```python - tools = [ - { - "type": "function", - "function": { - "name": "get_current_weather", - "description": "Get the current weather", - "parameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "The city and state, e.g. San Francisco, CA", - }, - "format": { - "type": "string", - "enum": ["celsius", "fahrenheit"], - "description": "The temperature unit to use. Infer this from the users location.", - }, - }, - "required": ["location", "format"], - }, - }, - }, - { - "type": "function", - "function": { - "name": "get_n_day_weather_forecast", - "description": "Get an N-day weather forecast", - "parameters": { - "type": "object", - "properties": { - "location": { - "type": "string", - "description": "The city and state, e.g. San Francisco, CA", - }, - "format": { - "type": "string", - "enum": ["celsius", "fahrenheit"], - "description": "The temperature unit to use. Infer this from the users location.", - }, - "num_days": { - "type": "integer", - "description": "The number of days to forecast", - }, - }, - "required": ["location", "format", "num_days"], - }, - }, - } - ] -``` - -
- ### OpenAI integration TGI exposes an OpenAI-compatible API, which means you can use OpenAI's client libraries to interact with TGI's Messages API and Tool functions. diff --git a/docs/source/basic_tutorials/visual_language_models.md b/docs/source/basic_tutorials/visual_language_models.md index e804ef09..3770db0b 100644 --- a/docs/source/basic_tutorials/visual_language_models.md +++ b/docs/source/basic_tutorials/visual_language_models.md @@ -53,7 +53,67 @@ for token in client.text_generation(prompt, max_new_tokens=10, stream=True): # This is a picture of an anthropomorphic rabbit in a space suit. ``` -If you want additional details, you can add `details=True`. In this case, you get a `TextGenerationStreamResponse` which contains additional information such as the probabilities and the tokens. For the final response in the stream, it also returns the full generated text. +or via the `chat_completion` endpoint: + +```python +from huggingface_hub import InferenceClient + +client = InferenceClient("http://127.0.0.1:3000") + +chat = client.chat_completion( + messages=[ + { + "role": "user", + "content": [ + {"type": "text", "text": "Whats in this image?"}, + { + "type": "image_url", + "image_url": { + "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png" + }, + }, + ], + }, + ], + seed=42, + max_tokens=100, +) + +print(chat) +# ChatCompletionOutput(choices=[ChatCompletionOutputComplete(finish_reason='length', index=0, message=ChatCompletionOutputMessage(role='assistant', content=" The image you've provided features an anthropomorphic rabbit in spacesuit attire. This rabbit is depicted with human-like posture and movement, standing on a rocky terrain with a vast, reddish-brown landscape in the background. The spacesuit is detailed with mission patches, circuitry, and a helmet that covers the rabbit's face and ear, with an illuminated red light on the chest area.\n\nThe artwork style is that of a", name=None, tool_calls=None), logprobs=None)], created=1714589614, id='', model='llava-hf/llava-v1.6-mistral-7b-hf', object='text_completion', system_fingerprint='2.0.2-native', usage=ChatCompletionOutputUsage(completion_tokens=100, prompt_tokens=2943, total_tokens=3043)) + +``` + +or with OpenAi's library: + +```python +from openai import OpenAI + +# init the client but point it to TGI +client = OpenAI(base_url="http://localhost:3000/v1", api_key="-") + +chat_completion = client.chat.completions.create( + model="tgi", + messages=[ + { + "role": "user", + "content": [ + {"type": "text", "text": "Whats in this image?"}, + { + "type": "image_url", + "image_url": { + "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png" + }, + }, + ], + }, + ], + stream=False, +) + +print(chat_completion) +# ChatCompletion(id='', choices=[Choice(finish_reason='eos_token', index=0, logprobs=None, message=ChatCompletionMessage(content=' The image depicts an anthropomorphic rabbit dressed in a space suit with gear that resembles NASA attire. The setting appears to be a solar eclipse with dramatic mountain peaks and a partial celestial body in the sky. The artwork is detailed and vivid, with a warm color palette and a sense of an adventurous bunny exploring or preparing for a journey beyond Earth. ', role='assistant', function_call=None, tool_calls=None))], created=1714589732, model='llava-hf/llava-v1.6-mistral-7b-hf', object='text_completion', system_fingerprint='2.0.2-native', usage=CompletionUsage(completion_tokens=84, prompt_tokens=2943, total_tokens=3027)) +``` ### Inference Through Sending `cURL` Requests From a25737139d302390edc40ee2d9d92109c7720c04 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Thu, 2 May 2024 19:07:10 +0200 Subject: [PATCH 69/74] Updating Phi3 (long context). (#1849) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- Cargo.lock | 8 +- router/src/config.rs | 1 + server/text_generation_server/utils/layers.py | 92 ++++++++++++++++++- 3 files changed, 96 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index de54c536..3c6515ad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3393,7 +3393,7 @@ dependencies = [ [[package]] name = "text-generation-benchmark" -version = "2.0.1" +version = "2.0.2" dependencies = [ "average", "clap", @@ -3414,7 +3414,7 @@ dependencies = [ [[package]] name = "text-generation-client" -version = "2.0.1" +version = "2.0.2" dependencies = [ "futures", "grpc-metadata", @@ -3430,7 +3430,7 @@ dependencies = [ [[package]] name = "text-generation-launcher" -version = "2.0.1" +version = "2.0.2" dependencies = [ "clap", "ctrlc", @@ -3448,7 +3448,7 @@ dependencies = [ [[package]] name = "text-generation-router" -version = "2.0.1" +version = "2.0.2" dependencies = [ "async-stream", "axum", diff --git a/router/src/config.rs b/router/src/config.rs index 88cde69a..8640ede9 100644 --- a/router/src/config.rs +++ b/router/src/config.rs @@ -136,6 +136,7 @@ pub enum Config { Phi, #[serde(rename = "phi-msft")] PhiMsft, + Phi3, Llama, Baichuan, Gemma, diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py index 6e4a13cd..7d339fe5 100644 --- a/server/text_generation_server/utils/layers.py +++ b/server/text_generation_server/utils/layers.py @@ -1029,10 +1029,10 @@ try: scaling_factor = None rope_scaling = _get_rope_config(config) if rope_scaling is not None: - scaling_factor = rope_scaling["factor"] if rope_scaling["type"] == "linear": pass elif rope_scaling["type"] == "dynamic": + scaling_factor = rope_scaling["factor"] return DynamicPositionRotaryEmbedding( dim=dim, max_position_embeddings=config.max_position_embeddings, @@ -1041,6 +1041,7 @@ try: scaling_factor=scaling_factor, ) elif rope_scaling["type"] == "yarn": + scaling_factor = rope_scaling["factor"] return YarnPositionRotaryEmbedding( dim=2 * inv_freq.shape[0], max_position_embeddings=rope_scaling[ @@ -1054,6 +1055,52 @@ try: beta_fast=32, beta_slow=1, ) + elif rope_scaling["type"] == "su": + short_factor = torch.tensor( + rope_scaling["short_factor"], dtype=torch.float32, device=device + ) + short_inv_freq = 1.0 / ( + short_factor + * base + ** ( + torch.arange(0, dim, 2, device=device, dtype=torch.float32) + / dim + ) + ) + long_factor = torch.tensor( + rope_scaling["long_factor"], dtype=torch.float32, device=device + ) + long_inv_freq = 1.0 / ( + long_factor + * base + ** ( + torch.arange(0, dim, 2, device=device, dtype=torch.float32) + / dim + ) + ) + + original_max_position_embeddings = ( + config.original_max_position_embeddings + ) + max_position_embeddings = config.max_position_embeddings + if max_position_embeddings <= original_max_position_embeddings: + scaling_factor = 1.0 + else: + scale = ( + max_position_embeddings / original_max_position_embeddings + ) + scaling_factor = math.sqrt( + 1 + + math.log(scale) + / math.log(original_max_position_embeddings) + ) + + return SuRotaryEmbedding( + short_inv_freq=short_inv_freq, + long_inv_freq=long_inv_freq, + scaling_factor=scaling_factor, + original_max_position_embeddings=original_max_position_embeddings, + ) else: raise NotImplementedError( f"rope scaling type {rope_scaling['type']} is not implemented or invalid" @@ -1141,6 +1188,49 @@ try: # Note: this unsqueeze is not necessary on RoCm + VLLM ROPE implementation, but we leave it as is to avoid yet an other controlflow. return cos.unsqueeze(1), sin.unsqueeze(1) + class SuRotaryEmbedding(PositionRotaryEmbedding): + def __init__( + self, + short_inv_freq, + long_inv_freq, + scaling_factor, + original_max_position_embeddings, + ): + super(PositionRotaryEmbedding, self).__init__() + self.short_inv_freq = short_inv_freq + self.long_inv_freq = long_inv_freq + self.scaling_factor = scaling_factor + self.original_max_position_embeddings = original_max_position_embeddings + self._seq_len_cached = 0 + self._cos_cached = None + self._sin_cached = None + self._cos_k_cached = None + self._sin_k_cached = None + self.dynamic_args = None + + def _update_cos_sin_cache(self, dtype, device, seqlen): + # Reset the tables if the sequence length has changed, + # or if we're on a new device (possibly due to tracing for instance) + if ( + seqlen > self._seq_len_cached + or self._cos_cached.device != device + or self._cos_cached.dtype != dtype + ): + self._seq_len_cached = seqlen + if seqlen > self.original_max_position_embeddings: + inv_freq = self.long_inv_freq + else: + inv_freq = self.short_inv_freq + t = torch.arange(seqlen, device=device, dtype=inv_freq.dtype) + if self.scaling_factor is not None: + t /= self.scaling_factor + # Don't do einsum, it converts fp32 to fp16 + # freqs = torch.einsum("i,j->ij", t, self.inv_freq) + + freqs = torch.outer(t, inv_freq.to(device=t.device)) + self._cos_cached = torch.cos(freqs).to(dtype) + self._sin_cached = torch.sin(freqs).to(dtype) + class DynamicPositionRotaryEmbedding(PositionRotaryEmbedding): def __init__(self, dim, max_position_embeddings, base, device, scaling_factor): inv_freq = _create_inv_freq(dim, base, device) From bb2b2959a222594dd8a41b8bb18d7b6fe280730a Mon Sep 17 00:00:00 2001 From: Lucain Date: Fri, 3 May 2024 16:39:04 +0200 Subject: [PATCH 70/74] Add router name to /info endpoint (#1854) Add `router` key in `/info` endpoint and set it to `env!("CARGO_PKG_NAME")` => so always set to `"text-generation-router"` in TGI. Happy to change the naming if you think of a better one (framework? package_name?) The goal is to use this information in `InferenceClient` to know the model is served with TGI. At the moment we can use https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.2/info to infer it is TGI-served because it returns information but having a proper key would be better. For context, a transformers-served model is only outputting `{"ok": "ok"}` (see [here](https://api-inference.huggingface.co/models/microsoft/DialoGPT-large/info)). --- router/src/lib.rs | 2 ++ router/src/server.rs | 1 + 2 files changed, 3 insertions(+) diff --git a/router/src/lib.rs b/router/src/lib.rs index fac4c14e..96a9fdf6 100644 --- a/router/src/lib.rs +++ b/router/src/lib.rs @@ -159,6 +159,8 @@ pub struct Info { #[schema(example = "32")] pub max_client_batch_size: usize, /// Router Info + #[schema(example = "text-generation-router")] + pub router: &'static str, #[schema(example = "0.5.0")] pub version: &'static str, #[schema(nullable = true, example = "null")] diff --git a/router/src/server.rs b/router/src/server.rs index 8657b779..5dbde21e 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -1564,6 +1564,7 @@ pub async fn run( max_batch_size, validation_workers, max_client_batch_size, + router: env!("CARGO_PKG_NAME"), version: env!("CARGO_PKG_VERSION"), sha: option_env!("VERGEN_GIT_SHA"), docker_label: option_env!("DOCKER_LABEL"), From ac7076b64db3c3896ca9f84e9484fb16788c7f2c Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Mon, 6 May 2024 13:48:11 +0200 Subject: [PATCH 71/74] Upgrading to rust 1.78. (#1851) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- .github/workflows/tests.yaml | 7 +- Cargo.lock | 171 +++++++++++++++++--------------- Dockerfile | 2 +- Dockerfile_amd | 2 +- Dockerfile_intel | 2 +- benchmark/src/event.rs | 6 +- launcher/Cargo.toml | 1 + launcher/src/main.rs | 19 ++-- router/grpc-metadata/src/lib.rs | 23 +---- router/src/infer.rs | 4 +- router/src/server.rs | 13 +-- rust-toolchain.toml | 7 +- 12 files changed, 124 insertions(+), 133 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 29ff6d45..37dc8305 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -33,10 +33,9 @@ jobs: - name: Install Rust uses: actions-rs/toolchain@v1 with: - # Released on: 28 December, 2023 - # Branched from master on: 10 November, 2023 - # https://releases.rs/docs/1.75.0/ - toolchain: 1.75.0 + # Released on: 02 May, 2024 + # https://releases.rs/docs/1.78.0/ + toolchain: 1.78.0 override: true components: rustfmt, clippy - name: Install Protoc diff --git a/Cargo.lock b/Cargo.lock index 3c6515ad..138b6676 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -48,47 +48,48 @@ checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -321,9 +322,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bit-set" @@ -387,9 +388,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytecount" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" +checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" [[package]] name = "bytemuck" @@ -403,6 +404,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + [[package]] name = "bytes" version = "1.6.0" @@ -449,12 +456,13 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" [[package]] name = "cc" -version = "1.0.94" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" +checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd" dependencies = [ "jobserver", "libc", + "once_cell", ] [[package]] @@ -527,9 +535,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "console" @@ -872,9 +880,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "fdeflate" @@ -893,9 +901,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "miniz_oxide", @@ -1155,9 +1163,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "heck" @@ -1339,11 +1347,11 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a84a25dcae3ac487bc24ef280f9e20c79c9b1a3e5e32cbed3041d1c514aa87c" +checksum = "d730b085583c4d789dfd07fdcf185be59501666a90c97c40162b37e4fdad272d" dependencies = [ - "byteorder", + "byteorder-lite", "thiserror", ] @@ -1370,7 +1378,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.14.5", "serde", ] @@ -1432,6 +1440,12 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + [[package]] name = "iso8601" version = "0.6.1" @@ -1476,9 +1490,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685a7d121ee3f65ae4fddd72b25a04bb36b6af81bc0828f7d5434c0fe60fa3a2" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" dependencies = [ "libc", ] @@ -1542,9 +1556,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" [[package]] name = "libfuzzer-sys" @@ -1581,9 +1595,9 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -2267,9 +2281,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" dependencies = [ "lock_api", "parking_lot_core", @@ -2277,15 +2291,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -2696,11 +2710,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", ] [[package]] @@ -2889,9 +2903,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.32" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ "bitflags 2.5.0", "errno", @@ -2914,9 +2928,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.22.3" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ "log", "ring 0.17.8", @@ -2937,15 +2951,15 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" +checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54" [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.102.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -3032,18 +3046,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.198" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" +checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.198" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" +checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" dependencies = [ "proc-macro2", "quote", @@ -3144,9 +3158,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -3198,9 +3212,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3303,9 +3317,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "sysinfo" -version = "0.30.10" +version = "0.30.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d7c217777061d5a2d652aea771fb9ba98b6dade657204b08c4b9604d11555b" +checksum = "87341a165d73787554941cd5ef55ad728011566fe714e987d1b976c15dbc3a83" dependencies = [ "cfg-if", "core-foundation-sys", @@ -3441,6 +3455,7 @@ dependencies = [ "reqwest", "serde", "serde_json", + "thiserror", "tracing", "tracing-subscriber", "vergen", @@ -3453,7 +3468,7 @@ dependencies = [ "async-stream", "axum", "axum-tracing-opentelemetry", - "base64 0.22.0", + "base64 0.22.1", "clap", "futures", "futures-util", @@ -3490,18 +3505,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.58" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.58" +version = "1.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" dependencies = [ "proc-macro2", "quote", @@ -3720,9 +3735,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.9" +version = "0.22.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" dependencies = [ "indexmap 2.2.6", "serde", @@ -4023,9 +4038,9 @@ checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "unicode_categories" @@ -4047,16 +4062,16 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.9.6" +version = "2.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35" +checksum = "d11a831e3c0b56e438a28308e7c810799e3c118417f342d30ecec080105395cd" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "flate2", "log", "native-tls", "once_cell", - "rustls 0.22.3", + "rustls 0.22.4", "rustls-pki-types", "rustls-webpki", "serde", @@ -4330,11 +4345,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -4569,9 +4584,9 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" -version = "0.6.6" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352" +checksum = "14b9415ee827af173ebb3f15f9083df5a122eb93572ec28741fb153356ea2578" dependencies = [ "memchr", ] diff --git a/Dockerfile b/Dockerfile index 333f7c91..0471450f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Rust builder -FROM lukemathwalker/cargo-chef:latest-rust-1.75 AS chef +FROM lukemathwalker/cargo-chef:latest-rust-1.78 AS chef WORKDIR /usr/src ARG CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse diff --git a/Dockerfile_amd b/Dockerfile_amd index fb820116..57a7c637 100644 --- a/Dockerfile_amd +++ b/Dockerfile_amd @@ -1,5 +1,5 @@ # Rust builder -FROM lukemathwalker/cargo-chef:latest-rust-1.75 AS chef +FROM lukemathwalker/cargo-chef:latest-rust-1.78 AS chef WORKDIR /usr/src ARG CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse diff --git a/Dockerfile_intel b/Dockerfile_intel index d0791cac..8c7478c1 100644 --- a/Dockerfile_intel +++ b/Dockerfile_intel @@ -1,4 +1,4 @@ -FROM lukemathwalker/cargo-chef:latest-rust-1.75 AS chef +FROM lukemathwalker/cargo-chef:latest-rust-1.78 AS chef WORKDIR /usr/src ARG CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse diff --git a/benchmark/src/event.rs b/benchmark/src/event.rs index 91ce8400..07482aed 100644 --- a/benchmark/src/event.rs +++ b/benchmark/src/event.rs @@ -11,7 +11,7 @@ pub(crate) enum Event { /// Key press. Key(event::KeyEvent), /// Terminal resize. - Resize(u16, u16), + Resize, } pub(crate) async fn terminal_event_task( @@ -47,8 +47,8 @@ async fn event_loop(fps: u32, event_sender: mpsc::Sender) { if event::poll(Duration::from_secs(0)).expect("no events available") { match event::read().expect("unable to read event") { event::Event::Key(e) => event_sender.send(Event::Key(e)).await.unwrap_or(()), - event::Event::Resize(w, h) => { - event_sender.send(Event::Resize(w, h)).await.unwrap_or(()) + event::Event::Resize(_w, _h) => { + event_sender.send(Event::Resize).await.unwrap_or(()) } _ => (), } diff --git a/launcher/Cargo.toml b/launcher/Cargo.toml index 6b6fd58e..eb219423 100644 --- a/launcher/Cargo.toml +++ b/launcher/Cargo.toml @@ -14,6 +14,7 @@ nix = { version = "0.28.0", features = ["signal"] } once_cell = "1.19.0" serde = { version = "1.0.188", features = ["derive"] } serde_json = "1.0.107" +thiserror = "1.0.59" tracing = "0.1.37" tracing-subscriber = { version = "0.3.17", features = ["json", "env-filter"] } diff --git a/launcher/src/main.rs b/launcher/src/main.rs index 23944f40..f2f5a99b 100644 --- a/launcher/src/main.rs +++ b/launcher/src/main.rs @@ -16,6 +16,7 @@ use std::thread; use std::thread::sleep; use std::time::{Duration, Instant}; use std::{fs, io}; +use thiserror::Error; use tracing_subscriber::EnvFilter; mod env_runtime; @@ -819,26 +820,26 @@ fn find_num_shards( Ok(num_shard) } -#[derive(Debug)] +#[derive(Debug, Error)] enum LauncherError { + #[error("Invalid argument: {0}")] ArgumentValidation(String), + #[error("not enough cuda devices: {0}")] NotEnoughCUDADevices(String), + #[error("Download error")] DownloadError, + #[error("Shard cannot start")] ShardCannotStart, + #[error("Shard disconnected")] ShardDisconnected, + #[error("Shard failed")] ShardFailed, + #[error("Webserver failed")] WebserverFailed, + #[error("Webserver cannot start")] WebserverCannotStart, } -impl core::fmt::Display for LauncherError { - fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { - write!(f, "{self:?}") - } -} - -impl std::error::Error for LauncherError {} - fn download_convert_model(args: &Args, running: Arc) -> Result<(), LauncherError> { // Enter download tracing span let _span = tracing::span!(tracing::Level::INFO, "download").entered(); diff --git a/router/grpc-metadata/src/lib.rs b/router/grpc-metadata/src/lib.rs index 7ba353fa..3068a61c 100644 --- a/router/grpc-metadata/src/lib.rs +++ b/router/grpc-metadata/src/lib.rs @@ -2,30 +2,9 @@ //! Inspired by: https://github.com/open-telemetry/opentelemetry-rust gRPC examples use opentelemetry::global; -use opentelemetry::propagation::{Extractor, Injector}; +use opentelemetry::propagation::Injector; use tracing_opentelemetry::OpenTelemetrySpanExt; -/// Extract context metadata from a gRPC request's metadata -struct MetadataExtractor<'a>(pub &'a tonic::metadata::MetadataMap); - -impl<'a> Extractor for MetadataExtractor<'a> { - /// Get a value for a key from the MetadataMap. If the value can't be converted to &str, returns None - fn get(&self, key: &str) -> Option<&str> { - self.0.get(key).and_then(|metadata| metadata.to_str().ok()) - } - - /// Collect all the keys from the MetadataMap. - fn keys(&self) -> Vec<&str> { - self.0 - .keys() - .map(|key| match key { - tonic::metadata::KeyRef::Ascii(v) => v.as_str(), - tonic::metadata::KeyRef::Binary(v) => v.as_str(), - }) - .collect::>() - } -} - /// Inject context in the metadata of a gRPC request. struct MetadataInjector<'a>(pub &'a mut tonic::metadata::MetadataMap); diff --git a/router/src/infer.rs b/router/src/infer.rs index da0db072..a4945512 100644 --- a/router/src/infer.rs +++ b/router/src/infer.rs @@ -1249,7 +1249,7 @@ mod tests { }, ]; - let example_chat_with_system = vec![Message { + let example_chat_with_system = [Message { role: "system".to_string(), content: Some( "You are a friendly chatbot who always responds in the style of a pirate" @@ -1373,7 +1373,7 @@ mod tests { { let mut env = Environment::new(); env.add_function("raise_exception", raise_exception); - let tmpl = env.template_from_str(&chat_template); + let tmpl = env.template_from_str(chat_template); let result = tmpl.unwrap().render(input).unwrap(); assert_eq!(result, target); } diff --git a/router/src/server.rs b/router/src/server.rs index 5dbde21e..cb55d897 100644 --- a/router/src/server.rs +++ b/router/src/server.rs @@ -696,7 +696,7 @@ async fn completions( model: model_id.clone(), system_fingerprint: system_fingerprint.clone(), }) - .map_or_else(|_e| Event::default(), |data| data) + .unwrap_or_else(|_e| Event::default()) }; let (header_tx, header_rx) = oneshot::channel(); @@ -1122,13 +1122,10 @@ async fn chat_completions( logprobs, stream_token.details.map(|d| d.finish_reason.to_string()), )) - .map_or_else( - |e| { - println!("Failed to serialize ChatCompletionChunk: {:?}", e); - Event::default() - }, - |data| data, - ) + .unwrap_or_else(|e| { + println!("Failed to serialize ChatCompletionChunk: {:?}", e); + Event::default() + }) }; let (headers, response_stream) = generate_stream_internal( diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 67982433..507ee859 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,6 +1,5 @@ [toolchain] -# Released on: 28 December, 2023 -# Branched from master on: 10 November, 2023 -# https://releases.rs/docs/1.75.0/ -channel = "1.75.0" +# Released on: 02 May, 2024 +# https://releases.rs/docs/1.78.0/ +channel = "1.78.0" components = ["rustfmt", "clippy"] From 59b3ffea1442e40b37ba92e84687ea9784212556 Mon Sep 17 00:00:00 2001 From: "Wang, Yi" Date: Mon, 6 May 2024 22:05:43 +0800 Subject: [PATCH 72/74] update xpu docker image and use public ipex whel (#1860) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. Signed-off-by: Wang, Yi A --- Dockerfile_intel | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/Dockerfile_intel b/Dockerfile_intel index 8c7478c1..5bc39d64 100644 --- a/Dockerfile_intel +++ b/Dockerfile_intel @@ -36,7 +36,7 @@ RUN cargo build --release # Text Generation Inference base image for Intel -FROM intel/intel-extension-for-pytorch:2.1.10-xpu as base +FROM intel/intel-extension-for-pytorch:2.1.30-xpu as base USER root # libssl.so.1.1 is not installed on Ubuntu 22.04 by default, install it @@ -47,7 +47,7 @@ RUN wget http://nz2.archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1. RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | gpg --dearmor | tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null && echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | tee /etc/apt/sources.list.d/oneAPI.list -RUN apt-get update && apt install -y intel-basekit xpu-smi cmake python3-dev ninja-build +RUN apt-get update && apt install -y intel-basekit xpu-smi # Text Generation Inference base env ENV HUGGINGFACE_HUB_CACHE=/data \ @@ -56,9 +56,8 @@ ENV HUGGINGFACE_HUB_CACHE=/data \ WORKDIR /usr/src -# Build pytorch and ipex -RUN git clone https://github.com/intel/intel-extension-for-pytorch && cd intel-extension-for-pytorch && git checkout -b xpu_main origin/xpu-main -RUN git clone https://github.com/pytorch/pytorch.git && cd pytorch && git checkout 209f2fa8ff86652f67d75c2f19bf9cb9942fd018 && git apply /usr/src/intel-extension-for-pytorch/torch_patches/00*.patch +RUN wget https://intel-extension-for-pytorch.s3.amazonaws.com/ipex_dev/xpu/intel_extension_for_pytorch-2.1.30a0-cp310-cp310-linux_x86_64.whl +RUN pip install intel_extension_for_pytorch-2.1.30a0-cp310-cp310-linux_x86_64.whl # Install server COPY proto proto @@ -72,25 +71,11 @@ RUN cd server && \ ENV CCL_ROOT=/opt/intel/oneapi/ccl/latest ENV I_MPI_ROOT=/opt/intel/oneapi/mpi/latest ENV FI_PROVIDER_PATH=/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/lib/prov:/usr/lib/x86_64-linux-gnu/libfabric -ENV DIAGUTIL_PATH=/opt/intel/oneapi/compiler/latest/etc/compiler/sys_check/sys_check.sh -ENV CCL_CONFIGURATION=cpu_gpu_dpcpp -ENV MANPATH=/opt/intel/oneapi/mpi/latest/share/man:/opt/intel/oneapi/mpi/latest/share/man:/opt/intel/oneapi/compiler/latest/share/man -ENV CMAKE_PREFIX_PATH=/opt/intel/oneapi/mkl/latest/lib/cmake:/opt/intel/oneapi/compiler/latest -ENV CMPLR_ROOT=/opt/intel/oneapi/compiler/latest ENV LIBRARY_PATH=/opt/intel/oneapi/mpi/latest/lib:/opt/intel/oneapi/ccl/latest/lib/:/opt/intel/oneapi/mkl/latest/lib/:/opt/intel/oneapi/compiler/latest/lib -ENV OCL_ICD_FILENAMES=libintelocl_emu.so:libalteracl.so:/opt/intel/oneapi/compiler/latest/lib/libintelocl.so -ENV CLASSPATH=/opt/intel/oneapi/mpi/latest/share/java/mpi.jar:/opt/intel/oneapi/mpi/latest/share/java/mpi.jar ENV LD_LIBRARY_PATH=/opt/intel/oneapi/ccl/latest/lib/:/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/lib:/opt/intel/oneapi/mpi/latest/lib:/opt/intel/oneapi/mkl/latest/lib:/opt/intel/oneapi/compiler/latest/opt/compiler/lib:/opt/intel/oneapi/compiler/latest/lib:/opt/intel/oneapi/lib:/opt/intel/oneapi/lib/intel64: -ENV MKLROOT=/opt/intel/oneapi/mkl/latest -ENV NLSPATH=/opt/intel/oneapi/mkl/latest/share/locale/%l_%t/%N:/opt/intel/oneapi/compiler/latest/lib/locale/%l_%t/%N ENV PATH=/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/bin:/opt/intel/oneapi/mpi/latest/bin:/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/bin:/opt/intel/oneapi/mkl/latest/bin/:/opt/intel/oneapi/compiler/latest/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -ENV CPATH=/opt/intel/oneapi/mpi/latest/include:/opt/intel/oneapi/ccl/latest/include:/opt/intel/oneapi/mkl/latest/include ENV CCL_ZE_IPC_EXCHANGE=sockets - -RUN pip uninstall -y torch && cd pytorch && git submodule update --init --recursive && python setup.py install -RUN pip uninstall -y intel-extension-for-pytorch && cd intel-extension-for-pytorch && git submodule update --init --recursive && USE_AOT_DEVLIST='pvc' BUILD_SEPARATE_OPS=ON BUILD_WITH_CPU=ON USE_XETLA=ON python setup.py install - # Install benchmarker COPY --from=builder /usr/src/target/release/text-generation-benchmark /usr/local/bin/text-generation-benchmark # Install router From fd89d9dfaef408e4482ba5e230473de5bb203a99 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Mon, 13 May 2024 12:44:30 +0200 Subject: [PATCH 73/74] Refactor layers. (#1866) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- server/tests/utils/test_layers.py | 2 +- .../text_generation_server/layers/__init__.py | 14 + .../{utils => layers}/awq/conversion_utils.py | 0 .../{utils => layers}/awq/quantize/qmodule.py | 0 server/text_generation_server/layers/bnb.py | 106 ++ server/text_generation_server/layers/conv.py | 41 + server/text_generation_server/layers/eetq.py | 25 + server/text_generation_server/layers/fp8.py | 43 + .../layers/gptq/__init__.py | 39 + .../{utils => layers}/gptq/custom_autotune.py | 0 .../{utils => layers}/gptq/exllama.py | 0 .../{utils => layers}/gptq/exllamav2.py | 2 + .../layers/gptq/quant_linear.py | 356 +++++ .../{utils => layers}/gptq/quantize.py | 0 .../layers/layernorm.py | 185 +++ .../text_generation_server/layers/linear.py | 153 ++ .../text_generation_server/layers/medusa.py | 186 +++ .../text_generation_server/layers/rotary.py | 419 +++++ .../layers/speculative.py | 35 + .../layers/tensor_parallel.py | 188 +++ .../models/cache_manager.py | 4 +- .../models/custom_modeling/bloom_modeling.py | 2 +- .../models/custom_modeling/clip.py | 2 +- .../custom_modeling/flash_cohere_modeling.py | 18 +- .../custom_modeling/flash_dbrx_modeling.py | 19 +- .../custom_modeling/flash_gemma_modeling.py | 6 +- .../custom_modeling/flash_llama_modeling.py | 6 +- .../custom_modeling/flash_mistral_modeling.py | 6 +- .../custom_modeling/flash_mixtral_modeling.py | 14 +- .../custom_modeling/flash_neox_modeling.py | 10 +- .../custom_modeling/flash_phi_modeling.py | 8 +- .../custom_modeling/flash_qwen2_modeling.py | 6 +- .../custom_modeling/flash_rw_modeling.py | 10 +- .../flash_santacoder_modeling.py | 10 +- .../flash_starcoder2_modeling.py | 10 +- .../models/custom_modeling/idefics2.py | 2 +- .../custom_modeling/idefics_modeling.py | 16 +- .../custom_modeling/idefics_perceiver.py | 2 +- .../models/custom_modeling/idefics_vision.py | 2 +- .../models/custom_modeling/llava_next.py | 2 +- .../models/custom_modeling/mamba_modeling.py | 4 +- .../models/custom_modeling/mpt_modeling.py | 2 +- .../models/custom_modeling/neox_modeling.py | 2 +- .../models/custom_modeling/opt_modeling.py | 2 +- .../models/custom_modeling/phi_modeling.py | 2 +- .../models/custom_modeling/t5_modeling.py | 2 +- .../models/flash_causal_lm.py | 36 +- .../models/flash_llama.py | 4 +- .../models/flash_mistral.py | 4 +- .../models/flash_neox.py | 4 +- .../text_generation_server/models/flash_rw.py | 4 +- .../models/flash_santacoder.py | 4 +- server/text_generation_server/server.py | 2 +- .../utils/flash_attn.py | 197 ++- .../utils/gptq/quant_linear.py | 359 ----- .../utils/import_utils.py | 41 +- server/text_generation_server/utils/layers.py | 1374 ----------------- .../utils/paged_attention.py | 24 +- .../text_generation_server/utils/weights.py | 10 +- 59 files changed, 2085 insertions(+), 1941 deletions(-) create mode 100644 server/text_generation_server/layers/__init__.py rename server/text_generation_server/{utils => layers}/awq/conversion_utils.py (100%) rename server/text_generation_server/{utils => layers}/awq/quantize/qmodule.py (100%) create mode 100644 server/text_generation_server/layers/bnb.py create mode 100644 server/text_generation_server/layers/conv.py create mode 100644 server/text_generation_server/layers/eetq.py create mode 100644 server/text_generation_server/layers/fp8.py create mode 100644 server/text_generation_server/layers/gptq/__init__.py rename server/text_generation_server/{utils => layers}/gptq/custom_autotune.py (100%) rename server/text_generation_server/{utils => layers}/gptq/exllama.py (100%) rename server/text_generation_server/{utils => layers}/gptq/exllamav2.py (96%) create mode 100644 server/text_generation_server/layers/gptq/quant_linear.py rename server/text_generation_server/{utils => layers}/gptq/quantize.py (100%) create mode 100644 server/text_generation_server/layers/layernorm.py create mode 100644 server/text_generation_server/layers/linear.py create mode 100644 server/text_generation_server/layers/medusa.py create mode 100644 server/text_generation_server/layers/rotary.py create mode 100644 server/text_generation_server/layers/speculative.py create mode 100644 server/text_generation_server/layers/tensor_parallel.py delete mode 100644 server/text_generation_server/utils/gptq/quant_linear.py delete mode 100644 server/text_generation_server/utils/layers.py diff --git a/server/tests/utils/test_layers.py b/server/tests/utils/test_layers.py index 93a0e982..9a8da0d6 100644 --- a/server/tests/utils/test_layers.py +++ b/server/tests/utils/test_layers.py @@ -1,5 +1,5 @@ import torch -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelEmbedding, ) diff --git a/server/text_generation_server/layers/__init__.py b/server/text_generation_server/layers/__init__.py new file mode 100644 index 00000000..c3a6c921 --- /dev/null +++ b/server/text_generation_server/layers/__init__.py @@ -0,0 +1,14 @@ +from text_generation_server.layers.tensor_parallel import ( + TensorParallelColumnLinear, + TensorParallelRowLinear, + TensorParallelEmbedding, +) +from text_generation_server.layers.speculative import SpeculativeHead +from text_generation_server.layers.linear import ( + get_linear, + FastLinear, +) + +# Just to add the `load` methods. +from text_generation_server.layers.layernorm import load_layer_norm +from text_generation_server.layers.conv import load_conv2d diff --git a/server/text_generation_server/utils/awq/conversion_utils.py b/server/text_generation_server/layers/awq/conversion_utils.py similarity index 100% rename from server/text_generation_server/utils/awq/conversion_utils.py rename to server/text_generation_server/layers/awq/conversion_utils.py diff --git a/server/text_generation_server/utils/awq/quantize/qmodule.py b/server/text_generation_server/layers/awq/quantize/qmodule.py similarity index 100% rename from server/text_generation_server/utils/awq/quantize/qmodule.py rename to server/text_generation_server/layers/awq/quantize/qmodule.py diff --git a/server/text_generation_server/layers/bnb.py b/server/text_generation_server/layers/bnb.py new file mode 100644 index 00000000..d27a33a1 --- /dev/null +++ b/server/text_generation_server/layers/bnb.py @@ -0,0 +1,106 @@ +import torch +from loguru import logger +from functools import lru_cache +import bitsandbytes as bnb +from bitsandbytes.nn import Int8Params, Params4bit + + +@lru_cache(1) +def warn_deprecate_bnb(): + logger.warning( + "Bitsandbytes 8bit is deprecated, using `eetq` is a drop-in replacement, and has much better performnce" + ) + + +class Linear8bitLt(torch.nn.Module): + def __init__( + self, + weight, + bias, + has_fp16_weights=True, + memory_efficient_backward=False, + threshold=0.0, + index=None, + ): + super().__init__() + assert ( + not memory_efficient_backward + ), "memory_efficient_backward is no longer required and the argument is deprecated in 0.37.0 and will be removed in 0.39.0" + self.state = bnb.MatmulLtState() + self.index = index + + # Necessary for stacked layers + self.state.threshold = threshold + self.state.has_fp16_weights = has_fp16_weights + self.state.memory_efficient_backward = memory_efficient_backward + if threshold > 0.0 and not has_fp16_weights: + self.state.use_pool = True + + self.weight = Int8Params( + weight.data, + has_fp16_weights=has_fp16_weights, + requires_grad=has_fp16_weights, + ) + self.weight.cuda(weight.device) + self.bias = bias + + def init_8bit_state(self): + self.state.CB = self.weight.CB + self.state.SCB = self.weight.SCB + self.weight.CB = None + self.weight.SCB = None + + def forward(self, x: torch.Tensor): + self.state.is_training = self.training + if self.weight.CB is not None: + self.init_8bit_state() + + # weights are cast automatically as Int8Params, but the bias has to be cast manually + if self.bias is not None and self.bias.dtype != x.dtype: + self.bias.data = self.bias.data.to(x.dtype) + + out = bnb.matmul(x, self.weight, bias=self.bias, state=self.state) + + if not self.state.has_fp16_weights: + if self.state.CB is not None and self.state.CxB is not None: + # we converted 8-bit row major to turing/ampere format in the first inference pass + # we no longer need the row-major weight + del self.state.CB + self.weight.data = self.state.CxB + return out + + +class Linear4bit(nn.Module): + def __init__(self, weight, bias, quant_type): + super().__init__() + self.weight = Params4bit( + weight.data, + requires_grad=False, + compress_statistics=True, + quant_type=quant_type, + ) + self.compute_dtype = None + self.weight.cuda(weight.device) + self.bias = bias + + def forward(self, x: torch.Tensor): + # weights are cast automatically as Int8Params, but the bias has to be cast manually + if self.bias is not None and self.bias.dtype != x.dtype: + self.bias.data = self.bias.data.to(x.dtype) + + if getattr(self.weight, "quant_state", None) is None: + print( + "FP4 quantization state not initialized. Please call .cuda() or .to(device) on the LinearFP4 layer first." + ) + inp_dtype = x.dtype + if self.compute_dtype is not None: + x = x.to(self.compute_dtype) + + bias = None if self.bias is None else self.bias.to(self.compute_dtype) + out = bnb.matmul_4bit( + x, self.weight.t(), bias=bias, quant_state=self.weight.quant_state + ) + + out = out.to(inp_dtype) + + return out diff --git a/server/text_generation_server/layers/conv.py b/server/text_generation_server/layers/conv.py new file mode 100644 index 00000000..7fb18ab3 --- /dev/null +++ b/server/text_generation_server/layers/conv.py @@ -0,0 +1,41 @@ +from accelerate import init_empty_weights +import torch + + +@classmethod +def load_conv2d(cls, prefix, weights, in_channels, out_channels, kernel_size, stride): + weight = weights.get_tensor(f"{prefix}.weight") + bias = weights.get_tensor(f"{prefix}.bias") + with init_empty_weights(): + conv2d = cls( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + ) + + conv2d.weight = torch.nn.Parameter(weight) + conv2d.bias = torch.nn.Parameter(bias) + return conv2d + + +@classmethod +def load_conv2d_no_bias( + cls, prefix, weights, in_channels, out_channels, kernel_size, stride +): + weight = weights.get_tensor(f"{prefix}.weight") + with init_empty_weights(): + conv2d = cls( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + ) + + conv2d.weight = torch.nn.Parameter(weight) + conv2d.bias = None + return conv2d + + +torch.nn.Conv2d.load = load_conv2d +torch.nn.Conv2d.load_no_bias = load_conv2d_no_bias diff --git a/server/text_generation_server/layers/eetq.py b/server/text_generation_server/layers/eetq.py new file mode 100644 index 00000000..fd22b5c6 --- /dev/null +++ b/server/text_generation_server/layers/eetq.py @@ -0,0 +1,25 @@ +import torch +from EETQ import quant_weights, w8_a16_gemm + + +class EETQLinear(torch.nn.Module): + def __init__( + self, + weight, + bias, + ) -> None: + super().__init__() + device = weight.device + if weight.dtype != torch.float16: + weight = weight.to(dtype=torch.float16) + weight = torch.t(weight).contiguous().cpu() + weight, scale = quant_weights(weight, torch.int8, False) + + self.weight = weight.cuda(device) + self.scale = scale.cuda(device) + self.bias = bias.cuda(device) if bias is not None else None + + def forward(self, input: torch.Tensor) -> torch.Tensor: + output = w8_a16_gemm(input, self.weight, self.scale) + output = output + self.bias if self.bias is not None else output + return output diff --git a/server/text_generation_server/layers/fp8.py b/server/text_generation_server/layers/fp8.py new file mode 100644 index 00000000..dd61d081 --- /dev/null +++ b/server/text_generation_server/layers/fp8.py @@ -0,0 +1,43 @@ +import torch + + +def fp8_quantize(weight, qdtype=torch.float8_e4m3fn): + device = weight.device + # weight, scale = quant_weights(weight, torch.int8, False) + finfo = torch.finfo(qdtype) + # Calculate the scale as dtype max divided by absmax + scale = finfo.max / weight.abs().max().clamp(min=1e-12) + # scale and clamp the tensor to bring it to + # the representative range of float8 data type + # (as default cast is unsaturated) + qweight = (weight * scale).clamp(min=finfo.min, max=finfo.max) + # Return both float8 data and the inverse scale (as float), + # as both required as inputs to torch._scaled_mm + qweight = qweight.to(qdtype) + scale = scale.float().reciprocal() + return qweight, scale + + +class Fp8Linear(torch.nn.Module): + def __init__( + self, + weight, + bias, + ) -> None: + super().__init__() + self.dtype = weight.dtype + self.qweight, self.scale = fp8_quantize(weight) + + self.bias = bias if bias is not None else None + + def forward(self, input: torch.Tensor) -> torch.Tensor: + qinput, scale = fp8_quantize(input) + output, _ = torch._scaled_mm( + qinput, + self.qweight.t(), + out_dtype=self.dtype, + scale_a=scale, + scale_b=self.scale, + bias=self.bias, + ) + return output diff --git a/server/text_generation_server/layers/gptq/__init__.py b/server/text_generation_server/layers/gptq/__init__.py new file mode 100644 index 00000000..1c46f493 --- /dev/null +++ b/server/text_generation_server/layers/gptq/__init__.py @@ -0,0 +1,39 @@ +import os +import torch +from text_generation_server.utils.import_utils import ( + SYSTEM, +) + +try: + major, _minor = torch.cuda.get_device_capability() +except Exception: + major = 1 + +HAS_EXLLAMA = False +CAN_EXLLAMA = major >= 8 or SYSTEM == "rocm" +V2 = os.getenv("EXLLAMA_VERSION", "2") == "2" +if os.getenv("DISABLE_EXLLAMA") == "True": + HAS_EXLLAMA = False +elif CAN_EXLLAMA: + try: + if V2: + from text_generation_server.layers.gptq.exllamav2 import ( + QuantLinear as ExllamaQuantLinear, + create_exllama_buffers, + set_device, + ) + + HAS_EXLLAMA = "2" + else: + from text_generation_server.layers.gptq.exllama import ( + Ex4bitLinear as ExllamaQuantLinear, + create_exllama_buffers, + set_device, + ) + + HAS_EXLLAMA = "1" + + except ImportError: + pass + +from text_generation_server.layers.gptq.quant_linear import QuantLinear diff --git a/server/text_generation_server/utils/gptq/custom_autotune.py b/server/text_generation_server/layers/gptq/custom_autotune.py similarity index 100% rename from server/text_generation_server/utils/gptq/custom_autotune.py rename to server/text_generation_server/layers/gptq/custom_autotune.py diff --git a/server/text_generation_server/utils/gptq/exllama.py b/server/text_generation_server/layers/gptq/exllama.py similarity index 100% rename from server/text_generation_server/utils/gptq/exllama.py rename to server/text_generation_server/layers/gptq/exllama.py diff --git a/server/text_generation_server/utils/gptq/exllamav2.py b/server/text_generation_server/layers/gptq/exllamav2.py similarity index 96% rename from server/text_generation_server/utils/gptq/exllamav2.py rename to server/text_generation_server/layers/gptq/exllamav2.py index 80836a95..321ced97 100644 --- a/server/text_generation_server/utils/gptq/exllamav2.py +++ b/server/text_generation_server/layers/gptq/exllamav2.py @@ -119,6 +119,8 @@ def ext_make_q_matrix(w: dict, temp_dq, key: str = None): none_tensor, temp_dq, ) + else: + RuntimeError("Cannot create handle") DEVICE = None diff --git a/server/text_generation_server/layers/gptq/quant_linear.py b/server/text_generation_server/layers/gptq/quant_linear.py new file mode 100644 index 00000000..f60758b6 --- /dev/null +++ b/server/text_generation_server/layers/gptq/quant_linear.py @@ -0,0 +1,356 @@ +import math +import numpy as np +import torch +import torch.nn as nn +from torch.cuda.amp import custom_fwd + +import triton +import triton.language as tl +from . import custom_autotune + + +# code based https://github.com/fpgaminer/GPTQ-triton +@custom_autotune.autotune( + configs=[ + triton.Config( + { + "BLOCK_SIZE_M": 64, + "BLOCK_SIZE_N": 256, + "BLOCK_SIZE_K": 32, + "GROUP_SIZE_M": 8, + }, + num_stages=4, + num_warps=4, + ), + triton.Config( + { + "BLOCK_SIZE_M": 128, + "BLOCK_SIZE_N": 128, + "BLOCK_SIZE_K": 32, + "GROUP_SIZE_M": 8, + }, + num_stages=4, + num_warps=4, + ), + triton.Config( + { + "BLOCK_SIZE_M": 64, + "BLOCK_SIZE_N": 128, + "BLOCK_SIZE_K": 32, + "GROUP_SIZE_M": 8, + }, + num_stages=4, + num_warps=4, + ), + triton.Config( + { + "BLOCK_SIZE_M": 128, + "BLOCK_SIZE_N": 32, + "BLOCK_SIZE_K": 32, + "GROUP_SIZE_M": 8, + }, + num_stages=4, + num_warps=4, + ), + triton.Config( + { + "BLOCK_SIZE_M": 64, + "BLOCK_SIZE_N": 64, + "BLOCK_SIZE_K": 32, + "GROUP_SIZE_M": 8, + }, + num_stages=4, + num_warps=4, + ), + triton.Config( + { + "BLOCK_SIZE_M": 64, + "BLOCK_SIZE_N": 128, + "BLOCK_SIZE_K": 32, + "GROUP_SIZE_M": 8, + }, + num_stages=2, + num_warps=8, + ), + triton.Config( + { + "BLOCK_SIZE_M": 64, + "BLOCK_SIZE_N": 64, + "BLOCK_SIZE_K": 64, + "GROUP_SIZE_M": 8, + }, + num_stages=3, + num_warps=8, + ), + triton.Config( + { + "BLOCK_SIZE_M": 32, + "BLOCK_SIZE_N": 32, + "BLOCK_SIZE_K": 128, + "GROUP_SIZE_M": 8, + }, + num_stages=2, + num_warps=4, + ), + ], + key=["M", "N", "K"], + nearest_power_of_two=True, + prune_configs_by={ + "early_config_prune": custom_autotune.matmul248_kernel_config_pruner, + "perf_model": None, + "top_k": None, + }, +) +@triton.jit +def matmul_248_kernel( + a_ptr, + b_ptr, + c_ptr, + scales_ptr, + zeros_ptr, + g_ptr, + M, + N, + K, + bits, + maxq, + stride_am, + stride_ak, + stride_bk, + stride_bn, + stride_cm, + stride_cn, + stride_scales, + stride_zeros, + BLOCK_SIZE_M: tl.constexpr, + BLOCK_SIZE_N: tl.constexpr, + BLOCK_SIZE_K: tl.constexpr, + GROUP_SIZE_M: tl.constexpr, +): + """ + Compute the matrix multiplication C = A x B. + A is of shape (M, K) float16 + B is of shape (K//8, N) int32 + C is of shape (M, N) float16 + scales is of shape (G, N) float16 + zeros is of shape (G, N) float16 + g_ptr is of shape (K) int32 + """ + infearure_per_bits = 32 // bits + + pid = tl.program_id(axis=0) + num_pid_m = tl.cdiv(M, BLOCK_SIZE_M) + num_pid_n = tl.cdiv(N, BLOCK_SIZE_N) + num_pid_k = tl.cdiv(K, BLOCK_SIZE_K) + num_pid_in_group = GROUP_SIZE_M * num_pid_n + group_id = pid // num_pid_in_group + first_pid_m = group_id * GROUP_SIZE_M + group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M) + pid_m = first_pid_m + (pid % group_size_m) + pid_n = (pid % num_pid_in_group) // group_size_m + + offs_am = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_bn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + offs_k = tl.arange(0, BLOCK_SIZE_K) + a_ptrs = a_ptr + ( + offs_am[:, None] * stride_am + offs_k[None, :] * stride_ak + ) # (BLOCK_SIZE_M, BLOCK_SIZE_K) + a_mask = offs_am[:, None] < M + # b_ptrs is set up such that it repeats elements along the K axis 8 times + b_ptrs = b_ptr + ( + (offs_k[:, None] // infearure_per_bits) * stride_bk + + offs_bn[None, :] * stride_bn + ) # (BLOCK_SIZE_K, BLOCK_SIZE_N) + g_ptrs = g_ptr + offs_k + # shifter is used to extract the N bits of each element in the 32-bit word from B + scales_ptrs = scales_ptr + offs_bn[None, :] + zeros_ptrs = zeros_ptr + (offs_bn[None, :] // infearure_per_bits) + + shifter = (offs_k % infearure_per_bits) * bits + zeros_shifter = (offs_bn % infearure_per_bits) * bits + accumulator = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) + + for k in range(0, num_pid_k): + g_idx = tl.load(g_ptrs) + + # Fetch scales and zeros; these are per-outfeature and thus reused in the inner loop + scales = tl.load( + scales_ptrs + g_idx[:, None] * stride_scales + ) # (BLOCK_SIZE_K, BLOCK_SIZE_N,) + zeros = tl.load( + zeros_ptrs + g_idx[:, None] * stride_zeros + ) # (BLOCK_SIZE_K, BLOCK_SIZE_N,) + + zeros = (zeros >> zeros_shifter[None, :]) & maxq + zeros = (zeros + 1) & maxq # eventually avoid overflow + + a = tl.load(a_ptrs, mask=a_mask, other=0.0) # (BLOCK_SIZE_M, BLOCK_SIZE_K) + b = tl.load(b_ptrs) # (BLOCK_SIZE_K, BLOCK_SIZE_N), but repeated + + # Now we need to unpack b (which is N-bit values) into 32-bit values + b = (b >> shifter[:, None]) & maxq # Extract the N-bit values + b = (b - zeros) * scales # Scale and shift + + accumulator += tl.dot(a, b) + a_ptrs += BLOCK_SIZE_K + b_ptrs += (BLOCK_SIZE_K // infearure_per_bits) * stride_bk + g_ptrs += BLOCK_SIZE_K + + c_ptrs = c_ptr + stride_cm * offs_am[:, None] + stride_cn * offs_bn[None, :] + c_mask = (offs_am[:, None] < M) & (offs_bn[None, :] < N) + tl.store(c_ptrs, accumulator, mask=c_mask) + + +def matmul248(input, qweight, scales, qzeros, g_idx, bits, maxq): + with torch.cuda.device(input.device): + output = torch.empty( + (input.shape[0], qweight.shape[1]), device=input.device, dtype=torch.float16 + ) + grid = lambda META: ( + triton.cdiv(input.shape[0], META["BLOCK_SIZE_M"]) + * triton.cdiv(qweight.shape[1], META["BLOCK_SIZE_N"]), + ) + matmul_248_kernel[grid]( + input, + qweight, + output, + scales, + qzeros, + g_idx, + input.shape[0], + qweight.shape[1], + input.shape[1], + bits, + maxq, + input.stride(0), + input.stride(1), + qweight.stride(0), + qweight.stride(1), + output.stride(0), + output.stride(1), + scales.stride(0), + qzeros.stride(0), + ) + return output + + +class QuantLinearFunction(torch.autograd.Function): + @staticmethod + @custom_fwd(cast_inputs=torch.float16) + def forward(ctx, input, qweight, scales, qzeros, g_idx, bits, maxq): + output = matmul248(input, qweight, scales, qzeros, g_idx, bits, maxq) + return output + + +class QuantLinear(nn.Module): + def __init__(self, qweight, qzeros, scales, g_idx, bias, bits, groupsize): + super().__init__() + self.register_buffer("qweight", qweight) + self.register_buffer("qzeros", qzeros) + self.register_buffer("scales", scales) + self.register_buffer("g_idx", g_idx) + if bias is not None: + self.register_buffer("bias", bias) + else: + self.bias = None + if bits not in [2, 4, 8]: + raise NotImplementedError("Only 2,4,8 bits are supported.") + self.bits = bits + self.maxq = 2**self.bits - 1 + self.groupsize = groupsize + + self.outfeatures = qweight.shape[1] + self.infeatures = qweight.shape[0] * 32 // bits + + @classmethod + def new(cls, bits, groupsize, infeatures, outfeatures, bias): + if bits not in [2, 4, 8]: + raise NotImplementedError("Only 2,4,8 bits are supported.") + + qweight = torch.zeros((infeatures // 32 * bits, outfeatures), dtype=torch.int32) + qzeros = torch.zeros( + (math.ceil(infeatures / groupsize), outfeatures // 32 * bits), + dtype=torch.int32, + ) + scales = torch.zeros( + (math.ceil(infeatures / groupsize), outfeatures), dtype=torch.float16 + ) + g_idx = torch.tensor( + [i // groupsize for i in range(infeatures)], dtype=torch.int32 + ) + if bias: + bias = torch.zeros((outfeatures), dtype=torch.float16) + else: + bias = None + return cls(qweight, qzeros, scales, g_idx, bias, bits, groupsize) + + def pack(self, linear, scales, zeros, g_idx=None): + self.g_idx = g_idx.clone() if g_idx is not None else self.g_idx + + scales = scales.t().contiguous() + zeros = zeros.t().contiguous() + scale_zeros = zeros * scales + self.scales = scales.clone().half() + if linear.bias is not None: + self.bias = linear.bias.clone().half() + + intweight = [] + for idx in range(self.infeatures): + intweight.append( + torch.round( + (linear.weight.data[:, idx] + scale_zeros[self.g_idx[idx]]) + / self.scales[self.g_idx[idx]] + ).to(torch.int)[:, None] + ) + intweight = torch.cat(intweight, dim=1) + intweight = intweight.t().contiguous() + intweight = intweight.numpy().astype(np.uint32) + qweight = np.zeros( + (intweight.shape[0] // 32 * self.bits, intweight.shape[1]), dtype=np.uint32 + ) + i = 0 + row = 0 + while row < qweight.shape[0]: + if self.bits in [2, 4, 8]: + for j in range(i, i + (32 // self.bits)): + qweight[row] |= intweight[j] << (self.bits * (j - i)) + i += 32 // self.bits + row += 1 + else: + raise NotImplementedError("Only 2,4,8 bits are supported.") + + qweight = qweight.astype(np.int32) + self.qweight = torch.from_numpy(qweight) + + zeros -= 1 + zeros = zeros.numpy().astype(np.uint32) + qzeros = np.zeros( + (zeros.shape[0], zeros.shape[1] // 32 * self.bits), dtype=np.uint32 + ) + i = 0 + col = 0 + while col < qzeros.shape[1]: + if self.bits in [2, 4, 8]: + for j in range(i, i + (32 // self.bits)): + qzeros[:, col] |= zeros[:, j] << (self.bits * (j - i)) + i += 32 // self.bits + col += 1 + else: + raise NotImplementedError("Only 2,4,8 bits are supported.") + + qzeros = qzeros.astype(np.int32) + self.qzeros = torch.from_numpy(qzeros) + + def forward(self, x): + out_shape = x.shape[:-1] + (self.outfeatures,) + out = QuantLinearFunction.apply( + x.reshape(-1, x.shape[-1]), + self.qweight, + self.scales, + self.qzeros, + self.g_idx, + self.bits, + self.maxq, + ) + out = out + self.bias if self.bias is not None else out + return out.reshape(out_shape) diff --git a/server/text_generation_server/utils/gptq/quantize.py b/server/text_generation_server/layers/gptq/quantize.py similarity index 100% rename from server/text_generation_server/utils/gptq/quantize.py rename to server/text_generation_server/layers/gptq/quantize.py diff --git a/server/text_generation_server/layers/layernorm.py b/server/text_generation_server/layers/layernorm.py new file mode 100644 index 00000000..15d24e80 --- /dev/null +++ b/server/text_generation_server/layers/layernorm.py @@ -0,0 +1,185 @@ +import torch +from torch import nn +from accelerate import init_empty_weights +from text_generation_server.utils.import_utils import ( + SYSTEM, +) + + +# Monkey patching +@classmethod +def load_layer_norm(cls, prefix, weights, eps): + weight = weights.get_tensor(f"{prefix}.weight") + bias = weights.get_tensor(f"{prefix}.bias") + with init_empty_weights(): + ln = cls(weight.shape, eps=eps) + + ln.weight = torch.nn.Parameter(weight) + ln.bias = torch.nn.Parameter(bias) + return ln + + +@classmethod +def load_layer_norm_no_bias(cls, prefix, weights, eps): + weight = weights.get_tensor(f"{prefix}.weight") + with init_empty_weights(): + ln = cls(weight.shape, eps=eps) + + ln.weight = torch.nn.Parameter(weight) + ln.bias = None + return ln + + +torch.nn.LayerNorm.load = load_layer_norm +torch.nn.LayerNorm.load_no_bias = load_layer_norm_no_bias + +if SYSTEM == "cuda": + import dropout_layer_norm + + class FastLayerNorm(nn.LayerNorm): + def forward(self, hidden_states, residual=None): + if hidden_states.shape[-1] > 8192: + if residual is not None: + hidden_states += residual + residual = hidden_states + + return super(FastLayerNorm, self).forward(hidden_states), residual + else: + ( + normed_hidden_states, + residual, + *rest, + ) = dropout_layer_norm.dropout_add_ln_fwd( + hidden_states, + residual, + self.weight, + self.bias, + None, + None, + None, + None, + 0.0, + self.eps, + 1.0, + 0, + None, + False, + False, + ) + if residual is None: + residual = hidden_states + + return normed_hidden_states, residual + +elif SYSTEM == "rocm": + from vllm import layernorm_ops + + class FastLayerNorm(nn.LayerNorm): + def forward(self, hidden_states, residual=None): + if residual is not None: + hidden_states += residual + residual = hidden_states + + return super().forward(hidden_states), residual + +elif SYSTEM == "xpu": + import intel_extension_for_pytorch as ipex + + class FastLayerNorm(nn.LayerNorm): + def forward(self, hidden_states, residual=None): + res_out = hidden_states + out = ipex.llm.functional.add_layer_norm( + residual, hidden_states, self.weight, self.bias, self.eps, True + ) + if residual is not None: + res_out = residual + return out, res_out + + +class FastRMSNorm(nn.Module): + def __init__(self, weight: torch.Tensor, eps: float): + super().__init__() + + self.weight = nn.Parameter(weight) + self.variance_epsilon = eps + + @classmethod + def load(cls, prefix, weights, eps=1e-6): + weight = weights.get_tensor(f"{prefix}.weight") + return cls(weight, eps) + + def forward(self, hidden_states, residual=None): + if SYSTEM == "xpu": + residual_out = hidden_states + out = ipex.llm.functional.add_rms_norm( + residual, + hidden_states, + self.weight, + None, + self.variance_epsilon, + True, + ) + if residual is not None: + residual_out = residual + return out, residual_out + elif hidden_states.shape[-1] > 8192: + if residual is not None: + hidden_states += residual + residual = hidden_states + + hidden_states = hidden_states.to(torch.float32) + variance = hidden_states.pow(2).mean(-1, keepdim=True) + hidden_states = hidden_states * torch.rsqrt( + variance + self.variance_epsilon + ) + + # convert into half-precision if necessary + if self.weight.dtype in [torch.float16, torch.bfloat16]: + hidden_states = hidden_states.to(self.weight.dtype) + + return self.weight * hidden_states, residual + elif SYSTEM == "cuda": + # faster post attention rms norm + ( + normed_hidden_states, + res, + *rest, + ) = dropout_layer_norm.dropout_add_ln_fwd( + hidden_states, + residual, + self.weight, + None, + None, + None, + None, + None, + 0.0, + self.variance_epsilon, + 1.0, + 0, + None, + False, + True, # Activate RMSNorm + ) + if res is None: + res = hidden_states + + return normed_hidden_states, res + elif SYSTEM == "rocm": + # We use VLLM RMSNorm kernel that can be compiled for RoCm, instead of Flash Attention ones that can not. + if residual is not None: + hidden_states += residual + residual = hidden_states + + out = torch.empty_like(hidden_states) + layernorm_ops.rms_norm( + out, + hidden_states, + self.weight.data, + self.variance_epsilon, + ) + return out, residual + else: + raise ValueError( + "Your system seem to be not supported. Please check your install or open an issue at https://github.com/huggingface/text-generation-inference/issues with a clear reproduction." + ) diff --git a/server/text_generation_server/layers/linear.py b/server/text_generation_server/layers/linear.py new file mode 100644 index 00000000..d137a500 --- /dev/null +++ b/server/text_generation_server/layers/linear.py @@ -0,0 +1,153 @@ +import torch +from torch.nn import functional as F +from text_generation_server.utils.import_utils import SYSTEM + + +class FastLinear(torch.nn.Module): + def __init__( + self, + weight, + bias, + ) -> None: + super().__init__() + self.weight = torch.nn.Parameter(weight) + if bias is not None: + self.bias = torch.nn.Parameter(bias) + else: + self.bias = None + + @classmethod + def load(cls, config, prefix: str, weights, bias: bool): + weight = weights.get_tensor(f"{prefix}.weight") + if bias: + bias = weights.get_tensor(f"{prefix}.bias") + else: + bias = None + return cls(weight, bias) + + def forward(self, input: torch.Tensor) -> torch.Tensor: + return F.linear(input, self.weight, self.bias) + + +def get_linear(weight, bias, quantize): + if quantize is None: + linear = FastLinear(weight, bias) + elif quantize == "eetq": + try: + from text_generation_server.layers.eetq import EETQLinear + + linear = EETQLinear(weight, bias) + except ImportError: + raise ImportError( + "Please install EETQ from https://github.com/NetEase-FuXi/EETQ" + ) + elif quantize == "fp8": + from text_generation_server.layers.fp8 import Fp8Linear + + linear = Fp8Linear(weight, bias) + elif quantize == "bitsandbytes": + try: + from text_generation_server.layers.bnb import ( + warn_deprecate_bnb, + Linear8bitLt, + ) + except ImportError: + raise NotImplementedError( + f"Bitsandbytes is missing install it with `pip install bitsandbytes`." + ) + warn_deprecate_bnb() + linear = Linear8bitLt( + weight, + bias, + has_fp16_weights=False, + threshold=6.0, + ) + if bias is not None: + linear.bias = nn.Parameter(bias) + elif quantize == "bitsandbytes-fp4": + try: + from text_generation_server.layers.bnb import Linear4bit + except ImportError: + raise NotImplementedError( + f"Bitsandbytes is missing install it with `pip install bitsandbytes`." + ) + linear = Linear4bit( + weight, + bias, + quant_type="fp4", + ) + elif quantize == "bitsandbytes-nf4": + try: + from text_generation_server.layers.bnb import Linear4bit + except ImportError: + raise NotImplementedError( + f"Bitsandbytes is missing install it with `pip install bitsandbytes`." + ) + linear = Linear4bit( + weight, + bias, + quant_type="nf4", + ) + elif quantize == "gptq": + try: + qweight, qzeros, scales, g_idx, bits, groupsize, use_exllama = weight + except Exception: + raise NotImplementedError( + f"The passed weight is not `gptq` compatible, loader needs to be updated." + ) + + if use_exllama: + try: + from text_generation_server.layers.gptq import ( + ExllamaQuantLinear, + ) + except ImportError: + raise NotImplementedError( + f"Exllama gptq kernels are not installed. Install them `cd server/exllama_kernels && python setup.py install && cd ../exllamav2_kernels && python setup.py install`" + ) + + linear = ExllamaQuantLinear( + qweight, qzeros, scales, g_idx, bias, bits, groupsize + ) + else: + from text_generation_server.layers.gptq.quant_linear import QuantLinear + + linear = QuantLinear( + qweight, + qzeros, + scales, + g_idx, + bias, + bits, + groupsize, + ) + elif quantize == "awq": + try: + qweight, qzeros, scales, _, bits, groupsize, _ = weight + except Exception: + raise NotImplementedError( + f"The passed weight is not `awq` compatible, loader needs to be updated." + ) + if SYSTEM == "rocm": + raise NotImplementedError( + "AWQ GEMM kernel can't be used on ROCm systems, please use `--quantize gptq` instead " + "to use Exllama/GPTQ kernels for AWQ inference." + ) + try: + from text_generation_server.layers.awq.quantize.qmodule import WQLinear + + linear = WQLinear( + w_bit=bits, + group_size=groupsize, + qweight=qweight, + qzeros=qzeros, + scales=scales, + bias=bias is not None, + ) + except ImportError: + raise NotImplementedError( + "You do not seem to have awq installed, either install it (cd server && make install-awq), or try using GPTQ `---quantize gptq` a conversion AWQ->GPTQ will happen on the fly" + ) + else: + raise NotImplementedError(f"Quantization `{quantize}` is not implemented yet.") + return linear diff --git a/server/text_generation_server/layers/medusa.py b/server/text_generation_server/layers/medusa.py new file mode 100644 index 00000000..4ac86978 --- /dev/null +++ b/server/text_generation_server/layers/medusa.py @@ -0,0 +1,186 @@ +import torch +from torch import nn +from typing import Tuple, Optional +from text_generation_server.utils.speculate import get_speculate +from text_generation_server.layers.linear import FastLinear +from text_generation_server.layers.tensor_parallel import ( + TensorParallelHead, + TensorParallelColumnLinear, +) + + +class ResBlock(torch.nn.Module): + def __init__(self, config, prefix, weights): + super().__init__() + self.linear = FastLinear.load( + config, prefix=f"{prefix}.linear", weights=weights, bias=True + ) + self.act = torch.nn.SiLU() + + def forward(self, x): + return x + self.act(self.linear(x)) + + +class MedusaModel(torch.nn.Module): + def __init__(self, config, medusa_config, weights): + super().__init__() + self.heads = torch.nn.ModuleList( + [ + MedusaHead(config, medusa_config, prefix=f"{i}", weights=weights) + for i in range(get_speculate()) + ] + ) + + def forward(self, x): + speculative_logits = torch.stack([head(x) for head in self.heads], dim=1) + return speculative_logits + + +class MedusaHead(torch.nn.Module): + def __init__(self, config, medusa_config, prefix, weights): + super().__init__() + self.blocks = torch.nn.ModuleList( + [ + ResBlock(config, prefix=f"{prefix}.{i}", weights=weights) + for i in range(medusa_config["medusa_num_layers"]) + ] + ) + n = len(self.blocks) + self.out = FastLinear.load( + config, prefix=f"{prefix}.{n}", weights=weights, bias=False + ) + + def forward(self, x): + for block in self.blocks: + x = block(x) + x = self.out(x) + return x + + +class MedusaHeadV1(nn.Module): + def __init__(self, lm_head, medusa): + super().__init__() + self.lm_head = lm_head + self.medusa = medusa + + @staticmethod + def load(config, prefix: str, weights): + from pathlib import Path + from safetensors import safe_open + import json + + use_medusa = config.use_medusa + + medusa_config = str(Path(use_medusa) / "config.json") + filename = str(Path(use_medusa) / "medusa_lm_head.safetensors") + + with open(medusa_config, "r") as f: + medusa_config = json.load(f) + routing = weights.routing + with safe_open(filename, framework="pytorch") as f: + for k in f.keys(): + if k in routing and routing[k] != filename: + raise RuntimeError( + f"Key {k} was found in multiple files: {filename} and {routing[k]}" + ) + routing[k] = filename + + medusa = MedusaModel(config, medusa_config, weights) + lm_head = TensorParallelHead.load(config, prefix, weights) + return MedusaHeadV1(lm_head, medusa) + + def forward( + self, input: torch.Tensor + ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: + logits = self.lm_head(input) + # If we have too many tokens, we skip speculative logits + if input.shape[0] > 128: + return logits, None + + speculative_logits = self.medusa(input) + return logits, speculative_logits + + +class MedusaHeadV2(nn.Module): + def __init__(self, config, prefix, weights): + super().__init__() + from pathlib import Path + from safetensors import safe_open + import json + + use_medusa = config.use_medusa + + medusa_config = str(Path(use_medusa) / "config.json") + filename = str(Path(use_medusa) / "medusa_lm_head.safetensors") + + with open(medusa_config, "r") as f: + medusa_config = json.load(f) + routing = weights.routing + with safe_open(filename, framework="pytorch") as f: + for k in f.keys(): + if k in routing and routing[k] != filename: + raise RuntimeError( + f"Key {k} was found in multiple files: {filename} and {routing[k]}" + ) + routing[k] = filename + + self.n_medusa_heads = get_speculate() + + assert medusa_config["medusa_num_layers"] == 1 + self.linear = TensorParallelColumnLinear.load_multi( + config, + prefixes=[f"{i}.0.linear" for i in range(self.n_medusa_heads)], + dim=0, + weights=weights, + bias=True, + ) + self.process_group = weights.process_group + self.world_size = self.process_group.size() + self.rank = self.process_group.rank() + + self.act = torch.nn.SiLU() + + self.lm_head = TensorParallelHead.load(config, prefix, weights) + + def forward(self, x): + # If we have too many tokens, we skip speculative logits + if x.shape[0] > 128: + logits = self.lm_head(x) + return logits, None + + size = x.shape[-1] + block_size = (size + self.world_size - 1) // self.world_size + start = self.rank * block_size + stop = (self.rank + 1) * block_size + + x_block = x[:, start:stop] + + # Compute all medusa heads at the same time, then reshape and move the n_medusa_heads dim to dim 1 + medusa_res = self.act(self.linear(x)).reshape( + *x_block.shape[:-1], self.n_medusa_heads, x_block.shape[-1] + ) + + # Apply all residual medusa heads + output = x[:, start:stop].unsqueeze(-2) + medusa_res + + # Gather medusa heads + world_output = [ + torch.empty_like(output) for _ in range(self.process_group.size()) + ] + torch.distributed.all_gather(world_output, output, group=self.process_group) + world_output = torch.cat(world_output, dim=-1) + + # Stack x and medusa residual x + stacked_x = torch.cat([x.unsqueeze(-2), world_output], dim=-2) + + # Compute lm head on x + medusa residual x + logits = self.lm_head(stacked_x) + + # Finally, split logits from speculative logits + logits, speculative_logits = torch.split( + logits, [1, self.n_medusa_heads], dim=-2 + ) + # Squeeze added dimension + logits = logits.squeeze(-2) + + return logits, speculative_logits diff --git a/server/text_generation_server/layers/rotary.py b/server/text_generation_server/layers/rotary.py new file mode 100644 index 00000000..503dd554 --- /dev/null +++ b/server/text_generation_server/layers/rotary.py @@ -0,0 +1,419 @@ +import os +import torch +from torch import nn + +from text_generation_server.utils.import_utils import SYSTEM + +if SYSTEM == "cuda": + from flash_attn.layers.rotary import RotaryEmbedding + import rotary_emb +elif SYSTEM == "rocm": + from vllm import pos_encoding_ops + + +def _create_inv_freq(dim, base, device): + inv_freq = 1.0 / ( + base ** (torch.arange(0, dim, 2, device=device, dtype=torch.float32) / dim) + ) + return inv_freq + + +def _get_rope_config(config): + if os.getenv("ROPE_SCALING", None) is not None: + rope_scaling = { + "type": os.environ["ROPE_SCALING"], + "factor": float(os.environ["ROPE_FACTOR"]), + } + return rope_scaling + return getattr(config, "rope_scaling", None) + + +class PositionRotaryEmbedding(nn.Module): + def __init__(self, inv_freq, scaling_factor): + super().__init__() + self.inv_freq = inv_freq + self._seq_len_cached = 0 + self._cos_cached = None + self._sin_cached = None + self._cos_k_cached = None + self._sin_k_cached = None + self.scaling_factor = scaling_factor + self.dynamic_args = None + + def forward( + self, + query: torch.Tensor, + key: torch.Tensor, + cos: torch.Tensor, + sin: torch.Tensor, + ): + # Such controlflows may add some overhead. + if SYSTEM == "cuda": + rotary_dim = cos.shape[-1] + q1 = query[..., :rotary_dim] + q2 = query[..., rotary_dim : 2 * rotary_dim] + + rotary_emb.apply_rotary(q1, q2, cos, sin, q1, q2, False) + + k1 = key[..., :rotary_dim] + k2 = key[..., rotary_dim : 2 * rotary_dim] + + rotary_emb.apply_rotary(k1, k2, cos, sin, k1, k2, False) + elif SYSTEM == "rocm": + # NOTE: On RoCm systems, we use a ROPE implementatation adapted from VLLM which launches a single kernel for both query/key, contrary to flash-attn implementation used on NVIDIA systems. + # Compiling flash-attn rotary on RoCm, it appears hipcc is unable to unroll loops, resulting in an even slower inference compared to eager: https://github.com/pytorch/pytorch/issues/113773 + + head_size = query.shape[-1] + + # Inplace operation, updating query and key. + pos_encoding_ops.rotary_embedding(query, key, head_size, cos, sin, True) + elif SYSTEM == "xpu": + ipex.llm.functional.rotary_embedding( + query, key, sin, cos, query.size(-1), True + ) + else: + raise ValueError( + "Your system seem to be not supported. Please check your install or open an issue at https://github.com/huggingface/text-generation-inference/issues with a clear reproduction." + ) + + @classmethod + def static(cls, config, dim, base, device): + inv_freq = _create_inv_freq(dim, base, device) + scaling_factor = None + rope_scaling = _get_rope_config(config) + if rope_scaling is not None: + if rope_scaling["type"] == "linear": + pass + elif rope_scaling["type"] == "dynamic": + scaling_factor = rope_scaling["factor"] + return DynamicPositionRotaryEmbedding( + dim=dim, + max_position_embeddings=config.max_position_embeddings, + base=base, + device=inv_freq.device, + scaling_factor=scaling_factor, + ) + elif rope_scaling["type"] == "yarn": + scaling_factor = rope_scaling["factor"] + return YarnPositionRotaryEmbedding( + dim=2 * inv_freq.shape[0], + max_position_embeddings=rope_scaling[ + "original_max_position_embeddings" + ], + base=10000.0, + device=inv_freq.device, + scaling_factor=scaling_factor, + extrapolation_factor=1, + attn_factor=1, + beta_fast=32, + beta_slow=1, + ) + elif rope_scaling["type"] == "su": + short_factor = torch.tensor( + rope_scaling["short_factor"], dtype=torch.float32, device=device + ) + short_inv_freq = 1.0 / ( + short_factor + * base + ** ( + torch.arange(0, dim, 2, device=device, dtype=torch.float32) + / dim + ) + ) + long_factor = torch.tensor( + rope_scaling["long_factor"], dtype=torch.float32, device=device + ) + long_inv_freq = 1.0 / ( + long_factor + * base + ** ( + torch.arange(0, dim, 2, device=device, dtype=torch.float32) + / dim + ) + ) + + original_max_position_embeddings = ( + config.original_max_position_embeddings + ) + max_position_embeddings = config.max_position_embeddings + if max_position_embeddings <= original_max_position_embeddings: + scaling_factor = 1.0 + else: + scale = max_position_embeddings / original_max_position_embeddings + scaling_factor = math.sqrt( + 1 + math.log(scale) / math.log(original_max_position_embeddings) + ) + + return SuRotaryEmbedding( + short_inv_freq=short_inv_freq, + long_inv_freq=long_inv_freq, + scaling_factor=scaling_factor, + original_max_position_embeddings=original_max_position_embeddings, + ) + else: + raise NotImplementedError( + f"rope scaling type {rope_scaling['type']} is not implemented or invalid" + ) + return cls(inv_freq, scaling_factor) + + @classmethod + def load(cls, config, prefix, weights): + # XXX: Always load this in float32 ! + dtype = weights.dtype + weights.dtype = torch.float32 + inv_freq = weights.get_tensor(f"{prefix}.inv_freq") + weights.dtype = dtype + + scaling_factor = None + rope_scaling = _get_rope_config(config) + if rope_scaling is not None: + scaling_factor = rope_scaling["factor"] + if rope_scaling["type"] == "linear": + pass + elif rope_scaling["type"] == "dynamic": + return DynamicPositionRotaryEmbedding( + dim=2 * inv_freq.shape[0], + max_position_embeddings=config.max_position_embeddings, + base=10000.0, + device=inv_freq.device, + scaling_factor=scaling_factor, + ) + elif rope_scaling["type"] == "yarn": + return YarnPositionRotaryEmbedding( + dim=2 * inv_freq.shape[0], + max_position_embeddings=rope_scaling[ + "original_max_position_embeddings" + ], + base=10000.0, + device=inv_freq.device, + scaling_factor=scaling_factor, + extrapolation_factor=1, + attn_factor=1, + beta_fast=32, + beta_slow=1, + ) + else: + raise NotImplementedError( + f"rope scaling type {rope_scaling['type']} is not implemented or invalid" + ) + return cls(inv_freq, scaling_factor) + + def _update_cos_sin_cache(self, dtype, device, seqlen): + # Reset the tables if the sequence length has changed, + # or if we're on a new device (possibly due to tracing for instance) + if ( + seqlen > self._seq_len_cached + or self._cos_cached.device != device + or self._cos_cached.dtype != dtype + ): + self._seq_len_cached = seqlen + t = torch.arange(seqlen, device=device, dtype=self.inv_freq.dtype) + if self.scaling_factor is not None: + t /= self.scaling_factor + # Don't do einsum, it converts fp32 to fp16 + # freqs = torch.einsum("i,j->ij", t, self.inv_freq) + + freqs = torch.outer(t, self.inv_freq.to(device=t.device)) + self._cos_cached = torch.cos(freqs).to(dtype) + self._sin_cached = torch.sin(freqs).to(dtype) + + def get_cos_sin(self, position_ids: torch.Tensor, max_s: int, dtype: torch.dtype): + """ + Return cos and sin for the asked position ids + """ + if SYSTEM == "rocm": + # For RoCm, we always use float cos/sin to avoid a cast. + # For NVIDIA, for some reason, the flash-attn rotary kernel requires cos/sin and query/key to be of same dtype: https://github.com/Dao-AILab/flash-attention/blob/017716451d446e464dde9aca3a3c1ed2209caaa9/csrc/rotary/rotary.cpp#L26 + # But later on goes and cast cos/sin to float anyway: https://github.com/Dao-AILab/flash-attention/blob/017716451d446e464dde9aca3a3c1ed2209caaa9/csrc/rotary/rotary_cuda.cu#L29, which looks suboptimal. + dtype = torch.float32 + + self._update_cos_sin_cache(dtype, position_ids.device, max_s) + + cos = torch.index_select(self._cos_cached, 0, position_ids) + sin = torch.index_select(self._sin_cached, 0, position_ids) + + # Note: this unsqueeze is not necessary on RoCm + VLLM ROPE implementation, but we leave it as is to avoid yet an other controlflow. + return cos.unsqueeze(1), sin.unsqueeze(1) + + +class SuRotaryEmbedding(PositionRotaryEmbedding): + def __init__( + self, + short_inv_freq, + long_inv_freq, + scaling_factor, + original_max_position_embeddings, + ): + super(PositionRotaryEmbedding, self).__init__() + self.short_inv_freq = short_inv_freq + self.long_inv_freq = long_inv_freq + self.scaling_factor = scaling_factor + self.original_max_position_embeddings = original_max_position_embeddings + self._seq_len_cached = 0 + self._cos_cached = None + self._sin_cached = None + self._cos_k_cached = None + self._sin_k_cached = None + self.dynamic_args = None + + def _update_cos_sin_cache(self, dtype, device, seqlen): + # Reset the tables if the sequence length has changed, + # or if we're on a new device (possibly due to tracing for instance) + if ( + seqlen > self._seq_len_cached + or self._cos_cached.device != device + or self._cos_cached.dtype != dtype + ): + self._seq_len_cached = seqlen + if seqlen > self.original_max_position_embeddings: + inv_freq = self.long_inv_freq + else: + inv_freq = self.short_inv_freq + t = torch.arange(seqlen, device=device, dtype=inv_freq.dtype) + if self.scaling_factor is not None: + t /= self.scaling_factor + # Don't do einsum, it converts fp32 to fp16 + # freqs = torch.einsum("i,j->ij", t, self.inv_freq) + + freqs = torch.outer(t, inv_freq.to(device=t.device)) + self._cos_cached = torch.cos(freqs).to(dtype) + self._sin_cached = torch.sin(freqs).to(dtype) + + +class DynamicPositionRotaryEmbedding(PositionRotaryEmbedding): + def __init__(self, dim, max_position_embeddings, base, device, scaling_factor): + inv_freq = _create_inv_freq(dim, base, device) + super().__init__(inv_freq, scaling_factor) + self.dim = dim + self.max_position_embeddings = max_position_embeddings + self.base = base + + def _update_cos_sin_cache(self, dtype, device, seqlen): + # Reset the tables if the sequence length has changed, + # or if we're on a new device (possibly due to tracing for instance) + if ( + seqlen > self._seq_len_cached + or self._cos_cached.device != device + or self._cos_cached.dtype != dtype + ): + if seqlen > self.max_position_embeddings: + newbase = self.base * ( + (self.scaling_factor * seqlen / self.max_position_embeddings) + - (self.scaling_factor - 1) + ) ** (self.dim / (self.dim - 2)) + self.inv_freq = _create_inv_freq( + self.dim, newbase, self.inv_freq.device + ) + self._seq_len_cached = seqlen + t = torch.arange(seqlen, device=device, dtype=self.inv_freq.dtype) + # Don't do einsum, it converts fp32 to fp16 + # freqs = torch.einsum("i,j->ij", t, self.inv_freq) + + freqs = torch.outer(t, self.inv_freq.to(device=t.device)) + self._cos_cached = torch.cos(freqs).to(dtype) + self._sin_cached = torch.sin(freqs).to(dtype) + + +# Inverse dim formula to find dim based on number of rotations +import math + + +def find_correction_dim(num_rotations, dim, base=10000, max_position_embeddings=2048): + return (dim * math.log(max_position_embeddings / (num_rotations * 2 * math.pi))) / ( + 2 * math.log(base) + ) + + +# Find dim range bounds based on rotations +def find_correction_range( + low_rot, high_rot, dim, base=10000, max_position_embeddings=2048 +): + low = math.floor(find_correction_dim(low_rot, dim, base, max_position_embeddings)) + high = math.ceil(find_correction_dim(high_rot, dim, base, max_position_embeddings)) + return max(low, 0), min(high, dim - 1) # Clamp values just in case + + +def linear_ramp_mask(min, max, dim): + if min == max: + max += 0.001 # Prevent singularity + + linear_func = (torch.arange(dim, dtype=torch.float32) - min) / (max - min) + ramp_func = torch.clamp(linear_func, 0, 1) + return ramp_func + + +def get_mscale(scale=1): + if scale <= 1: + return 1.0 + return 0.1 * math.log(scale) + 1.0 + + +class YarnPositionRotaryEmbedding(PositionRotaryEmbedding): + def __init__( + self, + dim, + max_position_embeddings, + base, + device, + scaling_factor, + *, + extrapolation_factor, + attn_factor, + beta_fast, + beta_slow, + ): + inv_freq = _create_inv_freq(dim, base, device) + super().__init__(inv_freq, scaling_factor) + self.dim = dim + self.max_position_embeddings = max_position_embeddings + self.base = base + self.extrapolation_factor = extrapolation_factor + self.attn_factor = attn_factor + self.beta_fast = beta_fast + self.beta_slow = beta_slow + self.mscale = float( + get_mscale(self.scaling_factor) * self.attn_factor + ) # Get n-d magnitude scaling corrected for interpolation + + def _update_cos_sin_cache(self, dtype, device, seqlen): + # Reset the tables if the sequence length has changed, + # or if we're on a new device (possibly due to tracing for instance) + if ( + seqlen > self._seq_len_cached + or self._cos_cached.device != device + or self._cos_cached.dtype != dtype + ): + if seqlen > self.max_position_embeddings: + inv_freq_extrapolation = _create_inv_freq( + self.dim, self.base, self.inv_freq.device + ) + freqs = 1.0 / inv_freq_extrapolation + inv_freq_interpolation = 1.0 / (self.scaling_factor * freqs) + low, high = find_correction_range( + self.beta_fast, + self.beta_slow, + self.dim, + self.base, + self.max_position_embeddings, + ) + inv_freq_mask = ( + 1 - linear_ramp_mask(low, high, self.dim // 2).float().to(device) + ) * self.extrapolation_factor # Get n-d rotational scaling corrected for extrapolation + inv_freq = ( + inv_freq_interpolation * (1 - inv_freq_mask) + + inv_freq_extrapolation * inv_freq_mask + ) + + self.inv_freq = inv_freq + self.mscale = float( + get_mscale(self.scaling_factor) * self.attn_factor + ) # Get n-d magnitude scaling corrected for interpolation + + self._seq_len_cached = seqlen + t = torch.arange(seqlen, device=device, dtype=self.inv_freq.dtype) + # Don't do einsum, it converts fp32 to fp16 + # freqs = torch.einsum("i,j->ij", t, self.inv_freq) + + freqs = torch.outer(t, self.inv_freq.to(device=t.device)) + self._cos_cached = (torch.cos(freqs) * self.mscale).to(dtype) + self._sin_cached = (torch.sin(freqs) * self.mscale).to(dtype) diff --git a/server/text_generation_server/layers/speculative.py b/server/text_generation_server/layers/speculative.py new file mode 100644 index 00000000..663f8c2e --- /dev/null +++ b/server/text_generation_server/layers/speculative.py @@ -0,0 +1,35 @@ +import torch +from typing import Tuple, Optional +from text_generation_server.layers.medusa import MedusaHeadV1, MedusaHeadV2 +from text_generation_server.layers.tensor_parallel import TensorParallelHead + + +class SpeculativeHead(torch.nn.Module): + def __init__(self, lm_head, medusa): + super().__init__() + self.head = lm_head + self.medusa = medusa + + @staticmethod + def load(config, prefix: str, weights): + use_medusa = config.use_medusa + if use_medusa: + lm_head = None + try: + medusa = MedusaHeadV1.load(config, prefix, weights) + except: + medusa = MedusaHeadV2(config, prefix, weights) + else: + lm_head = TensorParallelHead.load(config, prefix, weights) + medusa = None + return SpeculativeHead(lm_head, medusa) + + def forward( + self, input: torch.Tensor + ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: + if self.medusa is not None: + return self.medusa(input) + + assert self.head is not None + logits = self.head(input) + return logits, None diff --git a/server/text_generation_server/layers/tensor_parallel.py b/server/text_generation_server/layers/tensor_parallel.py new file mode 100644 index 00000000..34b9c51e --- /dev/null +++ b/server/text_generation_server/layers/tensor_parallel.py @@ -0,0 +1,188 @@ +import torch +from torch.nn import functional as F +from typing import List +from text_generation_server.layers.linear import get_linear, FastLinear + + +class SuperLayer(torch.nn.Module): + def __init__(self, linear): + super().__init__() + self.linear = linear + + def forward(self, x): + return self.linear.forward(x) + + +class TensorParallelHead(SuperLayer): + def __init__(self, linear, process_group, should_gather: bool): + super().__init__(linear) + self.process_group = process_group + self.should_gather = should_gather + + @staticmethod + def load(config, prefix: str, weights): + if weights.process_group.size() > 1: + try: + weight = weights.get_sharded(f"{prefix}.weight", dim=0) + should_gather = True + except AssertionError: + # If the vocab size is not divisible by number of shards + # just load the entire thing. + weight = weights.get_tensor(f"{prefix}.weight") + should_gather = False + else: + weight = weights.get_tensor(f"{prefix}.weight") + should_gather = False + + # GPTQ,AWQ,EETQ don't quantize heads (nor embeddings) + if config.quantize in ["gptq", "awq", "eetq"]: + quantize = None + else: + quantize = config.quantize + return TensorParallelHead( + get_linear(weight, bias=None, quantize=quantize), + process_group=weights.process_group, + should_gather=should_gather, + ) + + def forward(self, input: torch.Tensor) -> torch.Tensor: + if not self.should_gather: + return super().forward(input) + + world_size = self.process_group.size() + if len(input.shape) == 2 and isinstance(self.linear, FastLinear): + out_dim = self.linear.weight.shape[0] + + if input.shape[0] == 1: + world_out = input.new_empty(1, out_dim * world_size) + local_out = input.new_empty(1, out_dim) + gather_input = local_out + else: + world_out = input.new_empty(out_dim * world_size, input.shape[0]) + gather_input = input.new_empty(out_dim, input.shape[0]) + local_out = gather_input.T + + torch.mm(input, self.linear.weight.T, out=local_out) + + torch.distributed.all_gather_into_tensor( + world_out, gather_input, group=self.process_group + ) + + if input.shape[0] == 1: + return world_out + return world_out.T + + output = super().forward(input) + world_output = [ + torch.empty_like(output) for _ in range(self.process_group.size()) + ] + torch.distributed.all_gather(world_output, output, group=self.process_group) + world_output = torch.cat(world_output, dim=-1) + return world_output + + +class TensorParallelColumnLinear(SuperLayer): + @classmethod + def load_gate_up(cls, config, prefix: str, weights, bias: bool): + """Specific method when the QKV was joined after the fact""" + weight = weights.get_weights_col_packed_gate_up( + prefix, quantize=config.quantize + ) + if bias: + raise NotImplementedError("packed_gate_up only implemented without bias") + else: + bias = None + linear = get_linear(weight, bias, config.quantize) + return cls(linear) + + @classmethod + def load_qkv(cls, config, prefix: str, weights, bias: bool): + """Specific method when the QKV was joined after the fact""" + weight = weights.get_weights_col_packed_qkv(prefix, quantize=config.quantize) + if bias: + raise NotImplementedError("packed_qkv only implemented for baichuan") + else: + bias = None + linear = get_linear(weight, bias, config.quantize) + return cls(linear) + + @classmethod + def load(cls, config, prefix: str, weights, bias: bool): + return cls.load_multi(config, [prefix], weights, bias, dim=0) + + @classmethod + def load_multi(cls, config, prefixes: List[str], weights, bias: bool, dim: int): + weight = weights.get_multi_weights_col( + prefixes, quantize=config.quantize, dim=dim + ) + + if bias: + b = [weights.get_sharded(f"{p}.bias", dim=0) for p in prefixes] + bias = torch.cat(b, dim=dim) + else: + bias = None + linear = get_linear(weight, bias, config.quantize) + return cls(linear) + + +class TensorParallelRowLinear(SuperLayer): + def __init__(self, linear, process_group): + super().__init__(linear) + self.process_group = process_group + + @classmethod + def load(cls, config, prefix: str, weights, bias: bool): + weight = weights.get_multi_weights_row(prefix, quantize=config.quantize) + + if bias and weights.process_group.rank() == 0: + # Rank is only on the first rank process + bias = weights.get_tensor(f"{prefix}.bias") + else: + bias = None + return cls( + get_linear(weight, bias, config.quantize), + process_group=weights.process_group, + ) + + def forward(self, input: torch.Tensor, reduce: bool = True) -> torch.Tensor: + out = super().forward(input) + if self.process_group.size() > 1 and reduce: + torch.distributed.all_reduce(out, group=self.process_group) + return out + + +class TensorParallelEmbedding(torch.nn.Module): + def __init__(self, prefix: str, weights, reduce=True): + super().__init__() + weight = weights.get_partial_sharded(f"{prefix}.weight", dim=0) + num_embeddings = weights.get_shape(f"{prefix}.weight")[0] + + process_group = weights.process_group + + world_size = process_group.size() + rank = process_group.rank() + + block_size = (num_embeddings + world_size - 1) // world_size + self.min_id = rank * block_size + self.max_id = min(num_embeddings, (rank + 1) * block_size) + self.null_idx = weight.shape[ + 0 + ] # Usually block_size, might be less in non even vocab_size. + self.process_group = weights.process_group + self.reduce = reduce + + """Additional 0 entry used for masking""" + self.weight = torch.nn.Parameter(F.pad(weight, (0, 0, 0, 1))) + + def forward(self, input: torch.Tensor) -> torch.Tensor: + # default all out of bounds values to `self.null_idx` that will then be mapped to 0 + # translate for [0, self.max_id - self.min_id[ + input = torch.where( + (self.min_id > input) | (input >= self.max_id), + self.null_idx, + input - self.min_id, + ) + out = torch.nn.functional.embedding(input, self.weight) + if self.reduce and self.process_group.size() > 1: + torch.distributed.all_reduce(out, group=self.process_group) + return out diff --git a/server/text_generation_server/models/cache_manager.py b/server/text_generation_server/models/cache_manager.py index 4c65e2dd..c7705fe8 100644 --- a/server/text_generation_server/models/cache_manager.py +++ b/server/text_generation_server/models/cache_manager.py @@ -2,7 +2,7 @@ import math import torch from typing import Optional, List, Tuple -from text_generation_server.utils.import_utils import IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import SYSTEM BLOCK_SIZE: int = 16 # Will be set in warmup @@ -25,7 +25,7 @@ class CacheManager: self.repeat_slots = repeat_slots element_size = torch.tensor([], dtype=dtype).element_size() - if IS_XPU_SYSTEM: + if SYSTEM == "xpu": x = 1 else: x = self.block_size // element_size diff --git a/server/text_generation_server/models/custom_modeling/bloom_modeling.py b/server/text_generation_server/models/custom_modeling/bloom_modeling.py index c8f02bca..0d8a1b59 100644 --- a/server/text_generation_server/models/custom_modeling/bloom_modeling.py +++ b/server/text_generation_server/models/custom_modeling/bloom_modeling.py @@ -32,7 +32,7 @@ from transformers.modeling_outputs import ( ) from transformers import BloomConfig, PreTrainedModel -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelEmbedding, TensorParallelRowLinear, diff --git a/server/text_generation_server/models/custom_modeling/clip.py b/server/text_generation_server/models/custom_modeling/clip.py index c4917733..56618bf1 100644 --- a/server/text_generation_server/models/custom_modeling/clip.py +++ b/server/text_generation_server/models/custom_modeling/clip.py @@ -15,7 +15,7 @@ from transformers.modeling_outputs import ( ) from transformers import CLIPConfig, CLIPTextConfig, CLIPVisionConfig -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelEmbedding, TensorParallelColumnLinear, TensorParallelRowLinear, diff --git a/server/text_generation_server/models/custom_modeling/flash_cohere_modeling.py b/server/text_generation_server/models/custom_modeling/flash_cohere_modeling.py index 56d9a966..8c423eaf 100644 --- a/server/text_generation_server/models/custom_modeling/flash_cohere_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_cohere_modeling.py @@ -26,18 +26,22 @@ from transformers.activations import ACT2FN from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.import_utils import IS_ROCM_SYSTEM, IS_CUDA_SYSTEM -from text_generation_server.utils.layers import ( +from text_generation_server.utils.import_utils import SYSTEM +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, +) +from text_generation_server.layers.layernorm import ( FastLayerNorm, ) +from text_generation_server.layers.rotary import ( + PositionRotaryEmbedding, +) -if IS_CUDA_SYSTEM: +if SYSTEM == "cuda": import dropout_layer_norm else: dropout_layer_norm = None @@ -52,7 +56,7 @@ class CohereRotary(PositionRotaryEmbedding): sin: torch.Tensor, ): # Such controlflows may add some overhead. - if IS_CUDA_SYSTEM: + if SYSTEM == "cuda": import rotary_emb q1 = query[..., ::2] @@ -64,7 +68,7 @@ class CohereRotary(PositionRotaryEmbedding): k2 = key[..., 1::2] rotary_emb.apply_rotary(k1, k2, cos, sin, k1, k2, False) - elif IS_ROCM_SYSTEM: + elif SYSTEM == "rocm": from vllm import pos_encoding_ops # NOTE: On RoCm systems, we use a ROPE implementatation adapted from VLLM which launches a single kernel for both query/key, contrary to flash-attn implementation used on NVIDIA systems. @@ -90,7 +94,7 @@ class CohereLayerNorm(nn.Module): self.eps = eps def forward(self, hidden_states): - if hidden_states.shape[-1] > 8192 or IS_ROCM_SYSTEM: + if hidden_states.shape[-1] > 8192 or SYSTEM == "rocm": hidden_states = hidden_states.reshape( -1, self.weight.shape[0], self.weight.shape[1] ) diff --git a/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py b/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py index d0978bef..9d652b67 100644 --- a/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_dbrx_modeling.py @@ -21,21 +21,26 @@ from transformers.activations import ACT2FN from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple, Any from loguru import logger -from text_generation_server.utils.import_utils import IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import SYSTEM -if not IS_XPU_SYSTEM: +if SYSTEM != "xpu": from vllm.model_executor.layers.fused_moe import fused_moe + from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( FastLinear, - FastLayerNorm, TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, ) +from text_generation_server.layers.rotary import ( + PositionRotaryEmbedding, +) +from text_generation_server.layers.layernorm import ( + FastLayerNorm, +) from text_generation_server.utils.log import log_once @@ -216,7 +221,7 @@ def _load_gqa(config, prefix: str, weights): bits, groupsize, desc_act, quant_method = weights._get_gptq_params() - from text_generation_server.utils.layers import HAS_EXLLAMA + from text_generation_server.layers import HAS_EXLLAMA use_exllama = ( bits == 4 and HAS_EXLLAMA and config.quantize == "gptq" and not desc_act @@ -236,7 +241,7 @@ def _load_gqa(config, prefix: str, weights): log_once( logger.info, "Converting AWQ model to Exllama/GPTQ packing format." ) - from text_generation_server.utils.awq.conversion_utils import ( + from text_generation_server.layers.awq.conveersion_utils import ( fast_awq_to_gptq, ) diff --git a/server/text_generation_server/models/custom_modeling/flash_gemma_modeling.py b/server/text_generation_server/models/custom_modeling/flash_gemma_modeling.py index bd7596db..43b90bdd 100644 --- a/server/text_generation_server/models/custom_modeling/flash_gemma_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_gemma_modeling.py @@ -27,13 +27,15 @@ from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, +) +from text_generation_server.layers.rotary import PositionRotaryEmbedding +from text_generation_server.layers.layernorm import ( FastRMSNorm, ) diff --git a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py index 6fa85d4e..a7969494 100644 --- a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py @@ -27,13 +27,15 @@ from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, +) +from text_generation_server.layers.rotary import PositionRotaryEmbedding +from text_generation_server.layers.layernorm import ( FastRMSNorm, ) diff --git a/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py b/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py index c2445cda..3e13c26d 100644 --- a/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_mistral_modeling.py @@ -27,13 +27,15 @@ from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, +) +from text_generation_server.layers.rotary import PositionRotaryEmbedding +from text_generation_server.layers.layernorm import ( FastRMSNorm, ) diff --git a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py index 3f6c8e03..be2d6c45 100644 --- a/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_mixtral_modeling.py @@ -24,9 +24,9 @@ import torch.distributed import numpy as np from torch import nn -from text_generation_server.utils.import_utils import IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import SYSTEM -if not IS_XPU_SYSTEM: +if SYSTEM != "xpu": from vllm.model_executor.layers.fused_moe import fused_moe from transformers.activations import ACT2FN from transformers.configuration_utils import PretrainedConfig @@ -34,16 +34,20 @@ from typing import Optional, List, Tuple from loguru import logger from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( FastLinear, - FastRMSNorm, TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, ) +from text_generation_server.layers.layernorm import ( + FastRMSNorm, +) +from text_generation_server.layers.rotary import ( + PositionRotaryEmbedding, +) class MixtralConfig(PretrainedConfig): diff --git a/server/text_generation_server/models/custom_modeling/flash_neox_modeling.py b/server/text_generation_server/models/custom_modeling/flash_neox_modeling.py index ee062d3d..d45cab2e 100644 --- a/server/text_generation_server/models/custom_modeling/flash_neox_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_neox_modeling.py @@ -29,15 +29,19 @@ from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn from text_generation_server.utils.flash_attn import attention -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, SpeculativeHead, - FastLayerNorm, - PositionRotaryEmbedding, get_linear, ) +from text_generation_server.layers.layernorm import ( + FastLayerNorm, +) +from text_generation_server.layers.rotary import ( + PositionRotaryEmbedding, +) def load_row(config, prefix: str, weights, bias: bool): diff --git a/server/text_generation_server/models/custom_modeling/flash_phi_modeling.py b/server/text_generation_server/models/custom_modeling/flash_phi_modeling.py index cfe447a7..f2efb538 100644 --- a/server/text_generation_server/models/custom_modeling/flash_phi_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_phi_modeling.py @@ -7,15 +7,19 @@ from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, +) +from text_generation_server.layers.layernorm import ( FastLayerNorm, ) +from text_generation_server.layers.rotary import ( + PositionRotaryEmbedding, +) class PhiConfig(PretrainedConfig): diff --git a/server/text_generation_server/models/custom_modeling/flash_qwen2_modeling.py b/server/text_generation_server/models/custom_modeling/flash_qwen2_modeling.py index 94023b33..3a6d2db5 100644 --- a/server/text_generation_server/models/custom_modeling/flash_qwen2_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_qwen2_modeling.py @@ -6,13 +6,15 @@ from transformers.activations import ACT2FN from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, +) +from text_generation_server.layers.rotary import PositionRotaryEmbedding +from text_generation_server.layers.layernorm import ( FastRMSNorm, ) diff --git a/server/text_generation_server/models/custom_modeling/flash_rw_modeling.py b/server/text_generation_server/models/custom_modeling/flash_rw_modeling.py index a9127d1f..52ea3ae1 100644 --- a/server/text_generation_server/models/custom_modeling/flash_rw_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_rw_modeling.py @@ -8,15 +8,19 @@ from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn from text_generation_server.utils.flash_attn import attention -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, SpeculativeHead, - FastLayerNorm, - PositionRotaryEmbedding, get_linear, ) +from text_generation_server.layers.layernorm import ( + FastLayerNorm, +) +from text_generation_server.layers.rotary import ( + PositionRotaryEmbedding, +) def load_row(config, prefix: str, weights, bias: bool): diff --git a/server/text_generation_server/models/custom_modeling/flash_santacoder_modeling.py b/server/text_generation_server/models/custom_modeling/flash_santacoder_modeling.py index bbb603a7..d2f6d9af 100644 --- a/server/text_generation_server/models/custom_modeling/flash_santacoder_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_santacoder_modeling.py @@ -6,14 +6,16 @@ from transformers.activations import ACT2FN from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, SpeculativeHead, TensorParallelEmbedding, - FastLayerNorm, get_linear, ) +from text_generation_server.layers.layernorm import ( + FastLayerNorm, +) def load_multi_mqa( @@ -80,13 +82,13 @@ def _load_multi_mqa_gptq( g_idx = g_idx.to(device=weights.device) elif quant_method == "awq": g_idx = None - from text_generation_server.utils.awq.conversion_utils import ( + from text_generation_server.layers.awq.conversion_utils import ( fast_awq_to_gptq, ) qweight, qzeros = fast_awq_to_gptq(qweight, qzeros) - from text_generation_server.utils.layers import HAS_EXLLAMA + from text_generation_server.layers.gptq import HAS_EXLLAMA use_exllama = HAS_EXLLAMA weight = (qweight, qzeros, scales, g_idx, bits, groupsize, use_exllama) diff --git a/server/text_generation_server/models/custom_modeling/flash_starcoder2_modeling.py b/server/text_generation_server/models/custom_modeling/flash_starcoder2_modeling.py index ed77af78..3e2ce4f9 100644 --- a/server/text_generation_server/models/custom_modeling/flash_starcoder2_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_starcoder2_modeling.py @@ -27,15 +27,19 @@ from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, - PositionRotaryEmbedding, SpeculativeHead, get_linear, - FastRMSNorm, +) +from text_generation_server.layers.layernorm import ( FastLayerNorm, + FastRMSNorm, +) +from text_generation_server.layers.rotary import ( + PositionRotaryEmbedding, ) diff --git a/server/text_generation_server/models/custom_modeling/idefics2.py b/server/text_generation_server/models/custom_modeling/idefics2.py index cb2ee7db..935f049b 100644 --- a/server/text_generation_server/models/custom_modeling/idefics2.py +++ b/server/text_generation_server/models/custom_modeling/idefics2.py @@ -29,7 +29,7 @@ from text_generation_server.models.custom_modeling.vlm import ( ) from transformers.modeling_attn_mask_utils import _prepare_4d_attention_mask -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelEmbedding, TensorParallelRowLinear, diff --git a/server/text_generation_server/models/custom_modeling/idefics_modeling.py b/server/text_generation_server/models/custom_modeling/idefics_modeling.py index ee4cdb08..ec3f900b 100644 --- a/server/text_generation_server/models/custom_modeling/idefics_modeling.py +++ b/server/text_generation_server/models/custom_modeling/idefics_modeling.py @@ -47,20 +47,22 @@ from text_generation_server.models.custom_modeling.idefics_vision import ( from text_generation_server.models.custom_modeling.idefics_perceiver import ( IdeficsPerceiverResampler, ) -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelEmbedding, TensorParallelRowLinear, SpeculativeHead, - PositionRotaryEmbedding, FastLinear, ) -from text_generation_server.utils.import_utils import IS_CUDA_SYSTEM, IS_ROCM_SYSTEM +from text_generation_server.layers.rotary import PositionRotaryEmbedding +from text_generation_server.utils.import_utils import SYSTEM -if IS_CUDA_SYSTEM: +if SYSTEM == "cuda": import dropout_layer_norm -elif IS_ROCM_SYSTEM: +elif SYSTEM == "rocm": from vllm import layernorm_ops +else: + raise RuntimeError(f"Unsupported system {SYSTEM}") @dataclass @@ -373,7 +375,7 @@ class IdeficsRMSNorm(nn.Module): hidden_states = hidden_states.to(self.weight.dtype) return self.weight * hidden_states - elif IS_CUDA_SYSTEM: + elif SYSTEM == "cuda": # faster post attention rms norm unwrap = False if len(hidden_states.shape) > 2: @@ -405,7 +407,7 @@ class IdeficsRMSNorm(nn.Module): normed_hidden_states = normed_hidden_states.view(*shape) return normed_hidden_states - elif IS_ROCM_SYSTEM: + elif SYSTEM == "rocm": # We use VLLM RMSNorm kernel that can be compiled for RoCm, instead of Flash Attention ones that can not. if residual is not None: hidden_states += residual diff --git a/server/text_generation_server/models/custom_modeling/idefics_perceiver.py b/server/text_generation_server/models/custom_modeling/idefics_perceiver.py index 477d4d70..af44490b 100644 --- a/server/text_generation_server/models/custom_modeling/idefics_perceiver.py +++ b/server/text_generation_server/models/custom_modeling/idefics_perceiver.py @@ -41,7 +41,7 @@ from typing import Optional, Tuple import torch import torch.nn as nn -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelRowLinear, ) diff --git a/server/text_generation_server/models/custom_modeling/idefics_vision.py b/server/text_generation_server/models/custom_modeling/idefics_vision.py index c521dd0a..30c5997f 100644 --- a/server/text_generation_server/models/custom_modeling/idefics_vision.py +++ b/server/text_generation_server/models/custom_modeling/idefics_vision.py @@ -28,7 +28,7 @@ from transformers.utils import ( ModelOutput, logging, ) -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelRowLinear, TensorParallelEmbedding, diff --git a/server/text_generation_server/models/custom_modeling/llava_next.py b/server/text_generation_server/models/custom_modeling/llava_next.py index 0d93791f..a049f756 100644 --- a/server/text_generation_server/models/custom_modeling/llava_next.py +++ b/server/text_generation_server/models/custom_modeling/llava_next.py @@ -27,7 +27,7 @@ from text_generation_server.models.custom_modeling.vlm import ( load_text_model, load_vision_model, ) -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelRowLinear, ) diff --git a/server/text_generation_server/models/custom_modeling/mamba_modeling.py b/server/text_generation_server/models/custom_modeling/mamba_modeling.py index c58a617f..293051c2 100644 --- a/server/text_generation_server/models/custom_modeling/mamba_modeling.py +++ b/server/text_generation_server/models/custom_modeling/mamba_modeling.py @@ -8,12 +8,12 @@ from typing import Optional, Tuple, Any from transformers.configuration_utils import PretrainedConfig import torch.nn.functional as F -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( SpeculativeHead, TensorParallelEmbedding, - FastRMSNorm, FastLinear, ) +from text_generation_server.layers.layernorm import FastRMSNorm from einops import rearrange from causal_conv1d import causal_conv1d_fn, causal_conv1d_update diff --git a/server/text_generation_server/models/custom_modeling/mpt_modeling.py b/server/text_generation_server/models/custom_modeling/mpt_modeling.py index 9b0f8b92..f7981bf5 100644 --- a/server/text_generation_server/models/custom_modeling/mpt_modeling.py +++ b/server/text_generation_server/models/custom_modeling/mpt_modeling.py @@ -17,7 +17,7 @@ from transformers.modeling_outputs import ( ) from einops import rearrange from packaging import version -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelEmbedding, TensorParallelColumnLinear, TensorParallelRowLinear, diff --git a/server/text_generation_server/models/custom_modeling/neox_modeling.py b/server/text_generation_server/models/custom_modeling/neox_modeling.py index f060ec0e..fcad32fa 100644 --- a/server/text_generation_server/models/custom_modeling/neox_modeling.py +++ b/server/text_generation_server/models/custom_modeling/neox_modeling.py @@ -40,7 +40,7 @@ from transformers.modeling_outputs import ( from transformers.modeling_utils import PreTrainedModel from transformers import GPTNeoXConfig from loguru import logger -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelEmbedding, TensorParallelRowLinear, diff --git a/server/text_generation_server/models/custom_modeling/opt_modeling.py b/server/text_generation_server/models/custom_modeling/opt_modeling.py index 7a5cf917..83d62dea 100644 --- a/server/text_generation_server/models/custom_modeling/opt_modeling.py +++ b/server/text_generation_server/models/custom_modeling/opt_modeling.py @@ -27,7 +27,7 @@ from transformers.modeling_outputs import ( ) from transformers.modeling_utils import PreTrainedModel from transformers import OPTConfig -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( FastLinear, TensorParallelColumnLinear, TensorParallelEmbedding, diff --git a/server/text_generation_server/models/custom_modeling/phi_modeling.py b/server/text_generation_server/models/custom_modeling/phi_modeling.py index 1571f9fd..04b470eb 100644 --- a/server/text_generation_server/models/custom_modeling/phi_modeling.py +++ b/server/text_generation_server/models/custom_modeling/phi_modeling.py @@ -9,7 +9,7 @@ from typing import Optional, List, Tuple, Any from transformers.configuration_utils import PretrainedConfig from transformers.modeling_outputs import CausalLMOutputWithPast -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelRowLinear, TensorParallelColumnLinear, TensorParallelEmbedding, diff --git a/server/text_generation_server/models/custom_modeling/t5_modeling.py b/server/text_generation_server/models/custom_modeling/t5_modeling.py index 2773fb15..0b899fba 100644 --- a/server/text_generation_server/models/custom_modeling/t5_modeling.py +++ b/server/text_generation_server/models/custom_modeling/t5_modeling.py @@ -38,7 +38,7 @@ from transformers.utils import ( is_torch_fx_proxy, ) from transformers import T5Config -from text_generation_server.utils.layers import ( +from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelEmbedding, TensorParallelRowLinear, diff --git a/server/text_generation_server/models/flash_causal_lm.py b/server/text_generation_server/models/flash_causal_lm.py index a6d0204f..f567bea9 100644 --- a/server/text_generation_server/models/flash_causal_lm.py +++ b/server/text_generation_server/models/flash_causal_lm.py @@ -12,7 +12,6 @@ from dataclasses import dataclass from opentelemetry import trace from transformers import PreTrainedTokenizerBase from typing import Optional, Tuple, List, Type, Dict - from text_generation_server.models import Model from text_generation_server.utils.tokens import batch_top_tokens from text_generation_server.utils.speculate import get_speculate @@ -32,13 +31,14 @@ from text_generation_server.models.globals import MEM_POOL, CUDA_GRAPHS from text_generation_server.utils import StoppingCriteria, HeterogeneousNextTokenChooser from text_generation_server.utils.dist import MEMORY_FRACTION -tracer = trace.get_tracer(__name__) from text_generation_server.utils.import_utils import ( - IS_CUDA_SYSTEM, - IS_ROCM_SYSTEM, - IS_XPU_SYSTEM, + empty_cache, + synchronize, + get_free_memory, ) +tracer = trace.get_tracer(__name__) + @dataclass class FlashCausalLMBatch(Batch): @@ -757,10 +757,8 @@ class FlashCausalLM(Model): def warmup(self, batch: FlashCausalLMBatch): # The warmup batch is the biggest batch we could ever receive - if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: - torch.cuda.empty_cache() - elif IS_XPU_SYSTEM: - torch.xpu.empty_cache() + empty_cache() + try: cache_manager = set_cache_manager( batch.blocks, @@ -780,10 +778,7 @@ class FlashCausalLM(Model): f"You need to decrease `--max-batch-prefill-tokens`" ) from e - if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: - torch.cuda.synchronize(self.device) - elif IS_XPU_SYSTEM: - torch.xpu.synchronize(self.device) + synchronize(self.device) # Inspired by the original implementation in [vllm](https://github.com/vllm-project/vllm) # Calculate the number of blocks that can be allocated with the free memory @@ -791,20 +786,7 @@ class FlashCausalLM(Model): cache_block_size = BLOCK_SIZE * self.num_kv_heads * self.head_size total_cache_size = self.num_layers * cache_block_size * 2 * dtype_size - if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: - total_free_memory, _ = torch.cuda.mem_get_info(self.device) - total_gpu_memory = torch.cuda.get_device_properties( - self.device - ).total_memory - - free_memory = max( - 0, total_free_memory - (1 - MEMORY_FRACTION) * total_gpu_memory - ) - elif IS_XPU_SYSTEM: - total_gpu_memory = torch.xpu.get_device_properties(self.device).total_memory - free_memory = int(total_gpu_memory * 0.5) - else: - raise NotImplementedError("FlashModel is only available on GPU") + free_memory = get_free_memory(self.device, MEMORY_FRACTION) num_blocks = ( # Leave 5% for some wiggle room diff --git a/server/text_generation_server/models/flash_llama.py b/server/text_generation_server/models/flash_llama.py index 609a188d..8ea70713 100644 --- a/server/text_generation_server/models/flash_llama.py +++ b/server/text_generation_server/models/flash_llama.py @@ -18,7 +18,7 @@ from text_generation_server.utils import ( tracer = trace.get_tracer(__name__) -from text_generation_server.utils.import_utils import IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import SYSTEM class FlashLlama(FlashCausalLM): @@ -35,7 +35,7 @@ class FlashLlama(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype - elif IS_XPU_SYSTEM: + elif SYSTEM == "xpu": device = torch.device(f"xpu:{rank}") dtype = torch.float16 if dtype is None else dtype else: diff --git a/server/text_generation_server/models/flash_mistral.py b/server/text_generation_server/models/flash_mistral.py index 85e93543..48304ad8 100644 --- a/server/text_generation_server/models/flash_mistral.py +++ b/server/text_generation_server/models/flash_mistral.py @@ -33,7 +33,7 @@ tracer = trace.get_tracer(__name__) # Will be set in init SLIDING_WINDOW: Optional[int] = None SLIDING_WINDOW_BLOCKS: Optional[int] = None -from text_generation_server.utils.import_utils import IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import SYSTEM MEM_POOL = torch.cuda.graph_pool_handle() if torch.cuda.is_available() else None @@ -322,7 +322,7 @@ class BaseFlashMistral(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype - elif IS_XPU_SYSTEM: + elif SYSTEM == "xpu": device = torch.device(f"xpu:{rank}") dtype = torch.float16 if dtype is None else dtype else: diff --git a/server/text_generation_server/models/flash_neox.py b/server/text_generation_server/models/flash_neox.py index f82e27db..1119bdae 100644 --- a/server/text_generation_server/models/flash_neox.py +++ b/server/text_generation_server/models/flash_neox.py @@ -14,7 +14,7 @@ from text_generation_server.utils import ( weight_files, Weights, ) -from text_generation_server.utils.import_utils import IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import SYSTEM tracer = trace.get_tracer(__name__) @@ -33,7 +33,7 @@ class FlashNeoXSharded(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype - elif IS_XPU_SYSTEM: + elif SYSTEM == "xpu": device = torch.device(f"xpu:{rank}") dtype = torch.float16 if dtype is None else dtype else: diff --git a/server/text_generation_server/models/flash_rw.py b/server/text_generation_server/models/flash_rw.py index ccf38a0c..33298e1a 100644 --- a/server/text_generation_server/models/flash_rw.py +++ b/server/text_generation_server/models/flash_rw.py @@ -15,7 +15,7 @@ from text_generation_server.utils import ( weight_files, Weights, ) -from text_generation_server.utils.import_utils import IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import SYSTEM tracer = trace.get_tracer(__name__) @@ -34,7 +34,7 @@ class FlashRWSharded(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype - elif IS_XPU_SYSTEM: + elif SYSTEM == "xpu": device = torch.device(f"xpu:{rank}") dtype = torch.float16 if dtype is None else dtype else: diff --git a/server/text_generation_server/models/flash_santacoder.py b/server/text_generation_server/models/flash_santacoder.py index e66f1bf8..66698a3a 100644 --- a/server/text_generation_server/models/flash_santacoder.py +++ b/server/text_generation_server/models/flash_santacoder.py @@ -18,7 +18,7 @@ from text_generation_server.utils import ( Weights, ) -from text_generation_server.utils.import_utils import IS_XPU_SYSTEM +from text_generation_server.utils.import_utils import SYSTEM tracer = trace.get_tracer(__name__) @@ -37,7 +37,7 @@ class FlashSantacoderSharded(FlashCausalLM): if torch.cuda.is_available(): device = torch.device(f"cuda:{rank}") dtype = torch.float16 if dtype is None else dtype - elif IS_XPU_SYSTEM: + elif SYSTEM == "xpu": device = torch.device(f"xpu:{rank}") dtype = torch.float16 if dtype is None else dtype else: diff --git a/server/text_generation_server/server.py b/server/text_generation_server/server.py index 158966e3..9d0571a6 100644 --- a/server/text_generation_server/server.py +++ b/server/text_generation_server/server.py @@ -85,7 +85,7 @@ class TextGenerationService(generate_pb2_grpc.TextGenerationServiceServicer): # When using GPTQ, Exllama kernels need some global kernels # For which we have the finale shapes only after the model has loaded # This will allocate those buffers. - from text_generation_server.utils.layers import ( + from text_generation_server.layers.gptq import ( create_exllama_buffers, set_device, ) diff --git a/server/text_generation_server/utils/flash_attn.py b/server/text_generation_server/utils/flash_attn.py index 583a8f91..0830656d 100644 --- a/server/text_generation_server/utils/flash_attn.py +++ b/server/text_generation_server/utils/flash_attn.py @@ -2,13 +2,8 @@ import os import torch from loguru import logger -import math -from text_generation_server.utils.import_utils import ( - IS_CUDA_SYSTEM, - IS_ROCM_SYSTEM, - IS_XPU_SYSTEM, -) +from text_generation_server.utils.import_utils import SYSTEM if os.getenv("USE_FLASH_ATTENTION", "").lower() == "false": raise ImportError("`USE_FLASH_ATTENTION` is false.") @@ -16,83 +11,22 @@ HAS_FLASH_ATTN = True HAS_FLASH_ATTN_V2_CUDA = False HAS_FLASH_ATTN_V2_ROCM = False -if IS_XPU_SYSTEM: +if SYSTEM == "xpu": import intel_extension_for_pytorch as ipex -if IS_CUDA_SYSTEM or IS_ROCM_SYSTEM: - if not torch.cuda.is_available(): - raise ImportError("CUDA is not available") + def attention( + q, + k, + v, + out, + cu_seqlens, + max_s, + softmax_scale, + window_size_left=-1, + ): + if window_size_left <= 0 and window_size_left != -1: + raise ValueError("`window_size_left` must be > 0 or -1") - major, minor = torch.cuda.get_device_capability() - is_sm75 = major == 7 and minor == 5 - is_sm8x = major == 8 and minor >= 0 - is_sm90 = major == 9 and minor == 0 - - HAS_FLASH_ATTN = False - HAS_FLASH_ATTN_V2_CUDA = False - HAS_FLASH_ATTN_V2_ROCM = False - try: - try: - import flash_attn_2_cuda - except ImportError: - architecture_suffix = "" - if IS_CUDA_SYSTEM: - architecture_suffix = "-cuda" - elif IS_ROCM_SYSTEM: - architecture_suffix = "-rocm" - raise ImportError( - "Flash Attention V2 is not installed.\n" - "Use the official Docker image (ghcr.io/huggingface/text-generation-inference:latest) " - f"or install flash attention v2 with `cd server && make install install-flash-attention-v2{architecture_suffix}`" - ) - if not (is_sm8x or is_sm90): - raise ImportError( - f"GPU with CUDA capability {major} {minor} is not supported for " - "Flash Attention V2" - ) - HAS_FLASH_ATTN_V2_CUDA = IS_CUDA_SYSTEM - HAS_FLASH_ATTN_V2_ROCM = IS_ROCM_SYSTEM - except ImportError as e: - try: - import flash_attn_cuda - except ImportError: - raise ImportError( - "Flash Attention is not installed.\n" - "Use the official Docker image (ghcr.io/huggingface/text-generation-inference:latest) " - "or install flash attention with `cd server && make install install-flash-attention`" - ) from e - - if IS_CUDA_SYSTEM and not (is_sm75 or is_sm8x or is_sm90): - raise ImportError( - f"GPU with CUDA capability {major} {minor} is not supported" - ) from e - elif IS_ROCM_SYSTEM: - for idx in range(torch.cuda.device_count()): - if "MI210" not in torch.cuda.get_device_name( - idx - ) and "MI250" not in torch.cuda.get_device_name(idx): - raise ImportError( - f"AMD GPU {torch.cuda.get_device_name(idx)} does not support flash-attention" - ) - - logger.warning(f"Unable to use Flash Attention V2: {e}") - HAS_FLASH_ATTN = True - - -def attention( - q, - k, - v, - out, - cu_seqlens, - max_s, - softmax_scale, - window_size_left=-1, -): - if window_size_left <= 0 and window_size_left != -1: - raise ValueError("`window_size_left` must be > 0 or -1") - - if IS_XPU_SYSTEM: if window_size_left != -1: raise ValueError( f"XPU version of Flash Attention does not support window attention (window_size_left != -1, got window_size_left={window_size_left})." @@ -114,7 +48,77 @@ def attention( None, ) - if HAS_FLASH_ATTN_V2_CUDA: + +if SYSTEM in {"cuda", "rocm"}: + if not torch.cuda.is_available(): + raise ImportError("CUDA is not available") + + major, minor = torch.cuda.get_device_capability() + is_sm75 = major == 7 and minor == 5 + is_sm8x = major == 8 and minor >= 0 + is_sm90 = major == 9 and minor == 0 + + HAS_FLASH_ATTN = False + HAS_FLASH_ATTN_V2_CUDA = False + HAS_FLASH_ATTN_V2_ROCM = False + try: + try: + import flash_attn_2_cuda + except ImportError: + architecture_suffix = f"-{SYSTEM}" + raise ImportError( + "Flash Attention V2 is not installed.\n" + "Use the official Docker image (ghcr.io/huggingface/text-generation-inference:latest) " + f"or install flash attention v2 with `cd server && make install install-flash-attention-v2{architecture_suffix}`" + ) + if not (is_sm8x or is_sm90): + raise ImportError( + f"GPU with CUDA capability {major} {minor} is not supported for " + "Flash Attention V2" + ) + HAS_FLASH_ATTN_V2_CUDA = SYSTEM == "cuda" + HAS_FLASH_ATTN_V2_ROCM = SYSTEM == "rocm" + except ImportError as e: + try: + import flash_attn_cuda + except ImportError: + raise ImportError( + "Flash Attention is not installed.\n" + "Use the official Docker image (ghcr.io/huggingface/text-generation-inference:latest) " + "or install flash attention with `cd server && make install install-flash-attention`" + ) from e + + if SYSTEM == "cuda" and not (is_sm75 or is_sm8x or is_sm90): + raise ImportError( + f"GPU with CUDA capability {major} {minor} is not supported" + ) from e + elif SYSTEM == "rocm": + for idx in range(torch.cuda.device_count()): + if "MI210" not in torch.cuda.get_device_name( + idx + ) and "MI250" not in torch.cuda.get_device_name(idx): + raise ImportError( + f"AMD GPU {torch.cuda.get_device_name(idx)} does not support flash-attention" + ) + + logger.warning(f"Unable to use Flash Attention V2: {e}") + HAS_FLASH_ATTN = True + + +if HAS_FLASH_ATTN_V2_CUDA: + + def attention( + q, + k, + v, + out, + cu_seqlens, + max_s, + softmax_scale, + window_size_left=-1, + ): + if window_size_left <= 0 and window_size_left != -1: + raise ValueError("`window_size_left` must be > 0 or -1") return flash_attn_2_cuda.varlen_fwd( q, k, @@ -136,7 +140,21 @@ def attention( False, None, ) - elif HAS_FLASH_ATTN_V2_ROCM: + +elif HAS_FLASH_ATTN_V2_ROCM: + + def attention( + q, + k, + v, + out, + cu_seqlens, + max_s, + softmax_scale, + window_size_left=-1, + ): + if window_size_left <= 0 and window_size_left != -1: + raise ValueError("`window_size_left` must be > 0 or -1") if window_size_left != -1: raise ValueError( f"RoCm version of Flash Attention v2 does not support window attention (window_size_left != -1, got window_size_left={window_size_left})." @@ -159,7 +177,19 @@ def attention( False, None, ) - elif HAS_FLASH_ATTN: + +elif HAS_FLASH_ATTN: + + def attention( + q, + k, + v, + out, + cu_seqlens, + max_s, + softmax_scale, + window_size_left=-1, + ): if window_size_left != -1: raise NotImplementedError( "window_size_left is only available with flash attn v2" @@ -209,4 +239,5 @@ def attention( None, ) +else: raise NotImplementedError("flash attention is not installed") diff --git a/server/text_generation_server/utils/gptq/quant_linear.py b/server/text_generation_server/utils/gptq/quant_linear.py deleted file mode 100644 index a832f755..00000000 --- a/server/text_generation_server/utils/gptq/quant_linear.py +++ /dev/null @@ -1,359 +0,0 @@ -import math -import numpy as np -import torch -import torch.nn as nn -from torch.cuda.amp import custom_bwd, custom_fwd - -try: - import triton - import triton.language as tl - from . import custom_autotune - - # code based https://github.com/fpgaminer/GPTQ-triton - @custom_autotune.autotune( - configs=[ - triton.Config( - { - "BLOCK_SIZE_M": 64, - "BLOCK_SIZE_N": 256, - "BLOCK_SIZE_K": 32, - "GROUP_SIZE_M": 8, - }, - num_stages=4, - num_warps=4, - ), - triton.Config( - { - "BLOCK_SIZE_M": 128, - "BLOCK_SIZE_N": 128, - "BLOCK_SIZE_K": 32, - "GROUP_SIZE_M": 8, - }, - num_stages=4, - num_warps=4, - ), - triton.Config( - { - "BLOCK_SIZE_M": 64, - "BLOCK_SIZE_N": 128, - "BLOCK_SIZE_K": 32, - "GROUP_SIZE_M": 8, - }, - num_stages=4, - num_warps=4, - ), - triton.Config( - { - "BLOCK_SIZE_M": 128, - "BLOCK_SIZE_N": 32, - "BLOCK_SIZE_K": 32, - "GROUP_SIZE_M": 8, - }, - num_stages=4, - num_warps=4, - ), - triton.Config( - { - "BLOCK_SIZE_M": 64, - "BLOCK_SIZE_N": 64, - "BLOCK_SIZE_K": 32, - "GROUP_SIZE_M": 8, - }, - num_stages=4, - num_warps=4, - ), - triton.Config( - { - "BLOCK_SIZE_M": 64, - "BLOCK_SIZE_N": 128, - "BLOCK_SIZE_K": 32, - "GROUP_SIZE_M": 8, - }, - num_stages=2, - num_warps=8, - ), - triton.Config( - { - "BLOCK_SIZE_M": 64, - "BLOCK_SIZE_N": 64, - "BLOCK_SIZE_K": 64, - "GROUP_SIZE_M": 8, - }, - num_stages=3, - num_warps=8, - ), - triton.Config( - { - "BLOCK_SIZE_M": 32, - "BLOCK_SIZE_N": 32, - "BLOCK_SIZE_K": 128, - "GROUP_SIZE_M": 8, - }, - num_stages=2, - num_warps=4, - ), - ], - key=["M", "N", "K"], - nearest_power_of_two=True, - prune_configs_by={ - "early_config_prune": custom_autotune.matmul248_kernel_config_pruner, - "perf_model": None, - "top_k": None, - }, - ) - @triton.jit - def matmul_248_kernel( - a_ptr, - b_ptr, - c_ptr, - scales_ptr, - zeros_ptr, - g_ptr, - M, - N, - K, - bits, - maxq, - stride_am, - stride_ak, - stride_bk, - stride_bn, - stride_cm, - stride_cn, - stride_scales, - stride_zeros, - BLOCK_SIZE_M: tl.constexpr, - BLOCK_SIZE_N: tl.constexpr, - BLOCK_SIZE_K: tl.constexpr, - GROUP_SIZE_M: tl.constexpr, - ): - """ - Compute the matrix multiplication C = A x B. - A is of shape (M, K) float16 - B is of shape (K//8, N) int32 - C is of shape (M, N) float16 - scales is of shape (G, N) float16 - zeros is of shape (G, N) float16 - g_ptr is of shape (K) int32 - """ - infearure_per_bits = 32 // bits - - pid = tl.program_id(axis=0) - num_pid_m = tl.cdiv(M, BLOCK_SIZE_M) - num_pid_n = tl.cdiv(N, BLOCK_SIZE_N) - num_pid_k = tl.cdiv(K, BLOCK_SIZE_K) - num_pid_in_group = GROUP_SIZE_M * num_pid_n - group_id = pid // num_pid_in_group - first_pid_m = group_id * GROUP_SIZE_M - group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M) - pid_m = first_pid_m + (pid % group_size_m) - pid_n = (pid % num_pid_in_group) // group_size_m - - offs_am = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) - offs_bn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) - offs_k = tl.arange(0, BLOCK_SIZE_K) - a_ptrs = a_ptr + ( - offs_am[:, None] * stride_am + offs_k[None, :] * stride_ak - ) # (BLOCK_SIZE_M, BLOCK_SIZE_K) - a_mask = offs_am[:, None] < M - # b_ptrs is set up such that it repeats elements along the K axis 8 times - b_ptrs = b_ptr + ( - (offs_k[:, None] // infearure_per_bits) * stride_bk - + offs_bn[None, :] * stride_bn - ) # (BLOCK_SIZE_K, BLOCK_SIZE_N) - g_ptrs = g_ptr + offs_k - # shifter is used to extract the N bits of each element in the 32-bit word from B - scales_ptrs = scales_ptr + offs_bn[None, :] - zeros_ptrs = zeros_ptr + (offs_bn[None, :] // infearure_per_bits) - - shifter = (offs_k % infearure_per_bits) * bits - zeros_shifter = (offs_bn % infearure_per_bits) * bits - accumulator = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) - - for k in range(0, num_pid_k): - g_idx = tl.load(g_ptrs) - - # Fetch scales and zeros; these are per-outfeature and thus reused in the inner loop - scales = tl.load( - scales_ptrs + g_idx[:, None] * stride_scales - ) # (BLOCK_SIZE_K, BLOCK_SIZE_N,) - zeros = tl.load( - zeros_ptrs + g_idx[:, None] * stride_zeros - ) # (BLOCK_SIZE_K, BLOCK_SIZE_N,) - - zeros = (zeros >> zeros_shifter[None, :]) & maxq - zeros = (zeros + 1) & maxq # eventually avoid overflow - - a = tl.load(a_ptrs, mask=a_mask, other=0.0) # (BLOCK_SIZE_M, BLOCK_SIZE_K) - b = tl.load(b_ptrs) # (BLOCK_SIZE_K, BLOCK_SIZE_N), but repeated - - # Now we need to unpack b (which is N-bit values) into 32-bit values - b = (b >> shifter[:, None]) & maxq # Extract the N-bit values - b = (b - zeros) * scales # Scale and shift - - accumulator += tl.dot(a, b) - a_ptrs += BLOCK_SIZE_K - b_ptrs += (BLOCK_SIZE_K // infearure_per_bits) * stride_bk - g_ptrs += BLOCK_SIZE_K - - c_ptrs = c_ptr + stride_cm * offs_am[:, None] + stride_cn * offs_bn[None, :] - c_mask = (offs_am[:, None] < M) & (offs_bn[None, :] < N) - tl.store(c_ptrs, accumulator, mask=c_mask) - -except: - print("triton not installed.") - - -def matmul248(input, qweight, scales, qzeros, g_idx, bits, maxq): - with torch.cuda.device(input.device): - output = torch.empty( - (input.shape[0], qweight.shape[1]), device=input.device, dtype=torch.float16 - ) - grid = lambda META: ( - triton.cdiv(input.shape[0], META["BLOCK_SIZE_M"]) - * triton.cdiv(qweight.shape[1], META["BLOCK_SIZE_N"]), - ) - matmul_248_kernel[grid]( - input, - qweight, - output, - scales, - qzeros, - g_idx, - input.shape[0], - qweight.shape[1], - input.shape[1], - bits, - maxq, - input.stride(0), - input.stride(1), - qweight.stride(0), - qweight.stride(1), - output.stride(0), - output.stride(1), - scales.stride(0), - qzeros.stride(0), - ) - return output - - -class QuantLinearFunction(torch.autograd.Function): - @staticmethod - @custom_fwd(cast_inputs=torch.float16) - def forward(ctx, input, qweight, scales, qzeros, g_idx, bits, maxq): - output = matmul248(input, qweight, scales, qzeros, g_idx, bits, maxq) - return output - - -class QuantLinear(nn.Module): - def __init__(self, qweight, qzeros, scales, g_idx, bias, bits, groupsize): - super().__init__() - self.register_buffer("qweight", qweight) - self.register_buffer("qzeros", qzeros) - self.register_buffer("scales", scales) - self.register_buffer("g_idx", g_idx) - if bias is not None: - self.register_buffer("bias", bias) - else: - self.bias = None - if bits not in [2, 4, 8]: - raise NotImplementedError("Only 2,4,8 bits are supported.") - self.bits = bits - self.maxq = 2**self.bits - 1 - self.groupsize = groupsize - - self.outfeatures = qweight.shape[1] - self.infeatures = qweight.shape[0] * 32 // bits - - @classmethod - def new(cls, bits, groupsize, infeatures, outfeatures, bias): - if bits not in [2, 4, 8]: - raise NotImplementedError("Only 2,4,8 bits are supported.") - - qweight = torch.zeros((infeatures // 32 * bits, outfeatures), dtype=torch.int32) - qzeros = torch.zeros( - (math.ceil(infeatures / groupsize), outfeatures // 32 * bits), - dtype=torch.int32, - ) - scales = torch.zeros( - (math.ceil(infeatures / groupsize), outfeatures), dtype=torch.float16 - ) - g_idx = torch.tensor( - [i // groupsize for i in range(infeatures)], dtype=torch.int32 - ) - if bias: - bias = torch.zeros((outfeatures), dtype=torch.float16) - else: - bias = None - return cls(qweight, qzeros, scales, g_idx, bias, bits, groupsize) - - def pack(self, linear, scales, zeros, g_idx=None): - self.g_idx = g_idx.clone() if g_idx is not None else self.g_idx - - scales = scales.t().contiguous() - zeros = zeros.t().contiguous() - scale_zeros = zeros * scales - self.scales = scales.clone().half() - if linear.bias is not None: - self.bias = linear.bias.clone().half() - - intweight = [] - for idx in range(self.infeatures): - intweight.append( - torch.round( - (linear.weight.data[:, idx] + scale_zeros[self.g_idx[idx]]) - / self.scales[self.g_idx[idx]] - ).to(torch.int)[:, None] - ) - intweight = torch.cat(intweight, dim=1) - intweight = intweight.t().contiguous() - intweight = intweight.numpy().astype(np.uint32) - qweight = np.zeros( - (intweight.shape[0] // 32 * self.bits, intweight.shape[1]), dtype=np.uint32 - ) - i = 0 - row = 0 - while row < qweight.shape[0]: - if self.bits in [2, 4, 8]: - for j in range(i, i + (32 // self.bits)): - qweight[row] |= intweight[j] << (self.bits * (j - i)) - i += 32 // self.bits - row += 1 - else: - raise NotImplementedError("Only 2,4,8 bits are supported.") - - qweight = qweight.astype(np.int32) - self.qweight = torch.from_numpy(qweight) - - zeros -= 1 - zeros = zeros.numpy().astype(np.uint32) - qzeros = np.zeros( - (zeros.shape[0], zeros.shape[1] // 32 * self.bits), dtype=np.uint32 - ) - i = 0 - col = 0 - while col < qzeros.shape[1]: - if self.bits in [2, 4, 8]: - for j in range(i, i + (32 // self.bits)): - qzeros[:, col] |= zeros[:, j] << (self.bits * (j - i)) - i += 32 // self.bits - col += 1 - else: - raise NotImplementedError("Only 2,4,8 bits are supported.") - - qzeros = qzeros.astype(np.int32) - self.qzeros = torch.from_numpy(qzeros) - - def forward(self, x): - out_shape = x.shape[:-1] + (self.outfeatures,) - out = QuantLinearFunction.apply( - x.reshape(-1, x.shape[-1]), - self.qweight, - self.scales, - self.qzeros, - self.g_idx, - self.bits, - self.maxq, - ) - out = out + self.bias if self.bias is not None else out - return out.reshape(out_shape) diff --git a/server/text_generation_server/utils/import_utils.py b/server/text_generation_server/utils/import_utils.py index db205f4d..f54987eb 100644 --- a/server/text_generation_server/utils/import_utils.py +++ b/server/text_generation_server/utils/import_utils.py @@ -10,6 +10,41 @@ def is_xpu_available(): return hasattr(torch, "xpu") and torch.xpu.is_available() -IS_ROCM_SYSTEM = torch.version.hip is not None -IS_CUDA_SYSTEM = torch.version.cuda is not None -IS_XPU_SYSTEM = is_xpu_available() +def get_cuda_free_memory(device, memory_fraction): + total_free_memory, _ = torch.cuda.mem_get_info(device) + total_gpu_memory = torch.cuda.get_device_properties(device).total_memory + free_memory = max(0, total_free_memory - (1 - memory_fraction) * total_gpu_memory) + return free_memory + + +def get_xpu_free_memory(device): + total_gpu_memory = torch.xpu.get_device_properties(device).total_memory + free_memory = int(total_gpu_memory * 0.5) + return free_memory + + +SYSTEM = None +if torch.version.hip is not None: + SYSTEM = "rocm" + empty_cache = torch.cuda.empty_cache + synchronize = torch.cuda.synchronize + get_free_memory = get_cuda_free_memory +elif torch.version.cuda is not None and torch.cuda.is_available(): + SYSTEM = "cuda" + empty_cache = torch.cuda.empty_cache + synchronize = torch.cuda.synchronize + get_free_memory = get_cuda_free_memory +elif is_xpu_available(): + SYSTEM = "xpu" + empty_cache = torch.xpu.empty_cache + synchronize = torch.xpu.synchronize + get_free_memory = get_xpu_free_memory +else: + SYSTEM = "cpu" + + def noop(*args, **kwargs): + pass + + empty_cache = noop + synchronize = noop + get_free_memory = noop diff --git a/server/text_generation_server/utils/layers.py b/server/text_generation_server/utils/layers.py deleted file mode 100644 index 7d339fe5..00000000 --- a/server/text_generation_server/utils/layers.py +++ /dev/null @@ -1,1374 +0,0 @@ -import os -import torch -import torch.distributed - -from torch import nn -from torch.nn import functional as F -from typing import List, Tuple, Optional -from loguru import logger -from functools import lru_cache - -from text_generation_server.utils.speculate import get_speculate - -HAS_BITS_AND_BYTES = True -try: - import bitsandbytes as bnb - from bitsandbytes.nn import Int8Params, Params4bit -except ImportError: - HAS_BITS_AND_BYTES = False - -from accelerate import init_empty_weights - -from text_generation_server.utils.gptq.quant_linear import QuantLinear -from text_generation_server.utils.import_utils import ( - IS_CUDA_SYSTEM, - IS_ROCM_SYSTEM, - IS_XPU_SYSTEM, -) - -if IS_XPU_SYSTEM: - import intel_extension_for_pytorch as ipex - -HAS_AWQ = True -try: - from text_generation_server.utils.awq.quantize.qmodule import WQLinear -except ImportError: - HAS_AWQ = False - -try: - major, _minor = torch.cuda.get_device_capability() -except Exception: - major = 1 - -HAS_EXLLAMA = False -CAN_EXLLAMA = major >= 8 or IS_ROCM_SYSTEM -V2 = os.getenv("EXLLAMA_VERSION", "2") == "2" - -if os.getenv("DISABLE_EXLLAMA") == "True": - HAS_EXLLAMA = False -elif CAN_EXLLAMA: - try: - if V2: - from text_generation_server.utils.gptq.exllamav2 import ( - QuantLinear as ExllamaQuantLinear, - create_exllama_buffers, - set_device, - ) - - HAS_EXLLAMA = "2" - else: - from text_generation_server.utils.gptq.exllama import ( - Ex4bitLinear as ExllamaQuantLinear, - create_exllama_buffers, - set_device, - ) - - HAS_EXLLAMA = "1" - - except ImportError: - pass - -HAS_EETQ = False -try: - from EETQ import quant_weights, w8_a16_gemm - - HAS_EETQ = True -except ImportError: - pass - - -# Monkey patching -@classmethod -def load_layer_norm(cls, prefix, weights, eps): - weight = weights.get_tensor(f"{prefix}.weight") - bias = weights.get_tensor(f"{prefix}.bias") - with init_empty_weights(): - ln = cls(weight.shape, eps=eps) - - ln.weight = nn.Parameter(weight) - ln.bias = nn.Parameter(bias) - return ln - - -@classmethod -def load_layer_norm_no_bias(cls, prefix, weights, eps): - weight = weights.get_tensor(f"{prefix}.weight") - with init_empty_weights(): - ln = cls(weight.shape, eps=eps) - - ln.weight = nn.Parameter(weight) - ln.bias = None - return ln - - -@classmethod -def load_conv2d(cls, prefix, weights, in_channels, out_channels, kernel_size, stride): - weight = weights.get_tensor(f"{prefix}.weight") - bias = weights.get_tensor(f"{prefix}.bias") - with init_empty_weights(): - conv2d = cls( - in_channels=in_channels, - out_channels=out_channels, - kernel_size=kernel_size, - stride=stride, - ) - - conv2d.weight = nn.Parameter(weight) - conv2d.bias = nn.Parameter(bias) - return conv2d - - -@classmethod -def load_conv2d_no_bias( - cls, prefix, weights, in_channels, out_channels, kernel_size, stride -): - weight = weights.get_tensor(f"{prefix}.weight") - with init_empty_weights(): - conv2d = cls( - in_channels=in_channels, - out_channels=out_channels, - kernel_size=kernel_size, - stride=stride, - ) - - conv2d.weight = nn.Parameter(weight) - conv2d.bias = None - return conv2d - - -torch.nn.Conv2d.load = load_conv2d -torch.nn.Conv2d.load_no_bias = load_conv2d_no_bias -torch.nn.LayerNorm.load = load_layer_norm -torch.nn.LayerNorm.load_no_bias = load_layer_norm_no_bias - - -class FastLinear(nn.Module): - def __init__( - self, - weight, - bias, - ) -> None: - super().__init__() - self.weight = nn.Parameter(weight) - if bias is not None: - self.bias = nn.Parameter(bias) - else: - self.bias = None - - @classmethod - def load(cls, config, prefix: str, weights, bias: bool): - weight = weights.get_tensor(f"{prefix}.weight") - if bias: - bias = weights.get_tensor(f"{prefix}.bias") - else: - bias = None - return cls(weight, bias) - - def forward(self, input: torch.Tensor) -> torch.Tensor: - return F.linear(input, self.weight, self.bias) - - -class EETQLinear(nn.Module): - def __init__( - self, - weight, - bias, - ) -> None: - super().__init__() - device = weight.device - if weight.dtype != torch.float16: - weight = weight.to(dtype=torch.float16) - weight = torch.t(weight).contiguous().cpu() - weight, scale = quant_weights(weight, torch.int8, False) - - self.weight = weight.cuda(device) - self.scale = scale.cuda(device) - self.bias = bias.cuda(device) if bias is not None else None - - def forward(self, input: torch.Tensor) -> torch.Tensor: - output = w8_a16_gemm(input, self.weight, self.scale) - output = output + self.bias if self.bias is not None else output - return output - - -def fp8_quantize(weight, qdtype=torch.float8_e4m3fn): - device = weight.device - # weight, scale = quant_weights(weight, torch.int8, False) - finfo = torch.finfo(qdtype) - # Calculate the scale as dtype max divided by absmax - scale = finfo.max / weight.abs().max().clamp(min=1e-12) - # scale and clamp the tensor to bring it to - # the representative range of float8 data type - # (as default cast is unsaturated) - qweight = (weight * scale).clamp(min=finfo.min, max=finfo.max) - # Return both float8 data and the inverse scale (as float), - # as both required as inputs to torch._scaled_mm - qweight = qweight.to(qdtype) - scale = scale.float().reciprocal() - return qweight, scale - - -class Fp8Linear(nn.Module): - def __init__( - self, - weight, - bias, - ) -> None: - super().__init__() - self.dtype = weight.dtype - self.qweight, self.scale = fp8_quantize(weight) - - self.bias = bias if bias is not None else None - - def forward(self, input: torch.Tensor) -> torch.Tensor: - qinput, scale = fp8_quantize(input) - output, _ = torch._scaled_mm( - qinput, - self.qweight.t(), - out_dtype=self.dtype, - scale_a=scale, - scale_b=self.scale, - bias=self.bias, - ) - return output - - -class Linear8bitLt(nn.Module): - def __init__( - self, - weight, - bias, - has_fp16_weights=True, - memory_efficient_backward=False, - threshold=0.0, - index=None, - ): - super().__init__() - assert ( - not memory_efficient_backward - ), "memory_efficient_backward is no longer required and the argument is deprecated in 0.37.0 and will be removed in 0.39.0" - self.state = bnb.MatmulLtState() - self.index = index - - # Necessary for stacked layers - self.state.threshold = threshold - self.state.has_fp16_weights = has_fp16_weights - self.state.memory_efficient_backward = memory_efficient_backward - if threshold > 0.0 and not has_fp16_weights: - self.state.use_pool = True - - self.weight = Int8Params( - weight.data, - has_fp16_weights=has_fp16_weights, - requires_grad=has_fp16_weights, - ) - self.weight.cuda(weight.device) - self.bias = bias - - def init_8bit_state(self): - self.state.CB = self.weight.CB - self.state.SCB = self.weight.SCB - self.weight.CB = None - self.weight.SCB = None - - def forward(self, x: torch.Tensor): - self.state.is_training = self.training - if self.weight.CB is not None: - self.init_8bit_state() - - # weights are cast automatically as Int8Params, but the bias has to be cast manually - if self.bias is not None and self.bias.dtype != x.dtype: - self.bias.data = self.bias.data.to(x.dtype) - - out = bnb.matmul(x, self.weight, bias=self.bias, state=self.state) - - if not self.state.has_fp16_weights: - if self.state.CB is not None and self.state.CxB is not None: - # we converted 8-bit row major to turing/ampere format in the first inference pass - # we no longer need the row-major weight - del self.state.CB - self.weight.data = self.state.CxB - return out - - -class Linear4bit(nn.Module): - def __init__(self, weight, bias, quant_type): - super().__init__() - self.weight = Params4bit( - weight.data, - requires_grad=False, - compress_statistics=True, - quant_type=quant_type, - ) - self.compute_dtype = None - self.weight.cuda(weight.device) - self.bias = bias - - def forward(self, x: torch.Tensor): - # weights are cast automatically as Int8Params, but the bias has to be cast manually - if self.bias is not None and self.bias.dtype != x.dtype: - self.bias.data = self.bias.data.to(x.dtype) - - if getattr(self.weight, "quant_state", None) is None: - print( - "FP4 quantization state not initialized. Please call .cuda() or .to(device) on the LinearFP4 layer first." - ) - inp_dtype = x.dtype - if self.compute_dtype is not None: - x = x.to(self.compute_dtype) - - bias = None if self.bias is None else self.bias.to(self.compute_dtype) - out = bnb.matmul_4bit( - x, self.weight.t(), bias=bias, quant_state=self.weight.quant_state - ) - - out = out.to(inp_dtype) - - return out - - -@lru_cache(1) -def warn_deprecate_bnb(): - logger.warning( - "Bitsandbytes 8bit is deprecated, using `eetq` is a drop-in replacement, and has much better performnce" - ) - - -def get_linear(weight, bias, quantize): - if quantize is None: - linear = FastLinear(weight, bias) - elif quantize == "eetq": - if HAS_EETQ: - linear = EETQLinear(weight, bias) - else: - raise ImportError( - "Please install EETQ from https://github.com/NetEase-FuXi/EETQ" - ) - elif quantize == "fp8": - linear = Fp8Linear(weight, bias) - elif quantize == "bitsandbytes": - warn_deprecate_bnb() - linear = Linear8bitLt( - weight, - bias, - has_fp16_weights=False, - threshold=6.0, - ) - if bias is not None: - linear.bias = nn.Parameter(bias) - elif quantize == "bitsandbytes-fp4": - linear = Linear4bit( - weight, - bias, - quant_type="fp4", - ) - elif quantize == "bitsandbytes-nf4": - linear = Linear4bit( - weight, - bias, - quant_type="nf4", - ) - elif quantize == "gptq": - try: - qweight, qzeros, scales, g_idx, bits, groupsize, use_exllama = weight - except Exception: - raise NotImplementedError( - f"The passed weight is not `gptq` compatible, loader needs to be updated." - ) - - if use_exllama: - linear = ExllamaQuantLinear( - qweight, qzeros, scales, g_idx, bias, bits, groupsize - ) - else: - linear = QuantLinear( - qweight, - qzeros, - scales, - g_idx, - bias, - bits, - groupsize, - ) - elif quantize == "awq": - try: - qweight, qzeros, scales, _, bits, groupsize, _ = weight - except Exception: - raise NotImplementedError( - f"The passed weight is not `awq` compatible, loader needs to be updated." - ) - if IS_ROCM_SYSTEM: - raise NotImplementedError( - "AWQ GEMM kernel can't be used on ROCm systems, please use `--quantize gptq` instead " - "to use Exllama/GPTQ kernels for AWQ inference." - ) - if not HAS_AWQ: - raise NotImplementedError( - "You do not seem to have awq installed, either install it (cd server && make install-awq), or try using GPTQ `---quantize gptq` a conversion AWQ->GPTQ will happen on the fly" - ) - linear = WQLinear( - w_bit=bits, - group_size=groupsize, - qweight=qweight, - qzeros=qzeros, - scales=scales, - bias=bias is not None, - ) - else: - raise NotImplementedError(f"Quantization `{quantize}` is not implemented yet.") - return linear - - -class SuperLayer(nn.Module): - def __init__(self, linear): - super().__init__() - self.linear = linear - - def forward(self, x): - return self.linear.forward(x) - - -class ResBlock(torch.nn.Module): - def __init__(self, config, prefix, weights): - super().__init__() - self.linear = FastLinear.load( - config, prefix=f"{prefix}.linear", weights=weights, bias=True - ) - self.act = torch.nn.SiLU() - - def forward(self, x): - return x + self.act(self.linear(x)) - - -class MedusaModel(torch.nn.Module): - def __init__(self, config, medusa_config, weights): - super().__init__() - self.heads = torch.nn.ModuleList( - [ - MedusaHead(config, medusa_config, prefix=f"{i}", weights=weights) - for i in range(get_speculate()) - ] - ) - - def forward(self, x): - speculative_logits = torch.stack([head(x) for head in self.heads], dim=1) - return speculative_logits - - -class MedusaHead(torch.nn.Module): - def __init__(self, config, medusa_config, prefix, weights): - super().__init__() - self.blocks = torch.nn.ModuleList( - [ - ResBlock(config, prefix=f"{prefix}.{i}", weights=weights) - for i in range(medusa_config["medusa_num_layers"]) - ] - ) - n = len(self.blocks) - self.out = FastLinear.load( - config, prefix=f"{prefix}.{n}", weights=weights, bias=False - ) - - def forward(self, x): - for block in self.blocks: - x = block(x) - x = self.out(x) - return x - - -class MedusaHeadV1(nn.Module): - def __init__(self, lm_head, medusa): - super().__init__() - self.lm_head = lm_head - self.medusa = medusa - - @staticmethod - def load(config, prefix: str, weights): - from pathlib import Path - from safetensors import safe_open - import json - - use_medusa = config.use_medusa - - medusa_config = str(Path(use_medusa) / "config.json") - filename = str(Path(use_medusa) / "medusa_lm_head.safetensors") - - with open(medusa_config, "r") as f: - medusa_config = json.load(f) - routing = weights.routing - with safe_open(filename, framework="pytorch") as f: - for k in f.keys(): - if k in routing and routing[k] != filename: - raise RuntimeError( - f"Key {k} was found in multiple files: {filename} and {routing[k]}" - ) - routing[k] = filename - - medusa = MedusaModel(config, medusa_config, weights) - lm_head = TensorParallelHead.load(config, prefix, weights) - return MedusaHeadV1(lm_head, medusa) - - def forward( - self, input: torch.Tensor - ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: - logits = self.lm_head(input) - # If we have too many tokens, we skip speculative logits - if input.shape[0] > 128: - return logits, None - - speculative_logits = self.medusa(input) - return logits, speculative_logits - - -class MedusaHeadV2(nn.Module): - def __init__(self, config, prefix, weights): - super().__init__() - from pathlib import Path - from safetensors import safe_open - import json - - use_medusa = config.use_medusa - - medusa_config = str(Path(use_medusa) / "config.json") - filename = str(Path(use_medusa) / "medusa_lm_head.safetensors") - - with open(medusa_config, "r") as f: - medusa_config = json.load(f) - routing = weights.routing - with safe_open(filename, framework="pytorch") as f: - for k in f.keys(): - if k in routing and routing[k] != filename: - raise RuntimeError( - f"Key {k} was found in multiple files: {filename} and {routing[k]}" - ) - routing[k] = filename - - self.n_medusa_heads = get_speculate() - - assert medusa_config["medusa_num_layers"] == 1 - self.linear = TensorParallelColumnLinear.load_multi( - config, - prefixes=[f"{i}.0.linear" for i in range(self.n_medusa_heads)], - dim=0, - weights=weights, - bias=True, - ) - self.process_group = weights.process_group - self.world_size = self.process_group.size() - self.rank = self.process_group.rank() - - self.act = torch.nn.SiLU() - - self.lm_head = TensorParallelHead.load(config, prefix, weights) - - def forward(self, x): - # If we have too many tokens, we skip speculative logits - if x.shape[0] > 128: - logits = self.lm_head(x) - return logits, None - - size = x.shape[-1] - block_size = (size + self.world_size - 1) // self.world_size - start = self.rank * block_size - stop = (self.rank + 1) * block_size - - x_block = x[:, start:stop] - - # Compute all medusa heads at the same time, then reshape and move the n_medusa_heads dim to dim 1 - medusa_res = self.act(self.linear(x)).reshape( - *x_block.shape[:-1], self.n_medusa_heads, x_block.shape[-1] - ) - - # Apply all residual medusa heads - output = x[:, start:stop].unsqueeze(-2) + medusa_res - - # Gather medusa heads - world_output = [ - torch.empty_like(output) for _ in range(self.process_group.size()) - ] - torch.distributed.all_gather(world_output, output, group=self.process_group) - world_output = torch.cat(world_output, dim=-1) - - # Stack x and medusa residual x - stacked_x = torch.cat([x.unsqueeze(-2), world_output], dim=-2) - - # Compute lm head on x + medusa residual x - logits = self.lm_head(stacked_x) - - # Finally, split logits from speculative logits - logits, speculative_logits = torch.split( - logits, [1, self.n_medusa_heads], dim=-2 - ) - # Squeeze added dimension - logits = logits.squeeze(-2) - - return logits, speculative_logits - - -class SpeculativeHead(nn.Module): - def __init__(self, lm_head, medusa): - super().__init__() - self.head = lm_head - self.medusa = medusa - - @staticmethod - def load(config, prefix: str, weights): - use_medusa = config.use_medusa - if use_medusa: - lm_head = None - try: - medusa = MedusaHeadV1.load(config, prefix, weights) - except: - medusa = MedusaHeadV2(config, prefix, weights) - else: - lm_head = TensorParallelHead.load(config, prefix, weights) - medusa = None - return SpeculativeHead(lm_head, medusa) - - def forward( - self, input: torch.Tensor - ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: - if self.medusa is not None: - return self.medusa(input) - - assert self.head is not None - logits = self.head(input) - return logits, None - - -class TensorParallelHead(SuperLayer): - def __init__(self, linear, process_group, should_gather: bool): - super().__init__(linear) - self.process_group = process_group - self.should_gather = should_gather - - @staticmethod - def load(config, prefix: str, weights): - if weights.process_group.size() > 1: - try: - weight = weights.get_sharded(f"{prefix}.weight", dim=0) - should_gather = True - except AssertionError: - # If the vocab size is not divisible by number of shards - # just load the entire thing. - weight = weights.get_tensor(f"{prefix}.weight") - should_gather = False - else: - weight = weights.get_tensor(f"{prefix}.weight") - should_gather = False - - # GPTQ,AWQ,EETQ don't quantize heads (nor embeddings) - if config.quantize in ["gptq", "awq", "eetq"]: - quantize = None - else: - quantize = config.quantize - return TensorParallelHead( - get_linear(weight, bias=None, quantize=quantize), - process_group=weights.process_group, - should_gather=should_gather, - ) - - def forward(self, input: torch.Tensor) -> torch.Tensor: - if not self.should_gather: - return super().forward(input) - - world_size = self.process_group.size() - if len(input.shape) == 2 and isinstance(self.linear, FastLinear): - out_dim = self.linear.weight.shape[0] - - if input.shape[0] == 1: - world_out = input.new_empty(1, out_dim * world_size) - local_out = input.new_empty(1, out_dim) - gather_input = local_out - else: - world_out = input.new_empty(out_dim * world_size, input.shape[0]) - gather_input = input.new_empty(out_dim, input.shape[0]) - local_out = gather_input.T - - torch.mm(input, self.linear.weight.T, out=local_out) - - torch.distributed.all_gather_into_tensor( - world_out, gather_input, group=self.process_group - ) - - if input.shape[0] == 1: - return world_out - return world_out.T - - output = super().forward(input) - world_output = [ - torch.empty_like(output) for _ in range(self.process_group.size()) - ] - torch.distributed.all_gather(world_output, output, group=self.process_group) - world_output = torch.cat(world_output, dim=-1) - return world_output - - -class TensorParallelColumnLinear(SuperLayer): - @classmethod - def load_gate_up(cls, config, prefix: str, weights, bias: bool): - """Specific method when the QKV was joined after the fact""" - weight = weights.get_weights_col_packed_gate_up( - prefix, quantize=config.quantize - ) - if bias: - raise NotImplementedError("packed_gate_up only implemented without bias") - else: - bias = None - linear = get_linear(weight, bias, config.quantize) - return cls(linear) - - @classmethod - def load_qkv(cls, config, prefix: str, weights, bias: bool): - """Specific method when the QKV was joined after the fact""" - weight = weights.get_weights_col_packed_qkv(prefix, quantize=config.quantize) - if bias: - raise NotImplementedError("packed_qkv only implemented for baichuan") - else: - bias = None - linear = get_linear(weight, bias, config.quantize) - return cls(linear) - - @classmethod - def load(cls, config, prefix: str, weights, bias: bool): - return cls.load_multi(config, [prefix], weights, bias, dim=0) - - @classmethod - def load_multi(cls, config, prefixes: List[str], weights, bias: bool, dim: int): - weight = weights.get_multi_weights_col( - prefixes, quantize=config.quantize, dim=dim - ) - - if bias: - b = [weights.get_sharded(f"{p}.bias", dim=0) for p in prefixes] - bias = torch.cat(b, dim=dim) - else: - bias = None - linear = get_linear(weight, bias, config.quantize) - return cls(linear) - - -class TensorParallelRowLinear(SuperLayer): - def __init__(self, linear, process_group): - super().__init__(linear) - self.process_group = process_group - - @classmethod - def load(cls, config, prefix: str, weights, bias: bool): - weight = weights.get_multi_weights_row(prefix, quantize=config.quantize) - - if bias and weights.process_group.rank() == 0: - # Rank is only on the first rank process - bias = weights.get_tensor(f"{prefix}.bias") - else: - bias = None - return cls( - get_linear(weight, bias, config.quantize), - process_group=weights.process_group, - ) - - def forward(self, input: torch.Tensor, reduce: bool = True) -> torch.Tensor: - out = super().forward(input) - if self.process_group.size() > 1 and reduce: - torch.distributed.all_reduce(out, group=self.process_group) - return out - - -class TensorParallelEmbedding(nn.Module): - def __init__(self, prefix: str, weights, reduce=True): - super().__init__() - weight = weights.get_partial_sharded(f"{prefix}.weight", dim=0) - num_embeddings = weights.get_shape(f"{prefix}.weight")[0] - - process_group = weights.process_group - - world_size = process_group.size() - rank = process_group.rank() - - block_size = (num_embeddings + world_size - 1) // world_size - self.min_id = rank * block_size - self.max_id = min(num_embeddings, (rank + 1) * block_size) - self.null_idx = weight.shape[ - 0 - ] # Usually block_size, might be less in non even vocab_size. - self.process_group = weights.process_group - self.reduce = reduce - - """Additional 0 entry used for masking""" - self.weight = nn.Parameter(F.pad(weight, (0, 0, 0, 1))) - - def forward(self, input: torch.Tensor) -> torch.Tensor: - # default all out of bounds values to `self.null_idx` that will then be mapped to 0 - # translate for [0, self.max_id - self.min_id[ - input = torch.where( - (self.min_id > input) | (input >= self.max_id), - self.null_idx, - input - self.min_id, - ) - out = torch.nn.functional.embedding(input, self.weight) - if self.reduce and self.process_group.size() > 1: - torch.distributed.all_reduce(out, group=self.process_group) - return out - - -try: - if IS_CUDA_SYSTEM: - import dropout_layer_norm - elif IS_ROCM_SYSTEM: - from vllm import layernorm_ops - else: - dropout_layer_norm = None - - class FastLayerNorm(nn.LayerNorm): - def forward(self, hidden_states, residual=None): - if IS_XPU_SYSTEM: - res_out = hidden_states - out = ipex.llm.functional.add_layer_norm( - residual, hidden_states, self.weight, self.bias, self.eps, True - ) - if residual is not None: - res_out = residual - return out, res_out - elif hidden_states.shape[-1] > 8192 or IS_ROCM_SYSTEM: - if residual is not None: - hidden_states += residual - residual = hidden_states - - return super(FastLayerNorm, self).forward(hidden_states), residual - else: - ( - normed_hidden_states, - residual, - *rest, - ) = dropout_layer_norm.dropout_add_ln_fwd( - hidden_states, - residual, - self.weight, - self.bias, - None, - None, - None, - None, - 0.0, - self.eps, - 1.0, - 0, - None, - False, - False, - ) - if residual is None: - residual = hidden_states - - return normed_hidden_states, residual - - class FastRMSNorm(nn.Module): - def __init__(self, weight: torch.Tensor, eps: float): - super().__init__() - - self.weight = nn.Parameter(weight) - self.variance_epsilon = eps - - @classmethod - def load(cls, prefix, weights, eps=1e-6): - weight = weights.get_tensor(f"{prefix}.weight") - return cls(weight, eps) - - def forward(self, hidden_states, residual=None): - if IS_XPU_SYSTEM: - residual_out = hidden_states - out = ipex.llm.functional.add_rms_norm( - residual, - hidden_states, - self.weight, - None, - self.variance_epsilon, - True, - ) - if residual is not None: - residual_out = residual - return out, residual_out - elif hidden_states.shape[-1] > 8192: - if residual is not None: - hidden_states += residual - residual = hidden_states - - hidden_states = hidden_states.to(torch.float32) - variance = hidden_states.pow(2).mean(-1, keepdim=True) - hidden_states = hidden_states * torch.rsqrt( - variance + self.variance_epsilon - ) - - # convert into half-precision if necessary - if self.weight.dtype in [torch.float16, torch.bfloat16]: - hidden_states = hidden_states.to(self.weight.dtype) - - return self.weight * hidden_states, residual - elif IS_CUDA_SYSTEM: - # faster post attention rms norm - ( - normed_hidden_states, - res, - *rest, - ) = dropout_layer_norm.dropout_add_ln_fwd( - hidden_states, - residual, - self.weight, - None, - None, - None, - None, - None, - 0.0, - self.variance_epsilon, - 1.0, - 0, - None, - False, - True, # Activate RMSNorm - ) - if res is None: - res = hidden_states - - return normed_hidden_states, res - elif IS_ROCM_SYSTEM: - # We use VLLM RMSNorm kernel that can be compiled for RoCm, instead of Flash Attention ones that can not. - if residual is not None: - hidden_states += residual - residual = hidden_states - - out = torch.empty_like(hidden_states) - layernorm_ops.rms_norm( - out, - hidden_states, - self.weight.data, - self.variance_epsilon, - ) - return out, residual - else: - raise ValueError( - "Your system seem to be not supported. Please check your install or open an issue at https://github.com/huggingface/text-generation-inference/issues with a clear reproduction." - ) - -except ImportError: - pass - -try: - if IS_CUDA_SYSTEM: - from flash_attn.layers.rotary import RotaryEmbedding - import rotary_emb - elif IS_ROCM_SYSTEM: - from vllm import pos_encoding_ops - - def _create_inv_freq(dim, base, device): - inv_freq = 1.0 / ( - base ** (torch.arange(0, dim, 2, device=device, dtype=torch.float32) / dim) - ) - return inv_freq - - def _get_rope_config(config): - if os.getenv("ROPE_SCALING", None) is not None: - rope_scaling = { - "type": os.environ["ROPE_SCALING"], - "factor": float(os.environ["ROPE_FACTOR"]), - } - return rope_scaling - return getattr(config, "rope_scaling", None) - - class PositionRotaryEmbedding(nn.Module): - def __init__(self, inv_freq, scaling_factor): - super().__init__() - self.inv_freq = inv_freq - self._seq_len_cached = 0 - self._cos_cached = None - self._sin_cached = None - self._cos_k_cached = None - self._sin_k_cached = None - self.scaling_factor = scaling_factor - self.dynamic_args = None - - def forward( - self, - query: torch.Tensor, - key: torch.Tensor, - cos: torch.Tensor, - sin: torch.Tensor, - ): - # Such controlflows may add some overhead. - if IS_CUDA_SYSTEM: - rotary_dim = cos.shape[-1] - q1 = query[..., :rotary_dim] - q2 = query[..., rotary_dim : 2 * rotary_dim] - - rotary_emb.apply_rotary(q1, q2, cos, sin, q1, q2, False) - - k1 = key[..., :rotary_dim] - k2 = key[..., rotary_dim : 2 * rotary_dim] - - rotary_emb.apply_rotary(k1, k2, cos, sin, k1, k2, False) - elif IS_ROCM_SYSTEM: - # NOTE: On RoCm systems, we use a ROPE implementatation adapted from VLLM which launches a single kernel for both query/key, contrary to flash-attn implementation used on NVIDIA systems. - # Compiling flash-attn rotary on RoCm, it appears hipcc is unable to unroll loops, resulting in an even slower inference compared to eager: https://github.com/pytorch/pytorch/issues/113773 - - head_size = query.shape[-1] - - # Inplace operation, updating query and key. - pos_encoding_ops.rotary_embedding(query, key, head_size, cos, sin, True) - elif IS_XPU_SYSTEM: - ipex.llm.functional.rotary_embedding( - query, key, sin, cos, query.size(-1), True - ) - else: - raise ValueError( - "Your system seem to be not supported. Please check your install or open an issue at https://github.com/huggingface/text-generation-inference/issues with a clear reproduction." - ) - - @classmethod - def static(cls, config, dim, base, device): - inv_freq = _create_inv_freq(dim, base, device) - scaling_factor = None - rope_scaling = _get_rope_config(config) - if rope_scaling is not None: - if rope_scaling["type"] == "linear": - pass - elif rope_scaling["type"] == "dynamic": - scaling_factor = rope_scaling["factor"] - return DynamicPositionRotaryEmbedding( - dim=dim, - max_position_embeddings=config.max_position_embeddings, - base=base, - device=inv_freq.device, - scaling_factor=scaling_factor, - ) - elif rope_scaling["type"] == "yarn": - scaling_factor = rope_scaling["factor"] - return YarnPositionRotaryEmbedding( - dim=2 * inv_freq.shape[0], - max_position_embeddings=rope_scaling[ - "original_max_position_embeddings" - ], - base=10000.0, - device=inv_freq.device, - scaling_factor=scaling_factor, - extrapolation_factor=1, - attn_factor=1, - beta_fast=32, - beta_slow=1, - ) - elif rope_scaling["type"] == "su": - short_factor = torch.tensor( - rope_scaling["short_factor"], dtype=torch.float32, device=device - ) - short_inv_freq = 1.0 / ( - short_factor - * base - ** ( - torch.arange(0, dim, 2, device=device, dtype=torch.float32) - / dim - ) - ) - long_factor = torch.tensor( - rope_scaling["long_factor"], dtype=torch.float32, device=device - ) - long_inv_freq = 1.0 / ( - long_factor - * base - ** ( - torch.arange(0, dim, 2, device=device, dtype=torch.float32) - / dim - ) - ) - - original_max_position_embeddings = ( - config.original_max_position_embeddings - ) - max_position_embeddings = config.max_position_embeddings - if max_position_embeddings <= original_max_position_embeddings: - scaling_factor = 1.0 - else: - scale = ( - max_position_embeddings / original_max_position_embeddings - ) - scaling_factor = math.sqrt( - 1 - + math.log(scale) - / math.log(original_max_position_embeddings) - ) - - return SuRotaryEmbedding( - short_inv_freq=short_inv_freq, - long_inv_freq=long_inv_freq, - scaling_factor=scaling_factor, - original_max_position_embeddings=original_max_position_embeddings, - ) - else: - raise NotImplementedError( - f"rope scaling type {rope_scaling['type']} is not implemented or invalid" - ) - return cls(inv_freq, scaling_factor) - - @classmethod - def load(cls, config, prefix, weights): - # XXX: Always load this in float32 ! - dtype = weights.dtype - weights.dtype = torch.float32 - inv_freq = weights.get_tensor(f"{prefix}.inv_freq") - weights.dtype = dtype - - scaling_factor = None - rope_scaling = _get_rope_config(config) - if rope_scaling is not None: - scaling_factor = rope_scaling["factor"] - if rope_scaling["type"] == "linear": - pass - elif rope_scaling["type"] == "dynamic": - return DynamicPositionRotaryEmbedding( - dim=2 * inv_freq.shape[0], - max_position_embeddings=config.max_position_embeddings, - base=10000.0, - device=inv_freq.device, - scaling_factor=scaling_factor, - ) - elif rope_scaling["type"] == "yarn": - return YarnPositionRotaryEmbedding( - dim=2 * inv_freq.shape[0], - max_position_embeddings=rope_scaling[ - "original_max_position_embeddings" - ], - base=10000.0, - device=inv_freq.device, - scaling_factor=scaling_factor, - extrapolation_factor=1, - attn_factor=1, - beta_fast=32, - beta_slow=1, - ) - else: - raise NotImplementedError( - f"rope scaling type {rope_scaling['type']} is not implemented or invalid" - ) - return cls(inv_freq, scaling_factor) - - def _update_cos_sin_cache(self, dtype, device, seqlen): - # Reset the tables if the sequence length has changed, - # or if we're on a new device (possibly due to tracing for instance) - if ( - seqlen > self._seq_len_cached - or self._cos_cached.device != device - or self._cos_cached.dtype != dtype - ): - self._seq_len_cached = seqlen - t = torch.arange(seqlen, device=device, dtype=self.inv_freq.dtype) - if self.scaling_factor is not None: - t /= self.scaling_factor - # Don't do einsum, it converts fp32 to fp16 - # freqs = torch.einsum("i,j->ij", t, self.inv_freq) - - freqs = torch.outer(t, self.inv_freq.to(device=t.device)) - self._cos_cached = torch.cos(freqs).to(dtype) - self._sin_cached = torch.sin(freqs).to(dtype) - - def get_cos_sin( - self, position_ids: torch.Tensor, max_s: int, dtype: torch.dtype - ): - """ - Return cos and sin for the asked position ids - """ - if IS_ROCM_SYSTEM: - # For RoCm, we always use float cos/sin to avoid a cast. - # For NVIDIA, for some reason, the flash-attn rotary kernel requires cos/sin and query/key to be of same dtype: https://github.com/Dao-AILab/flash-attention/blob/017716451d446e464dde9aca3a3c1ed2209caaa9/csrc/rotary/rotary.cpp#L26 - # But later on goes and cast cos/sin to float anyway: https://github.com/Dao-AILab/flash-attention/blob/017716451d446e464dde9aca3a3c1ed2209caaa9/csrc/rotary/rotary_cuda.cu#L29, which looks suboptimal. - dtype = torch.float32 - - self._update_cos_sin_cache(dtype, position_ids.device, max_s) - - cos = torch.index_select(self._cos_cached, 0, position_ids) - sin = torch.index_select(self._sin_cached, 0, position_ids) - - # Note: this unsqueeze is not necessary on RoCm + VLLM ROPE implementation, but we leave it as is to avoid yet an other controlflow. - return cos.unsqueeze(1), sin.unsqueeze(1) - - class SuRotaryEmbedding(PositionRotaryEmbedding): - def __init__( - self, - short_inv_freq, - long_inv_freq, - scaling_factor, - original_max_position_embeddings, - ): - super(PositionRotaryEmbedding, self).__init__() - self.short_inv_freq = short_inv_freq - self.long_inv_freq = long_inv_freq - self.scaling_factor = scaling_factor - self.original_max_position_embeddings = original_max_position_embeddings - self._seq_len_cached = 0 - self._cos_cached = None - self._sin_cached = None - self._cos_k_cached = None - self._sin_k_cached = None - self.dynamic_args = None - - def _update_cos_sin_cache(self, dtype, device, seqlen): - # Reset the tables if the sequence length has changed, - # or if we're on a new device (possibly due to tracing for instance) - if ( - seqlen > self._seq_len_cached - or self._cos_cached.device != device - or self._cos_cached.dtype != dtype - ): - self._seq_len_cached = seqlen - if seqlen > self.original_max_position_embeddings: - inv_freq = self.long_inv_freq - else: - inv_freq = self.short_inv_freq - t = torch.arange(seqlen, device=device, dtype=inv_freq.dtype) - if self.scaling_factor is not None: - t /= self.scaling_factor - # Don't do einsum, it converts fp32 to fp16 - # freqs = torch.einsum("i,j->ij", t, self.inv_freq) - - freqs = torch.outer(t, inv_freq.to(device=t.device)) - self._cos_cached = torch.cos(freqs).to(dtype) - self._sin_cached = torch.sin(freqs).to(dtype) - - class DynamicPositionRotaryEmbedding(PositionRotaryEmbedding): - def __init__(self, dim, max_position_embeddings, base, device, scaling_factor): - inv_freq = _create_inv_freq(dim, base, device) - super().__init__(inv_freq, scaling_factor) - self.dim = dim - self.max_position_embeddings = max_position_embeddings - self.base = base - - def _update_cos_sin_cache(self, dtype, device, seqlen): - # Reset the tables if the sequence length has changed, - # or if we're on a new device (possibly due to tracing for instance) - if ( - seqlen > self._seq_len_cached - or self._cos_cached.device != device - or self._cos_cached.dtype != dtype - ): - if seqlen > self.max_position_embeddings: - newbase = self.base * ( - (self.scaling_factor * seqlen / self.max_position_embeddings) - - (self.scaling_factor - 1) - ) ** (self.dim / (self.dim - 2)) - self.inv_freq = _create_inv_freq( - self.dim, newbase, self.inv_freq.device - ) - self._seq_len_cached = seqlen - t = torch.arange(seqlen, device=device, dtype=self.inv_freq.dtype) - # Don't do einsum, it converts fp32 to fp16 - # freqs = torch.einsum("i,j->ij", t, self.inv_freq) - - freqs = torch.outer(t, self.inv_freq.to(device=t.device)) - self._cos_cached = torch.cos(freqs).to(dtype) - self._sin_cached = torch.sin(freqs).to(dtype) - - # Inverse dim formula to find dim based on number of rotations - import math - - def find_correction_dim( - num_rotations, dim, base=10000, max_position_embeddings=2048 - ): - return ( - dim * math.log(max_position_embeddings / (num_rotations * 2 * math.pi)) - ) / (2 * math.log(base)) - - # Find dim range bounds based on rotations - def find_correction_range( - low_rot, high_rot, dim, base=10000, max_position_embeddings=2048 - ): - low = math.floor( - find_correction_dim(low_rot, dim, base, max_position_embeddings) - ) - high = math.ceil( - find_correction_dim(high_rot, dim, base, max_position_embeddings) - ) - return max(low, 0), min(high, dim - 1) # Clamp values just in case - - def linear_ramp_mask(min, max, dim): - if min == max: - max += 0.001 # Prevent singularity - - linear_func = (torch.arange(dim, dtype=torch.float32) - min) / (max - min) - ramp_func = torch.clamp(linear_func, 0, 1) - return ramp_func - - def get_mscale(scale=1): - if scale <= 1: - return 1.0 - return 0.1 * math.log(scale) + 1.0 - - class YarnPositionRotaryEmbedding(PositionRotaryEmbedding): - def __init__( - self, - dim, - max_position_embeddings, - base, - device, - scaling_factor, - *, - extrapolation_factor, - attn_factor, - beta_fast, - beta_slow, - ): - inv_freq = _create_inv_freq(dim, base, device) - super().__init__(inv_freq, scaling_factor) - self.dim = dim - self.max_position_embeddings = max_position_embeddings - self.base = base - self.extrapolation_factor = extrapolation_factor - self.attn_factor = attn_factor - self.beta_fast = beta_fast - self.beta_slow = beta_slow - self.mscale = float( - get_mscale(self.scaling_factor) * self.attn_factor - ) # Get n-d magnitude scaling corrected for interpolation - - def _update_cos_sin_cache(self, dtype, device, seqlen): - # Reset the tables if the sequence length has changed, - # or if we're on a new device (possibly due to tracing for instance) - if ( - seqlen > self._seq_len_cached - or self._cos_cached.device != device - or self._cos_cached.dtype != dtype - ): - if seqlen > self.max_position_embeddings: - inv_freq_extrapolation = _create_inv_freq( - self.dim, self.base, self.inv_freq.device - ) - freqs = 1.0 / inv_freq_extrapolation - inv_freq_interpolation = 1.0 / (self.scaling_factor * freqs) - low, high = find_correction_range( - self.beta_fast, - self.beta_slow, - self.dim, - self.base, - self.max_position_embeddings, - ) - inv_freq_mask = ( - 1 - - linear_ramp_mask(low, high, self.dim // 2).float().to(device) - ) * self.extrapolation_factor # Get n-d rotational scaling corrected for extrapolation - inv_freq = ( - inv_freq_interpolation * (1 - inv_freq_mask) - + inv_freq_extrapolation * inv_freq_mask - ) - - self.inv_freq = inv_freq - self.mscale = float( - get_mscale(self.scaling_factor) * self.attn_factor - ) # Get n-d magnitude scaling corrected for interpolation - - self._seq_len_cached = seqlen - t = torch.arange(seqlen, device=device, dtype=self.inv_freq.dtype) - # Don't do einsum, it converts fp32 to fp16 - # freqs = torch.einsum("i,j->ij", t, self.inv_freq) - - freqs = torch.outer(t, self.inv_freq.to(device=t.device)) - self._cos_cached = (torch.cos(freqs) * self.mscale).to(dtype) - self._sin_cached = (torch.sin(freqs) * self.mscale).to(dtype) - -except ImportError: - pass diff --git a/server/text_generation_server/utils/paged_attention.py b/server/text_generation_server/utils/paged_attention.py index 62c0c893..1b31f7e7 100644 --- a/server/text_generation_server/utils/paged_attention.py +++ b/server/text_generation_server/utils/paged_attention.py @@ -1,13 +1,9 @@ import torch -from text_generation_server.utils.import_utils import ( - IS_CUDA_SYSTEM, - IS_ROCM_SYSTEM, - IS_XPU_SYSTEM, -) +from text_generation_server.utils.import_utils import SYSTEM _PARTITION_SIZE = 512 -if IS_XPU_SYSTEM: +if SYSTEM == "xpu": import intel_extension_for_pytorch as ipex @@ -18,17 +14,17 @@ def reshape_and_cache( value_cache: torch.Tensor, slots: torch.Tensor, ): - if IS_CUDA_SYSTEM: + if SYSTEM == "cuda": from vllm._C import cache_ops cache_ops.reshape_and_cache( key, value, key_cache, value_cache, slots, "auto", 1.0 ) - elif IS_ROCM_SYSTEM: + elif SYSTEM == "rocm": from vllm import cache_ops cache_ops.reshape_and_cache(key, value, key_cache, value_cache, slots) - elif IS_XPU_SYSTEM: + elif SYSTEM == "xpu": ipex.llm.modules.PagedAttention.reshape_and_cache( key, value, key_cache, value_cache, slots ) @@ -68,7 +64,7 @@ def attention( block_size = value_cache.shape[3] num_seqs, num_heads, head_size = query.shape max_num_partitions = (max_s + _PARTITION_SIZE - 1) // _PARTITION_SIZE - if IS_XPU_SYSTEM: + if SYSTEM == "xpu": query = query.contiguous() return ipex.llm.modules.PagedAttention.single_query_cached_kv_attention( out, @@ -91,7 +87,7 @@ def attention( # to parallelize. use_v1 = max_s <= 8192 and (max_num_partitions == 1 or num_seqs * num_heads > 512) if use_v1: - if IS_CUDA_SYSTEM: + if SYSTEM == "cuda": from vllm._C import ops ops.paged_attention_v1( @@ -109,7 +105,7 @@ def attention( "auto", 1.0, ) - elif IS_ROCM_SYSTEM: + elif SYSTEM == "rocm": from vllm import attention_ops attention_ops.paged_attention_v1( @@ -143,7 +139,7 @@ def attention( ) max_logits = torch.empty_like(exp_sums) - if IS_CUDA_SYSTEM: + if SYSTEM == "cuda": from vllm._C import ops ops.paged_attention_v2( @@ -164,7 +160,7 @@ def attention( "auto", 1.0, ) - elif IS_ROCM_SYSTEM: + elif SYSTEM == "rocm": from vllm import attention_ops attention_ops.paged_attention_v2( diff --git a/server/text_generation_server/utils/weights.py b/server/text_generation_server/utils/weights.py index da7aed1a..6af7d3fb 100644 --- a/server/text_generation_server/utils/weights.py +++ b/server/text_generation_server/utils/weights.py @@ -171,7 +171,7 @@ class Weights: log_once( logger.info, "Converting AWQ model to Exllama/GPTQ packing format." ) - from text_generation_server.utils.awq.conversion_utils import ( + from text_generation_server.layers.awq.conversion_utils import ( fast_awq_to_gptq, ) @@ -227,7 +227,7 @@ class Weights: bits, groupsize, desc_act, quant_method = self._get_gptq_params() - from text_generation_server.utils.layers import HAS_EXLLAMA + from text_generation_server.layers.gptq import HAS_EXLLAMA use_exllama = ( bits == 4 and HAS_EXLLAMA and quantize == "gptq" and not desc_act @@ -242,7 +242,7 @@ class Weights: log_once( logger.info, "Converting AWQ model to Exllama/GPTQ packing format." ) - from text_generation_server.utils.awq.conversion_utils import ( + from text_generation_server.layers.awq.conversion_utils import ( fast_awq_to_gptq, ) @@ -321,7 +321,7 @@ class Weights: # it would require to reorder input activations that are split unto several GPUs use_exllama = False - from text_generation_server.utils.layers import HAS_EXLLAMA, CAN_EXLLAMA + from text_generation_server.layers.gptq import HAS_EXLLAMA, CAN_EXLLAMA if use_exllama: if not HAS_EXLLAMA: @@ -348,7 +348,7 @@ class Weights: log_once( logger.info, "Converting AWQ model to Exllama/GPTQ packing format." ) - from text_generation_server.utils.awq.conversion_utils import ( + from text_generation_server.layers.awq.conversion_utils import ( fast_awq_to_gptq, ) From d348d2b28feeaab7a8f6bd44cc8924b6b4ae7868 Mon Sep 17 00:00:00 2001 From: Nicolas Patry Date: Mon, 13 May 2024 13:46:29 +0200 Subject: [PATCH 74/74] Granite support? (#1882) # What does this PR do? Fixes # (issue) ## Before submitting - [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case). - [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests), Pull Request section? - [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link to it if that's the case. - [ ] Did you make sure to update the documentation with your changes? Here are the [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation). - [ ] Did you write any new necessary tests? ## Who can review? Anyone in the community is free to review the PR once the tests have passed. Feel free to tag members/contributors who may be interested in your PR. --- server/poetry.lock | 502 +++++++++--------- server/requirements_cuda.txt | 8 +- server/requirements_rocm.txt | 8 +- .../custom_modeling/flash_llama_modeling.py | 57 +- 4 files changed, 276 insertions(+), 299 deletions(-) diff --git a/server/poetry.lock b/server/poetry.lock index 3a554af0..684713f8 100644 --- a/server/poetry.lock +++ b/server/poetry.lock @@ -642,69 +642,61 @@ testing = ["protobuf (>=4.21.9)"] [[package]] name = "grpcio" -version = "1.62.2" +version = "1.63.0" description = "HTTP/2-based RPC framework" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "grpcio-1.62.2-cp310-cp310-linux_armv7l.whl", hash = "sha256:66344ea741124c38588a664237ac2fa16dfd226964cca23ddc96bd4accccbde5"}, - {file = "grpcio-1.62.2-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:5dab7ac2c1e7cb6179c6bfad6b63174851102cbe0682294e6b1d6f0981ad7138"}, - {file = "grpcio-1.62.2-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:3ad00f3f0718894749d5a8bb0fa125a7980a2f49523731a9b1fabf2b3522aa43"}, - {file = "grpcio-1.62.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e72ddfee62430ea80133d2cbe788e0d06b12f865765cb24a40009668bd8ea05"}, - {file = "grpcio-1.62.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53d3a59a10af4c2558a8e563aed9f256259d2992ae0d3037817b2155f0341de1"}, - {file = "grpcio-1.62.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a1511a303f8074f67af4119275b4f954189e8313541da7b88b1b3a71425cdb10"}, - {file = "grpcio-1.62.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b94d41b7412ef149743fbc3178e59d95228a7064c5ab4760ae82b562bdffb199"}, - {file = "grpcio-1.62.2-cp310-cp310-win32.whl", hash = "sha256:a75af2fc7cb1fe25785be7bed1ab18cef959a376cdae7c6870184307614caa3f"}, - {file = "grpcio-1.62.2-cp310-cp310-win_amd64.whl", hash = "sha256:80407bc007754f108dc2061e37480238b0dc1952c855e86a4fc283501ee6bb5d"}, - {file = "grpcio-1.62.2-cp311-cp311-linux_armv7l.whl", hash = "sha256:c1624aa686d4b36790ed1c2e2306cc3498778dffaf7b8dd47066cf819028c3ad"}, - {file = "grpcio-1.62.2-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:1c1bb80299bdef33309dff03932264636450c8fdb142ea39f47e06a7153d3063"}, - {file = "grpcio-1.62.2-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:db068bbc9b1fa16479a82e1ecf172a93874540cb84be69f0b9cb9b7ac3c82670"}, - {file = "grpcio-1.62.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2cc8a308780edbe2c4913d6a49dbdb5befacdf72d489a368566be44cadaef1a"}, - {file = "grpcio-1.62.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0695ae31a89f1a8fc8256050329a91a9995b549a88619263a594ca31b76d756"}, - {file = "grpcio-1.62.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:88b4f9ee77191dcdd8810241e89340a12cbe050be3e0d5f2f091c15571cd3930"}, - {file = "grpcio-1.62.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2a0204532aa2f1afd467024b02b4069246320405bc18abec7babab03e2644e75"}, - {file = "grpcio-1.62.2-cp311-cp311-win32.whl", hash = "sha256:6e784f60e575a0de554ef9251cbc2ceb8790914fe324f11e28450047f264ee6f"}, - {file = "grpcio-1.62.2-cp311-cp311-win_amd64.whl", hash = "sha256:112eaa7865dd9e6d7c0556c8b04ae3c3a2dc35d62ad3373ab7f6a562d8199200"}, - {file = "grpcio-1.62.2-cp312-cp312-linux_armv7l.whl", hash = "sha256:65034473fc09628a02fb85f26e73885cf1ed39ebd9cf270247b38689ff5942c5"}, - {file = "grpcio-1.62.2-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:d2c1771d0ee3cf72d69bb5e82c6a82f27fbd504c8c782575eddb7839729fbaad"}, - {file = "grpcio-1.62.2-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:3abe6838196da518863b5d549938ce3159d809218936851b395b09cad9b5d64a"}, - {file = "grpcio-1.62.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5ffeb269f10cedb4f33142b89a061acda9f672fd1357331dbfd043422c94e9e"}, - {file = "grpcio-1.62.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404d3b4b6b142b99ba1cff0b2177d26b623101ea2ce51c25ef6e53d9d0d87bcc"}, - {file = "grpcio-1.62.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:262cda97efdabb20853d3b5a4c546a535347c14b64c017f628ca0cc7fa780cc6"}, - {file = "grpcio-1.62.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17708db5b11b966373e21519c4c73e5a750555f02fde82276ea2a267077c68ad"}, - {file = "grpcio-1.62.2-cp312-cp312-win32.whl", hash = "sha256:b7ec9e2f8ffc8436f6b642a10019fc513722858f295f7efc28de135d336ac189"}, - {file = "grpcio-1.62.2-cp312-cp312-win_amd64.whl", hash = "sha256:aa787b83a3cd5e482e5c79be030e2b4a122ecc6c5c6c4c42a023a2b581fdf17b"}, - {file = "grpcio-1.62.2-cp37-cp37m-linux_armv7l.whl", hash = "sha256:cfd23ad29bfa13fd4188433b0e250f84ec2c8ba66b14a9877e8bce05b524cf54"}, - {file = "grpcio-1.62.2-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:af15e9efa4d776dfcecd1d083f3ccfb04f876d613e90ef8432432efbeeac689d"}, - {file = "grpcio-1.62.2-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:f4aa94361bb5141a45ca9187464ae81a92a2a135ce2800b2203134f7a1a1d479"}, - {file = "grpcio-1.62.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82af3613a219512a28ee5c95578eb38d44dd03bca02fd918aa05603c41018051"}, - {file = "grpcio-1.62.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55ddaf53474e8caeb29eb03e3202f9d827ad3110475a21245f3c7712022882a9"}, - {file = "grpcio-1.62.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c79b518c56dddeec79e5500a53d8a4db90da995dfe1738c3ac57fe46348be049"}, - {file = "grpcio-1.62.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a5eb4844e5e60bf2c446ef38c5b40d7752c6effdee882f716eb57ae87255d20a"}, - {file = "grpcio-1.62.2-cp37-cp37m-win_amd64.whl", hash = "sha256:aaae70364a2d1fb238afd6cc9fcb10442b66e397fd559d3f0968d28cc3ac929c"}, - {file = "grpcio-1.62.2-cp38-cp38-linux_armv7l.whl", hash = "sha256:1bcfe5070e4406f489e39325b76caeadab28c32bf9252d3ae960c79935a4cc36"}, - {file = "grpcio-1.62.2-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:da6a7b6b938c15fa0f0568e482efaae9c3af31963eec2da4ff13a6d8ec2888e4"}, - {file = "grpcio-1.62.2-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:41955b641c34db7d84db8d306937b72bc4968eef1c401bea73081a8d6c3d8033"}, - {file = "grpcio-1.62.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c772f225483905f675cb36a025969eef9712f4698364ecd3a63093760deea1bc"}, - {file = "grpcio-1.62.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07ce1f775d37ca18c7a141300e5b71539690efa1f51fe17f812ca85b5e73262f"}, - {file = "grpcio-1.62.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:26f415f40f4a93579fd648f48dca1c13dfacdfd0290f4a30f9b9aeb745026811"}, - {file = "grpcio-1.62.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:db707e3685ff16fc1eccad68527d072ac8bdd2e390f6daa97bc394ea7de4acea"}, - {file = "grpcio-1.62.2-cp38-cp38-win32.whl", hash = "sha256:589ea8e75de5fd6df387de53af6c9189c5231e212b9aa306b6b0d4f07520fbb9"}, - {file = "grpcio-1.62.2-cp38-cp38-win_amd64.whl", hash = "sha256:3c3ed41f4d7a3aabf0f01ecc70d6b5d00ce1800d4af652a549de3f7cf35c4abd"}, - {file = "grpcio-1.62.2-cp39-cp39-linux_armv7l.whl", hash = "sha256:162ccf61499c893831b8437120600290a99c0bc1ce7b51f2c8d21ec87ff6af8b"}, - {file = "grpcio-1.62.2-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:f27246d7da7d7e3bd8612f63785a7b0c39a244cf14b8dd9dd2f2fab939f2d7f1"}, - {file = "grpcio-1.62.2-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:2507006c8a478f19e99b6fe36a2464696b89d40d88f34e4b709abe57e1337467"}, - {file = "grpcio-1.62.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a90ac47a8ce934e2c8d71e317d2f9e7e6aaceb2d199de940ce2c2eb611b8c0f4"}, - {file = "grpcio-1.62.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99701979bcaaa7de8d5f60476487c5df8f27483624f1f7e300ff4669ee44d1f2"}, - {file = "grpcio-1.62.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:af7dc3f7a44f10863b1b0ecab4078f0a00f561aae1edbd01fd03ad4dcf61c9e9"}, - {file = "grpcio-1.62.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fa63245271920786f4cb44dcada4983a3516be8f470924528cf658731864c14b"}, - {file = "grpcio-1.62.2-cp39-cp39-win32.whl", hash = "sha256:c6ad9c39704256ed91a1cffc1379d63f7d0278d6a0bad06b0330f5d30291e3a3"}, - {file = "grpcio-1.62.2-cp39-cp39-win_amd64.whl", hash = "sha256:16da954692fd61aa4941fbeda405a756cd96b97b5d95ca58a92547bba2c1624f"}, - {file = "grpcio-1.62.2.tar.gz", hash = "sha256:c77618071d96b7a8be2c10701a98537823b9c65ba256c0b9067e0594cdbd954d"}, + {file = "grpcio-1.63.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:2e93aca840c29d4ab5db93f94ed0a0ca899e241f2e8aec6334ab3575dc46125c"}, + {file = "grpcio-1.63.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:91b73d3f1340fefa1e1716c8c1ec9930c676d6b10a3513ab6c26004cb02d8b3f"}, + {file = "grpcio-1.63.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:b3afbd9d6827fa6f475a4f91db55e441113f6d3eb9b7ebb8fb806e5bb6d6bd0d"}, + {file = "grpcio-1.63.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f3f6883ce54a7a5f47db43289a0a4c776487912de1a0e2cc83fdaec9685cc9f"}, + {file = "grpcio-1.63.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf8dae9cc0412cb86c8de5a8f3be395c5119a370f3ce2e69c8b7d46bb9872c8d"}, + {file = "grpcio-1.63.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:08e1559fd3b3b4468486b26b0af64a3904a8dbc78d8d936af9c1cf9636eb3e8b"}, + {file = "grpcio-1.63.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5c039ef01516039fa39da8a8a43a95b64e288f79f42a17e6c2904a02a319b357"}, + {file = "grpcio-1.63.0-cp310-cp310-win32.whl", hash = "sha256:ad2ac8903b2eae071055a927ef74121ed52d69468e91d9bcbd028bd0e554be6d"}, + {file = "grpcio-1.63.0-cp310-cp310-win_amd64.whl", hash = "sha256:b2e44f59316716532a993ca2966636df6fbe7be4ab6f099de6815570ebe4383a"}, + {file = "grpcio-1.63.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:f28f8b2db7b86c77916829d64ab21ff49a9d8289ea1564a2b2a3a8ed9ffcccd3"}, + {file = "grpcio-1.63.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:65bf975639a1f93bee63ca60d2e4951f1b543f498d581869922910a476ead2f5"}, + {file = "grpcio-1.63.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:b5194775fec7dc3dbd6a935102bb156cd2c35efe1685b0a46c67b927c74f0cfb"}, + {file = "grpcio-1.63.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4cbb2100ee46d024c45920d16e888ee5d3cf47c66e316210bc236d5bebc42b3"}, + {file = "grpcio-1.63.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ff737cf29b5b801619f10e59b581869e32f400159e8b12d7a97e7e3bdeee6a2"}, + {file = "grpcio-1.63.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cd1e68776262dd44dedd7381b1a0ad09d9930ffb405f737d64f505eb7f77d6c7"}, + {file = "grpcio-1.63.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:93f45f27f516548e23e4ec3fbab21b060416007dbe768a111fc4611464cc773f"}, + {file = "grpcio-1.63.0-cp311-cp311-win32.whl", hash = "sha256:878b1d88d0137df60e6b09b74cdb73db123f9579232c8456f53e9abc4f62eb3c"}, + {file = "grpcio-1.63.0-cp311-cp311-win_amd64.whl", hash = "sha256:756fed02dacd24e8f488f295a913f250b56b98fb793f41d5b2de6c44fb762434"}, + {file = "grpcio-1.63.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:93a46794cc96c3a674cdfb59ef9ce84d46185fe9421baf2268ccb556f8f81f57"}, + {file = "grpcio-1.63.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a7b19dfc74d0be7032ca1eda0ed545e582ee46cd65c162f9e9fc6b26ef827dc6"}, + {file = "grpcio-1.63.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:8064d986d3a64ba21e498b9a376cbc5d6ab2e8ab0e288d39f266f0fca169b90d"}, + {file = "grpcio-1.63.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:219bb1848cd2c90348c79ed0a6b0ea51866bc7e72fa6e205e459fedab5770172"}, + {file = "grpcio-1.63.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2d60cd1d58817bc5985fae6168d8b5655c4981d448d0f5b6194bbcc038090d2"}, + {file = "grpcio-1.63.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:9e350cb096e5c67832e9b6e018cf8a0d2a53b2a958f6251615173165269a91b0"}, + {file = "grpcio-1.63.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:56cdf96ff82e3cc90dbe8bac260352993f23e8e256e063c327b6cf9c88daf7a9"}, + {file = "grpcio-1.63.0-cp312-cp312-win32.whl", hash = "sha256:3a6d1f9ea965e750db7b4ee6f9fdef5fdf135abe8a249e75d84b0a3e0c668a1b"}, + {file = "grpcio-1.63.0-cp312-cp312-win_amd64.whl", hash = "sha256:d2497769895bb03efe3187fb1888fc20e98a5f18b3d14b606167dacda5789434"}, + {file = "grpcio-1.63.0-cp38-cp38-linux_armv7l.whl", hash = "sha256:fdf348ae69c6ff484402cfdb14e18c1b0054ac2420079d575c53a60b9b2853ae"}, + {file = "grpcio-1.63.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a3abfe0b0f6798dedd2e9e92e881d9acd0fdb62ae27dcbbfa7654a57e24060c0"}, + {file = "grpcio-1.63.0-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:6ef0ad92873672a2a3767cb827b64741c363ebaa27e7f21659e4e31f4d750280"}, + {file = "grpcio-1.63.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b416252ac5588d9dfb8a30a191451adbf534e9ce5f56bb02cd193f12d8845b7f"}, + {file = "grpcio-1.63.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3b77eaefc74d7eb861d3ffbdf91b50a1bb1639514ebe764c47773b833fa2d91"}, + {file = "grpcio-1.63.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b005292369d9c1f80bf70c1db1c17c6c342da7576f1c689e8eee4fb0c256af85"}, + {file = "grpcio-1.63.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cdcda1156dcc41e042d1e899ba1f5c2e9f3cd7625b3d6ebfa619806a4c1aadda"}, + {file = "grpcio-1.63.0-cp38-cp38-win32.whl", hash = "sha256:01799e8649f9e94ba7db1aeb3452188048b0019dc37696b0f5ce212c87c560c3"}, + {file = "grpcio-1.63.0-cp38-cp38-win_amd64.whl", hash = "sha256:6a1a3642d76f887aa4009d92f71eb37809abceb3b7b5a1eec9c554a246f20e3a"}, + {file = "grpcio-1.63.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:75f701ff645858a2b16bc8c9fc68af215a8bb2d5a9b647448129de6e85d52bce"}, + {file = "grpcio-1.63.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cacdef0348a08e475a721967f48206a2254a1b26ee7637638d9e081761a5ba86"}, + {file = "grpcio-1.63.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:0697563d1d84d6985e40ec5ec596ff41b52abb3fd91ec240e8cb44a63b895094"}, + {file = "grpcio-1.63.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6426e1fb92d006e47476d42b8f240c1d916a6d4423c5258ccc5b105e43438f61"}, + {file = "grpcio-1.63.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e48cee31bc5f5a31fb2f3b573764bd563aaa5472342860edcc7039525b53e46a"}, + {file = "grpcio-1.63.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:50344663068041b34a992c19c600236e7abb42d6ec32567916b87b4c8b8833b3"}, + {file = "grpcio-1.63.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:259e11932230d70ef24a21b9fb5bb947eb4703f57865a404054400ee92f42f5d"}, + {file = "grpcio-1.63.0-cp39-cp39-win32.whl", hash = "sha256:a44624aad77bf8ca198c55af811fd28f2b3eaf0a50ec5b57b06c034416ef2d0a"}, + {file = "grpcio-1.63.0-cp39-cp39-win_amd64.whl", hash = "sha256:166e5c460e5d7d4656ff9e63b13e1f6029b122104c1633d5f37eaea348d7356d"}, + {file = "grpcio-1.63.0.tar.gz", hash = "sha256:f3023e14805c61bc439fb40ca545ac3d5740ce66120a678a3c6c2c55b70343d1"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.62.2)"] +protobuf = ["grpcio-tools (>=1.63.0)"] [[package]] name = "grpcio-reflection" @@ -959,13 +951,13 @@ files = [ [[package]] name = "jinja2" -version = "3.1.3" +version = "3.1.4" description = "A very fast and expressive template engine." optional = true python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -976,24 +968,24 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "joblib" -version = "1.4.0" +version = "1.4.2" description = "Lightweight pipelining with Python functions" optional = true python-versions = ">=3.8" files = [ - {file = "joblib-1.4.0-py3-none-any.whl", hash = "sha256:42942470d4062537be4d54c83511186da1fc14ba354961a2114da91efa9a4ed7"}, - {file = "joblib-1.4.0.tar.gz", hash = "sha256:1eb0dc091919cd384490de890cb5dfd538410a6d4b3b54eef09fb8c50b409b1c"}, + {file = "joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6"}, + {file = "joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e"}, ] [[package]] name = "jsonschema" -version = "4.21.1" +version = "4.22.0" description = "An implementation of JSON Schema validation for Python" optional = true python-versions = ">=3.8" files = [ - {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, - {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, + {file = "jsonschema-4.22.0-py3-none-any.whl", hash = "sha256:ff4cfd6b1367a40e7bc6411caec72effadd3db0bbe5017de188f2d6108335802"}, + {file = "jsonschema-4.22.0.tar.gz", hash = "sha256:5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7"}, ] [package.dependencies] @@ -2307,13 +2299,13 @@ files = [ [[package]] name = "referencing" -version = "0.35.0" +version = "0.35.1" description = "JSON Referencing + Python" optional = true python-versions = ">=3.8" files = [ - {file = "referencing-0.35.0-py3-none-any.whl", hash = "sha256:8080727b30e364e5783152903672df9b6b091c926a146a759080b62ca3126cd6"}, - {file = "referencing-0.35.0.tar.gz", hash = "sha256:191e936b0c696d0af17ad7430a3dc68e88bc11be6514f4757dc890f04ab05889"}, + {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, + {file = "referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c"}, ] [package.dependencies] @@ -2322,90 +2314,90 @@ rpds-py = ">=0.7.0" [[package]] name = "regex" -version = "2024.4.28" +version = "2024.5.10" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" files = [ - {file = "regex-2024.4.28-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd196d056b40af073d95a2879678585f0b74ad35190fac04ca67954c582c6b61"}, - {file = "regex-2024.4.28-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8bb381f777351bd534462f63e1c6afb10a7caa9fa2a421ae22c26e796fe31b1f"}, - {file = "regex-2024.4.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:47af45b6153522733aa6e92543938e97a70ce0900649ba626cf5aad290b737b6"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99d6a550425cc51c656331af0e2b1651e90eaaa23fb4acde577cf15068e2e20f"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bf29304a8011feb58913c382902fde3395957a47645bf848eea695839aa101b7"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:92da587eee39a52c91aebea8b850e4e4f095fe5928d415cb7ed656b3460ae79a"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6277d426e2f31bdbacb377d17a7475e32b2d7d1f02faaecc48d8e370c6a3ff31"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28e1f28d07220c0f3da0e8fcd5a115bbb53f8b55cecf9bec0c946eb9a059a94c"}, - {file = "regex-2024.4.28-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:aaa179975a64790c1f2701ac562b5eeb733946eeb036b5bcca05c8d928a62f10"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6f435946b7bf7a1b438b4e6b149b947c837cb23c704e780c19ba3e6855dbbdd3"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:19d6c11bf35a6ad077eb23852827f91c804eeb71ecb85db4ee1386825b9dc4db"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:fdae0120cddc839eb8e3c15faa8ad541cc6d906d3eb24d82fb041cfe2807bc1e"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e672cf9caaf669053121f1766d659a8813bd547edef6e009205378faf45c67b8"}, - {file = "regex-2024.4.28-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f57515750d07e14743db55d59759893fdb21d2668f39e549a7d6cad5d70f9fea"}, - {file = "regex-2024.4.28-cp310-cp310-win32.whl", hash = "sha256:a1409c4eccb6981c7baabc8888d3550df518add6e06fe74fa1d9312c1838652d"}, - {file = "regex-2024.4.28-cp310-cp310-win_amd64.whl", hash = "sha256:1f687a28640f763f23f8a9801fe9e1b37338bb1ca5d564ddd41619458f1f22d1"}, - {file = "regex-2024.4.28-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:84077821c85f222362b72fdc44f7a3a13587a013a45cf14534df1cbbdc9a6796"}, - {file = "regex-2024.4.28-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b45d4503de8f4f3dc02f1d28a9b039e5504a02cc18906cfe744c11def942e9eb"}, - {file = "regex-2024.4.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:457c2cd5a646dd4ed536c92b535d73548fb8e216ebee602aa9f48e068fc393f3"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b51739ddfd013c6f657b55a508de8b9ea78b56d22b236052c3a85a675102dc6"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:459226445c7d7454981c4c0ce0ad1a72e1e751c3e417f305722bbcee6697e06a"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:670fa596984b08a4a769491cbdf22350431970d0112e03d7e4eeaecaafcd0fec"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe00f4fe11c8a521b173e6324d862ee7ee3412bf7107570c9b564fe1119b56fb"}, - {file = "regex-2024.4.28-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:36f392dc7763fe7924575475736bddf9ab9f7a66b920932d0ea50c2ded2f5636"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:23a412b7b1a7063f81a742463f38821097b6a37ce1e5b89dd8e871d14dbfd86b"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f1d6e4b7b2ae3a6a9df53efbf199e4bfcff0959dbdb5fd9ced34d4407348e39a"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:499334ad139557de97cbc4347ee921c0e2b5e9c0f009859e74f3f77918339257"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:0940038bec2fe9e26b203d636c44d31dd8766abc1fe66262da6484bd82461ccf"}, - {file = "regex-2024.4.28-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:66372c2a01782c5fe8e04bff4a2a0121a9897e19223d9eab30c54c50b2ebeb7f"}, - {file = "regex-2024.4.28-cp311-cp311-win32.whl", hash = "sha256:c77d10ec3c1cf328b2f501ca32583625987ea0f23a0c2a49b37a39ee5c4c4630"}, - {file = "regex-2024.4.28-cp311-cp311-win_amd64.whl", hash = "sha256:fc0916c4295c64d6890a46e02d4482bb5ccf33bf1a824c0eaa9e83b148291f90"}, - {file = "regex-2024.4.28-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:08a1749f04fee2811c7617fdd46d2e46d09106fa8f475c884b65c01326eb15c5"}, - {file = "regex-2024.4.28-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b8eb28995771c087a73338f695a08c9abfdf723d185e57b97f6175c5051ff1ae"}, - {file = "regex-2024.4.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dd7ef715ccb8040954d44cfeff17e6b8e9f79c8019daae2fd30a8806ef5435c0"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb0315a2b26fde4005a7c401707c5352df274460f2f85b209cf6024271373013"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f2fc053228a6bd3a17a9b0a3f15c3ab3cf95727b00557e92e1cfe094b88cc662"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7fe9739a686dc44733d52d6e4f7b9c77b285e49edf8570754b322bca6b85b4cc"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74fcf77d979364f9b69fcf8200849ca29a374973dc193a7317698aa37d8b01c"}, - {file = "regex-2024.4.28-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:965fd0cf4694d76f6564896b422724ec7b959ef927a7cb187fc6b3f4e4f59833"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2fef0b38c34ae675fcbb1b5db760d40c3fc3612cfa186e9e50df5782cac02bcd"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bc365ce25f6c7c5ed70e4bc674f9137f52b7dd6a125037f9132a7be52b8a252f"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:ac69b394764bb857429b031d29d9604842bc4cbfd964d764b1af1868eeebc4f0"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:144a1fc54765f5c5c36d6d4b073299832aa1ec6a746a6452c3ee7b46b3d3b11d"}, - {file = "regex-2024.4.28-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2630ca4e152c221072fd4a56d4622b5ada876f668ecd24d5ab62544ae6793ed6"}, - {file = "regex-2024.4.28-cp312-cp312-win32.whl", hash = "sha256:7f3502f03b4da52bbe8ba962621daa846f38489cae5c4a7b5d738f15f6443d17"}, - {file = "regex-2024.4.28-cp312-cp312-win_amd64.whl", hash = "sha256:0dd3f69098511e71880fb00f5815db9ed0ef62c05775395968299cb400aeab82"}, - {file = "regex-2024.4.28-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:374f690e1dd0dbdcddea4a5c9bdd97632cf656c69113f7cd6a361f2a67221cb6"}, - {file = "regex-2024.4.28-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f87ae6b96374db20f180eab083aafe419b194e96e4f282c40191e71980c666"}, - {file = "regex-2024.4.28-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5dbc1bcc7413eebe5f18196e22804a3be1bfdfc7e2afd415e12c068624d48247"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f85151ec5a232335f1be022b09fbbe459042ea1951d8a48fef251223fc67eee1"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:57ba112e5530530fd175ed550373eb263db4ca98b5f00694d73b18b9a02e7185"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:224803b74aab56aa7be313f92a8d9911dcade37e5f167db62a738d0c85fdac4b"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a54a047b607fd2d2d52a05e6ad294602f1e0dec2291152b745870afc47c1397"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a2a512d623f1f2d01d881513af9fc6a7c46e5cfffb7dc50c38ce959f9246c94"}, - {file = "regex-2024.4.28-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c06bf3f38f0707592898428636cbb75d0a846651b053a1cf748763e3063a6925"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1031a5e7b048ee371ab3653aad3030ecfad6ee9ecdc85f0242c57751a05b0ac4"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d7a353ebfa7154c871a35caca7bfd8f9e18666829a1dc187115b80e35a29393e"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:7e76b9cfbf5ced1aca15a0e5b6f229344d9b3123439ffce552b11faab0114a02"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:5ce479ecc068bc2a74cb98dd8dba99e070d1b2f4a8371a7dfe631f85db70fe6e"}, - {file = "regex-2024.4.28-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:7d77b6f63f806578c604dca209280e4c54f0fa9a8128bb8d2cc5fb6f99da4150"}, - {file = "regex-2024.4.28-cp38-cp38-win32.whl", hash = "sha256:d84308f097d7a513359757c69707ad339da799e53b7393819ec2ea36bc4beb58"}, - {file = "regex-2024.4.28-cp38-cp38-win_amd64.whl", hash = "sha256:2cc1b87bba1dd1a898e664a31012725e48af826bf3971e786c53e32e02adae6c"}, - {file = "regex-2024.4.28-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7413167c507a768eafb5424413c5b2f515c606be5bb4ef8c5dee43925aa5718b"}, - {file = "regex-2024.4.28-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:108e2dcf0b53a7c4ab8986842a8edcb8ab2e59919a74ff51c296772e8e74d0ae"}, - {file = "regex-2024.4.28-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f1c5742c31ba7d72f2dedf7968998730664b45e38827637e0f04a2ac7de2f5f1"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecc6148228c9ae25ce403eade13a0961de1cb016bdb35c6eafd8e7b87ad028b1"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7d893c8cf0e2429b823ef1a1d360a25950ed11f0e2a9df2b5198821832e1947"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4290035b169578ffbbfa50d904d26bec16a94526071ebec3dadbebf67a26b25e"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44a22ae1cfd82e4ffa2066eb3390777dc79468f866f0625261a93e44cdf6482b"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd24fd140b69f0b0bcc9165c397e9b2e89ecbeda83303abf2a072609f60239e2"}, - {file = "regex-2024.4.28-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:39fb166d2196413bead229cd64a2ffd6ec78ebab83fff7d2701103cf9f4dfd26"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9301cc6db4d83d2c0719f7fcda37229691745168bf6ae849bea2e85fc769175d"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7c3d389e8d76a49923683123730c33e9553063d9041658f23897f0b396b2386f"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:99ef6289b62042500d581170d06e17f5353b111a15aa6b25b05b91c6886df8fc"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:b91d529b47798c016d4b4c1d06cc826ac40d196da54f0de3c519f5a297c5076a"}, - {file = "regex-2024.4.28-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:43548ad74ea50456e1c68d3c67fff3de64c6edb85bcd511d1136f9b5376fc9d1"}, - {file = "regex-2024.4.28-cp39-cp39-win32.whl", hash = "sha256:05d9b6578a22db7dedb4df81451f360395828b04f4513980b6bd7a1412c679cc"}, - {file = "regex-2024.4.28-cp39-cp39-win_amd64.whl", hash = "sha256:3986217ec830c2109875be740531feb8ddafe0dfa49767cdcd072ed7e8927962"}, - {file = "regex-2024.4.28.tar.gz", hash = "sha256:83ab366777ea45d58f72593adf35d36ca911ea8bd838483c1823b883a121b0e4"}, + {file = "regex-2024.5.10-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:eda3dd46df535da787ffb9036b5140f941ecb91701717df91c9daf64cabef953"}, + {file = "regex-2024.5.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1d5bd666466c8f00a06886ce1397ba8b12371c1f1c6d1bef11013e9e0a1464a8"}, + {file = "regex-2024.5.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:32e5f3b8e32918bfbdd12eca62e49ab3031125c454b507127ad6ecbd86e62fca"}, + {file = "regex-2024.5.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:534efd2653ebc4f26fc0e47234e53bf0cb4715bb61f98c64d2774a278b58c846"}, + {file = "regex-2024.5.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:193b7c6834a06f722f0ce1ba685efe80881de7c3de31415513862f601097648c"}, + {file = "regex-2024.5.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:160ba087232c5c6e2a1e7ad08bd3a3f49b58c815be0504d8c8aacfb064491cd8"}, + {file = "regex-2024.5.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:951be1eae7b47660412dc4938777a975ebc41936d64e28081bf2e584b47ec246"}, + {file = "regex-2024.5.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8a0f0ab5453e409586b11ebe91c672040bc804ca98d03a656825f7890cbdf88"}, + {file = "regex-2024.5.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9e6d4d6ae1827b2f8c7200aaf7501c37cf3f3896c86a6aaf2566448397c823dd"}, + {file = "regex-2024.5.10-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:161a206c8f3511e2f5fafc9142a2cc25d7fe9a1ec5ad9b4ad2496a7c33e1c5d2"}, + {file = "regex-2024.5.10-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:44b3267cea873684af022822195298501568ed44d542f9a2d9bebc0212e99069"}, + {file = "regex-2024.5.10-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:560278c9975694e1f0bc50da187abf2cdc1e4890739ea33df2bc4a85eeef143e"}, + {file = "regex-2024.5.10-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:70364a097437dd0a90b31cd77f09f7387ad9ac60ef57590971f43b7fca3082a5"}, + {file = "regex-2024.5.10-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:42be5de7cc8c1edac55db92d82b68dc8e683b204d6f5414c5a51997a323d7081"}, + {file = "regex-2024.5.10-cp310-cp310-win32.whl", hash = "sha256:9a8625849387b9d558d528e263ecc9c0fbde86cfa5c2f0eef43fff480ae24d71"}, + {file = "regex-2024.5.10-cp310-cp310-win_amd64.whl", hash = "sha256:903350bf44d7e4116b4d5898b30b15755d61dcd3161e3413a49c7db76f0bee5a"}, + {file = "regex-2024.5.10-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bf9596cba92ce7b1fd32c7b07c6e3212c7eed0edc271757e48bfcd2b54646452"}, + {file = "regex-2024.5.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:45cc13d398b6359a7708986386f72bd156ae781c3e83a68a6d4cee5af04b1ce9"}, + {file = "regex-2024.5.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ad45f3bccfcb00868f2871dce02a755529838d2b86163ab8a246115e80cfb7d6"}, + {file = "regex-2024.5.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33d19f0cde6838c81acffff25c7708e4adc7dd02896c9ec25c3939b1500a1778"}, + {file = "regex-2024.5.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0a9f89d7db5ef6bdf53e5cc8e6199a493d0f1374b3171796b464a74ebe8e508a"}, + {file = "regex-2024.5.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c6c71cf92b09e5faa72ea2c68aa1f61c9ce11cb66fdc5069d712f4392ddfd00"}, + {file = "regex-2024.5.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7467ad8b0eac0b28e52679e972b9b234b3de0ea5cee12eb50091d2b68145fe36"}, + {file = "regex-2024.5.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc0db93ad039fc2fe32ccd3dd0e0e70c4f3d6e37ae83f0a487e1aba939bd2fbd"}, + {file = "regex-2024.5.10-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fa9335674d7c819674467c7b46154196c51efbaf5f5715187fd366814ba3fa39"}, + {file = "regex-2024.5.10-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7dda3091838206969c2b286f9832dff41e2da545b99d1cfaea9ebd8584d02708"}, + {file = "regex-2024.5.10-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:504b5116e2bd1821efd815941edff7535e93372a098e156bb9dffde30264e798"}, + {file = "regex-2024.5.10-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:91b53dea84415e8115506cc62e441a2b54537359c63d856d73cb1abe05af4c9a"}, + {file = "regex-2024.5.10-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1a3903128f9e17a500618e80c68165c78c741ebb17dd1a0b44575f92c3c68b02"}, + {file = "regex-2024.5.10-cp311-cp311-win32.whl", hash = "sha256:236cace6c1903effd647ed46ce6dd5d76d54985fc36dafc5256032886736c85d"}, + {file = "regex-2024.5.10-cp311-cp311-win_amd64.whl", hash = "sha256:12446827f43c7881decf2c126762e11425de5eb93b3b0d8b581344c16db7047a"}, + {file = "regex-2024.5.10-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:14905ed75c7a6edf423eb46c213ed3f4507c38115f1ed3c00f4ec9eafba50e58"}, + {file = "regex-2024.5.10-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4fad420b14ae1970a1f322e8ae84a1d9d89375eb71e1b504060ab2d1bfe68f3c"}, + {file = "regex-2024.5.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c46a76a599fcbf95f98755275c5527304cc4f1bb69919434c1e15544d7052910"}, + {file = "regex-2024.5.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0faecb6d5779753a6066a3c7a0471a8d29fe25d9981ca9e552d6d1b8f8b6a594"}, + {file = "regex-2024.5.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aab65121229c2ecdf4a31b793d99a6a0501225bd39b616e653c87b219ed34a49"}, + {file = "regex-2024.5.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:50e7e96a527488334379e05755b210b7da4a60fc5d6481938c1fa053e0c92184"}, + {file = "regex-2024.5.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba034c8db4b264ef1601eb33cd23d87c5013b8fb48b8161debe2e5d3bd9156b0"}, + {file = "regex-2024.5.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:031219782d97550c2098d9a68ce9e9eaefe67d2d81d8ff84c8354f9c009e720c"}, + {file = "regex-2024.5.10-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62b5f7910b639f3c1d122d408421317c351e213ca39c964ad4121f27916631c6"}, + {file = "regex-2024.5.10-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:cd832bd9b6120d6074f39bdfbb3c80e416848b07ac72910f1c7f03131a6debc3"}, + {file = "regex-2024.5.10-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:e91b1976358e17197157b405cab408a5f4e33310cda211c49fc6da7cffd0b2f0"}, + {file = "regex-2024.5.10-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:571452362d552de508c37191b6abbbb660028b8b418e2d68c20779e0bc8eaaa8"}, + {file = "regex-2024.5.10-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5253dcb0bfda7214523de58b002eb0090cb530d7c55993ce5f6d17faf953ece7"}, + {file = "regex-2024.5.10-cp312-cp312-win32.whl", hash = "sha256:2f30a5ab8902f93930dc6f627c4dd5da2703333287081c85cace0fc6e21c25af"}, + {file = "regex-2024.5.10-cp312-cp312-win_amd64.whl", hash = "sha256:3799e36d60a35162bb35b2246d8bb012192b7437dff807ef79c14e7352706306"}, + {file = "regex-2024.5.10-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bbdc5db2c98ac2bf1971ffa1410c87ca7a15800415f788971e8ba8520fc0fda9"}, + {file = "regex-2024.5.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6ccdeef4584450b6f0bddd5135354908dacad95425fcb629fe36d13e48b60f32"}, + {file = "regex-2024.5.10-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:29d839829209f3c53f004e1de8c3113efce6d98029f044fa5cfee666253ee7e6"}, + {file = "regex-2024.5.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0709ba544cf50bd5cb843df4b8bb6701bae2b70a8e88da9add8386cbca5c1385"}, + {file = "regex-2024.5.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:972b49f2fe1047b9249c958ec4fa1bdd2cf8ce305dc19d27546d5a38e57732d8"}, + {file = "regex-2024.5.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9cdbb1998da94607d5eec02566b9586f0e70d6438abf1b690261aac0edda7ab6"}, + {file = "regex-2024.5.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf7c8ee4861d9ef5b1120abb75846828c811f932d63311596ad25fa168053e00"}, + {file = "regex-2024.5.10-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d35d4cc9270944e95f9c88af757b0c9fc43f396917e143a5756608462c5223b"}, + {file = "regex-2024.5.10-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8722f72068b3e1156a4b2e1afde6810f1fc67155a9fa30a4b9d5b4bc46f18fb0"}, + {file = "regex-2024.5.10-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:696639a73ca78a380acfaa0a1f6dd8220616a99074c05bba9ba8bb916914b224"}, + {file = "regex-2024.5.10-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea057306ab469130167014b662643cfaed84651c792948891d003cf0039223a5"}, + {file = "regex-2024.5.10-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:b43b78f9386d3d932a6ce5af4b45f393d2e93693ee18dc4800d30a8909df700e"}, + {file = "regex-2024.5.10-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c43395a3b7cc9862801a65c6994678484f186ce13c929abab44fb8a9e473a55a"}, + {file = "regex-2024.5.10-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0bc94873ba11e34837bffd7e5006703abeffc4514e2f482022f46ce05bd25e67"}, + {file = "regex-2024.5.10-cp38-cp38-win32.whl", hash = "sha256:1118ba9def608250250f4b3e3f48c62f4562ba16ca58ede491b6e7554bfa09ff"}, + {file = "regex-2024.5.10-cp38-cp38-win_amd64.whl", hash = "sha256:458d68d34fb74b906709735c927c029e62f7d06437a98af1b5b6258025223210"}, + {file = "regex-2024.5.10-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:15e593386ec6331e0ab4ac0795b7593f02ab2f4b30a698beb89fbdc34f92386a"}, + {file = "regex-2024.5.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ca23b41355ba95929e9505ee04e55495726aa2282003ed9b012d86f857d3e49b"}, + {file = "regex-2024.5.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2c8982ee19ccecabbaeac1ba687bfef085a6352a8c64f821ce2f43e6d76a9298"}, + {file = "regex-2024.5.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7117cb7d6ac7f2e985f3d18aa8a1728864097da1a677ffa69e970ca215baebf1"}, + {file = "regex-2024.5.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b66421f8878a0c82fc0c272a43e2121c8d4c67cb37429b764f0d5ad70b82993b"}, + {file = "regex-2024.5.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:224a9269f133564109ce668213ef3cb32bc72ccf040b0b51c72a50e569e9dc9e"}, + {file = "regex-2024.5.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab98016541543692a37905871a5ffca59b16e08aacc3d7d10a27297b443f572d"}, + {file = "regex-2024.5.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:51d27844763c273a122e08a3e86e7aefa54ee09fb672d96a645ece0454d8425e"}, + {file = "regex-2024.5.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:853cc36e756ff673bf984e9044ccc8fad60b95a748915dddeab9488aea974c73"}, + {file = "regex-2024.5.10-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4e7eaf9df15423d07b6050fb91f86c66307171b95ea53e2d87a7993b6d02c7f7"}, + {file = "regex-2024.5.10-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:169fd0acd7a259f58f417e492e93d0e15fc87592cd1e971c8c533ad5703b5830"}, + {file = "regex-2024.5.10-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:334b79ce9c08f26b4659a53f42892793948a613c46f1b583e985fd5a6bf1c149"}, + {file = "regex-2024.5.10-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:f03b1dbd4d9596dd84955bb40f7d885204d6aac0d56a919bb1e0ff2fb7e1735a"}, + {file = "regex-2024.5.10-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfa6d61a76c77610ba9274c1a90a453062bdf6887858afbe214d18ad41cf6bde"}, + {file = "regex-2024.5.10-cp39-cp39-win32.whl", hash = "sha256:249fbcee0a277c32a3ce36d8e36d50c27c968fdf969e0fbe342658d4e010fbc8"}, + {file = "regex-2024.5.10-cp39-cp39-win_amd64.whl", hash = "sha256:0ce56a923f4c01d7568811bfdffe156268c0a7aae8a94c902b92fe34c4bde785"}, + {file = "regex-2024.5.10.tar.gz", hash = "sha256:304e7e2418146ae4d0ef0e9ffa28f881f7874b45b4994cc2279b21b6e7ae50c8"}, ] [[package]] @@ -2431,110 +2423,110 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "rpds-py" -version = "0.18.0" +version = "0.18.1" description = "Python bindings to Rust's persistent data structures (rpds)" optional = true python-versions = ">=3.8" files = [ - {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, - {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1"}, - {file = "rpds_py-0.18.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e"}, - {file = "rpds_py-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88"}, - {file = "rpds_py-0.18.0-cp310-none-win32.whl", hash = "sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337"}, - {file = "rpds_py-0.18.0-cp310-none-win_amd64.whl", hash = "sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4"}, - {file = "rpds_py-0.18.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5"}, - {file = "rpds_py-0.18.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b"}, - {file = "rpds_py-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836"}, - {file = "rpds_py-0.18.0-cp311-none-win32.whl", hash = "sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1"}, - {file = "rpds_py-0.18.0-cp311-none-win_amd64.whl", hash = "sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0"}, - {file = "rpds_py-0.18.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3"}, - {file = "rpds_py-0.18.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f"}, - {file = "rpds_py-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7"}, - {file = "rpds_py-0.18.0-cp312-none-win32.whl", hash = "sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98"}, - {file = "rpds_py-0.18.0-cp312-none-win_amd64.whl", hash = "sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e"}, - {file = "rpds_py-0.18.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d"}, - {file = "rpds_py-0.18.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c"}, - {file = "rpds_py-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594"}, - {file = "rpds_py-0.18.0-cp38-none-win32.whl", hash = "sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e"}, - {file = "rpds_py-0.18.0-cp38-none-win_amd64.whl", hash = "sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33"}, - {file = "rpds_py-0.18.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9"}, - {file = "rpds_py-0.18.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024"}, - {file = "rpds_py-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20"}, - {file = "rpds_py-0.18.0-cp39-none-win32.whl", hash = "sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7"}, - {file = "rpds_py-0.18.0-cp39-none-win_amd64.whl", hash = "sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984"}, - {file = "rpds_py-0.18.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da"}, - {file = "rpds_py-0.18.0-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432"}, - {file = "rpds_py-0.18.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f"}, - {file = "rpds_py-0.18.0.tar.gz", hash = "sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d"}, + {file = "rpds_py-0.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:d31dea506d718693b6b2cffc0648a8929bdc51c70a311b2770f09611caa10d53"}, + {file = "rpds_py-0.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:732672fbc449bab754e0b15356c077cc31566df874964d4801ab14f71951ea80"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a98a1f0552b5f227a3d6422dbd61bc6f30db170939bd87ed14f3c339aa6c7c9"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f1944ce16401aad1e3f7d312247b3d5de7981f634dc9dfe90da72b87d37887d"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38e14fb4e370885c4ecd734f093a2225ee52dc384b86fa55fe3f74638b2cfb09"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08d74b184f9ab6289b87b19fe6a6d1a97fbfea84b8a3e745e87a5de3029bf944"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d70129cef4a8d979caa37e7fe957202e7eee8ea02c5e16455bc9808a59c6b2f0"}, + {file = "rpds_py-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ce0bb20e3a11bd04461324a6a798af34d503f8d6f1aa3d2aa8901ceaf039176d"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:81c5196a790032e0fc2464c0b4ab95f8610f96f1f2fa3d4deacce6a79852da60"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:f3027be483868c99b4985fda802a57a67fdf30c5d9a50338d9db646d590198da"}, + {file = "rpds_py-0.18.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d44607f98caa2961bab4fa3c4309724b185b464cdc3ba6f3d7340bac3ec97cc1"}, + {file = "rpds_py-0.18.1-cp310-none-win32.whl", hash = "sha256:c273e795e7a0f1fddd46e1e3cb8be15634c29ae8ff31c196debb620e1edb9333"}, + {file = "rpds_py-0.18.1-cp310-none-win_amd64.whl", hash = "sha256:8352f48d511de5f973e4f2f9412736d7dea76c69faa6d36bcf885b50c758ab9a"}, + {file = "rpds_py-0.18.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6b5ff7e1d63a8281654b5e2896d7f08799378e594f09cf3674e832ecaf396ce8"}, + {file = "rpds_py-0.18.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8927638a4d4137a289e41d0fd631551e89fa346d6dbcfc31ad627557d03ceb6d"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:154bf5c93d79558b44e5b50cc354aa0459e518e83677791e6adb0b039b7aa6a7"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07f2139741e5deb2c5154a7b9629bc5aa48c766b643c1a6750d16f865a82c5fc"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8c7672e9fba7425f79019db9945b16e308ed8bc89348c23d955c8c0540da0a07"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:489bdfe1abd0406eba6b3bb4fdc87c7fa40f1031de073d0cfb744634cc8fa261"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c20f05e8e3d4fc76875fc9cb8cf24b90a63f5a1b4c5b9273f0e8225e169b100"}, + {file = "rpds_py-0.18.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:967342e045564cef76dfcf1edb700b1e20838d83b1aa02ab313e6a497cf923b8"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2cc7c1a47f3a63282ab0f422d90ddac4aa3034e39fc66a559ab93041e6505da7"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f7afbfee1157e0f9376c00bb232e80a60e59ed716e3211a80cb8506550671e6e"}, + {file = "rpds_py-0.18.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9e6934d70dc50f9f8ea47081ceafdec09245fd9f6032669c3b45705dea096b88"}, + {file = "rpds_py-0.18.1-cp311-none-win32.whl", hash = "sha256:c69882964516dc143083d3795cb508e806b09fc3800fd0d4cddc1df6c36e76bb"}, + {file = "rpds_py-0.18.1-cp311-none-win_amd64.whl", hash = "sha256:70a838f7754483bcdc830444952fd89645569e7452e3226de4a613a4c1793fb2"}, + {file = "rpds_py-0.18.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3dd3cd86e1db5aadd334e011eba4e29d37a104b403e8ca24dcd6703c68ca55b3"}, + {file = "rpds_py-0.18.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:05f3d615099bd9b13ecf2fc9cf2d839ad3f20239c678f461c753e93755d629ee"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35b2b771b13eee8729a5049c976197ff58a27a3829c018a04341bcf1ae409b2b"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ee17cd26b97d537af8f33635ef38be873073d516fd425e80559f4585a7b90c43"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b646bf655b135ccf4522ed43d6902af37d3f5dbcf0da66c769a2b3938b9d8184"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19ba472b9606c36716062c023afa2484d1e4220548751bda14f725a7de17b4f6"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e30ac5e329098903262dc5bdd7e2086e0256aa762cc8b744f9e7bf2a427d3f8"}, + {file = "rpds_py-0.18.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d58ad6317d188c43750cb76e9deacf6051d0f884d87dc6518e0280438648a9ac"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e1735502458621921cee039c47318cb90b51d532c2766593be6207eec53e5c4c"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f5bab211605d91db0e2995a17b5c6ee5edec1270e46223e513eaa20da20076ac"}, + {file = "rpds_py-0.18.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2fc24a329a717f9e2448f8cd1f960f9dac4e45b6224d60734edeb67499bab03a"}, + {file = "rpds_py-0.18.1-cp312-none-win32.whl", hash = "sha256:1805d5901779662d599d0e2e4159d8a82c0b05faa86ef9222bf974572286b2b6"}, + {file = "rpds_py-0.18.1-cp312-none-win_amd64.whl", hash = "sha256:720edcb916df872d80f80a1cc5ea9058300b97721efda8651efcd938a9c70a72"}, + {file = "rpds_py-0.18.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:c827576e2fa017a081346dce87d532a5310241648eb3700af9a571a6e9fc7e74"}, + {file = "rpds_py-0.18.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:aa3679e751408d75a0b4d8d26d6647b6d9326f5e35c00a7ccd82b78ef64f65f8"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0abeee75434e2ee2d142d650d1e54ac1f8b01e6e6abdde8ffd6eeac6e9c38e20"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed402d6153c5d519a0faf1bb69898e97fb31613b49da27a84a13935ea9164dfc"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:338dee44b0cef8b70fd2ef54b4e09bb1b97fc6c3a58fea5db6cc083fd9fc2724"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7750569d9526199c5b97e5a9f8d96a13300950d910cf04a861d96f4273d5b104"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:607345bd5912aacc0c5a63d45a1f73fef29e697884f7e861094e443187c02be5"}, + {file = "rpds_py-0.18.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:207c82978115baa1fd8d706d720b4a4d2b0913df1c78c85ba73fe6c5804505f0"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:6d1e42d2735d437e7e80bab4d78eb2e459af48c0a46e686ea35f690b93db792d"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5463c47c08630007dc0fe99fb480ea4f34a89712410592380425a9b4e1611d8e"}, + {file = "rpds_py-0.18.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:06d218939e1bf2ca50e6b0ec700ffe755e5216a8230ab3e87c059ebb4ea06afc"}, + {file = "rpds_py-0.18.1-cp38-none-win32.whl", hash = "sha256:312fe69b4fe1ffbe76520a7676b1e5ac06ddf7826d764cc10265c3b53f96dbe9"}, + {file = "rpds_py-0.18.1-cp38-none-win_amd64.whl", hash = "sha256:9437ca26784120a279f3137ee080b0e717012c42921eb07861b412340f85bae2"}, + {file = "rpds_py-0.18.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:19e515b78c3fc1039dd7da0a33c28c3154458f947f4dc198d3c72db2b6b5dc93"}, + {file = "rpds_py-0.18.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a7b28c5b066bca9a4eb4e2f2663012debe680f097979d880657f00e1c30875a0"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:673fdbbf668dd958eff750e500495ef3f611e2ecc209464f661bc82e9838991e"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d960de62227635d2e61068f42a6cb6aae91a7fe00fca0e3aeed17667c8a34611"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:352a88dc7892f1da66b6027af06a2e7e5d53fe05924cc2cfc56495b586a10b72"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e0ee01ad8260184db21468a6e1c37afa0529acc12c3a697ee498d3c2c4dcaf3"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4c39ad2f512b4041343ea3c7894339e4ca7839ac38ca83d68a832fc8b3748ab"}, + {file = "rpds_py-0.18.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aaa71ee43a703c321906813bb252f69524f02aa05bf4eec85f0c41d5d62d0f4c"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6cd8098517c64a85e790657e7b1e509b9fe07487fd358e19431cb120f7d96338"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:4adec039b8e2928983f885c53b7cc4cda8965b62b6596501a0308d2703f8af1b"}, + {file = "rpds_py-0.18.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32b7daaa3e9389db3695964ce8e566e3413b0c43e3394c05e4b243a4cd7bef26"}, + {file = "rpds_py-0.18.1-cp39-none-win32.whl", hash = "sha256:2625f03b105328729f9450c8badda34d5243231eef6535f80064d57035738360"}, + {file = "rpds_py-0.18.1-cp39-none-win_amd64.whl", hash = "sha256:bf18932d0003c8c4d51a39f244231986ab23ee057d235a12b2684ea26a353590"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cbfbea39ba64f5e53ae2915de36f130588bba71245b418060ec3330ebf85678e"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:a3d456ff2a6a4d2adcdf3c1c960a36f4fd2fec6e3b4902a42a384d17cf4e7a65"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7700936ef9d006b7ef605dc53aa364da2de5a3aa65516a1f3ce73bf82ecfc7ae"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:51584acc5916212e1bf45edd17f3a6b05fe0cbb40482d25e619f824dccb679de"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:942695a206a58d2575033ff1e42b12b2aece98d6003c6bc739fbf33d1773b12f"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b906b5f58892813e5ba5c6056d6a5ad08f358ba49f046d910ad992196ea61397"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6f8e3fecca256fefc91bb6765a693d96692459d7d4c644660a9fff32e517843"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7732770412bab81c5a9f6d20aeb60ae943a9b36dcd990d876a773526468e7163"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:bd1105b50ede37461c1d51b9698c4f4be6e13e69a908ab7751e3807985fc0346"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:618916f5535784960f3ecf8111581f4ad31d347c3de66d02e728de460a46303c"}, + {file = "rpds_py-0.18.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:17c6d2155e2423f7e79e3bb18151c686d40db42d8645e7977442170c360194d4"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:6c4c4c3f878df21faf5fac86eda32671c27889e13570645a9eea0a1abdd50922"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:fab6ce90574645a0d6c58890e9bcaac8d94dff54fb51c69e5522a7358b80ab64"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:531796fb842b53f2695e94dc338929e9f9dbf473b64710c28af5a160b2a8927d"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:740884bc62a5e2bbb31e584f5d23b32320fd75d79f916f15a788d527a5e83644"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:998125738de0158f088aef3cb264a34251908dd2e5d9966774fdab7402edfab7"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2be6e9dd4111d5b31ba3b74d17da54a8319d8168890fbaea4b9e5c3de630ae5"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0cee71bc618cd93716f3c1bf56653740d2d13ddbd47673efa8bf41435a60daa"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2c3caec4ec5cd1d18e5dd6ae5194d24ed12785212a90b37f5f7f06b8bedd7139"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:27bba383e8c5231cd559affe169ca0b96ec78d39909ffd817f28b166d7ddd4d8"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:a888e8bdb45916234b99da2d859566f1e8a1d2275a801bb8e4a9644e3c7e7909"}, + {file = "rpds_py-0.18.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6031b25fb1b06327b43d841f33842b383beba399884f8228a6bb3df3088485ff"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48c2faaa8adfacefcbfdb5f2e2e7bdad081e5ace8d182e5f4ade971f128e6bb3"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:d85164315bd68c0806768dc6bb0429c6f95c354f87485ee3593c4f6b14def2bd"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6afd80f6c79893cfc0574956f78a0add8c76e3696f2d6a15bca2c66c415cf2d4"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa242ac1ff583e4ec7771141606aafc92b361cd90a05c30d93e343a0c2d82a89"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21be4770ff4e08698e1e8e0bce06edb6ea0626e7c8f560bc08222880aca6a6f"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c45a639e93a0c5d4b788b2613bd637468edd62f8f95ebc6fcc303d58ab3f0a8"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910e71711d1055b2768181efa0a17537b2622afeb0424116619817007f8a2b10"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b9bb1f182a97880f6078283b3505a707057c42bf55d8fca604f70dedfdc0772a"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1d54f74f40b1f7aaa595a02ff42ef38ca654b1469bef7d52867da474243cc633"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:8d2e182c9ee01135e11e9676e9a62dfad791a7a467738f06726872374a83db49"}, + {file = "rpds_py-0.18.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:636a15acc588f70fda1661234761f9ed9ad79ebed3f2125d44be0862708b666e"}, + {file = "rpds_py-0.18.1.tar.gz", hash = "sha256:dc48b479d540770c811fbd1eb9ba2bb66951863e448efec2e2c102625328e92f"}, ] [[package]] @@ -3004,13 +2996,13 @@ optree = ["optree (>=0.9.1)"] [[package]] name = "tqdm" -version = "4.66.2" +version = "4.66.4" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.2-py3-none-any.whl", hash = "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"}, - {file = "tqdm-4.66.2.tar.gz", hash = "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"}, + {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, + {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, ] [package.dependencies] @@ -3024,13 +3016,13 @@ telegram = ["requests"] [[package]] name = "transformers" -version = "4.40.1" +version = "4.40.2" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" optional = false python-versions = ">=3.8.0" files = [ - {file = "transformers-4.40.1-py3-none-any.whl", hash = "sha256:9d5ee0c8142a60501faf9e49a0b42f8e9cb8611823bce4f195a9325a6816337e"}, - {file = "transformers-4.40.1.tar.gz", hash = "sha256:55e1697e6f18b58273e7117bb469cdffc11be28995462d8d5e422fef38d2de36"}, + {file = "transformers-4.40.2-py3-none-any.whl", hash = "sha256:71cb94301ec211a2e1d4b8c8d18dcfaa902dfa00a089dceca167a8aa265d6f2d"}, + {file = "transformers-4.40.2.tar.gz", hash = "sha256:657b6054a2097671398d976ad46e60836e7e15f9ea9551631a96e33cb9240649"}, ] [package.dependencies] diff --git a/server/requirements_cuda.txt b/server/requirements_cuda.txt index c2714764..7f0efded 100644 --- a/server/requirements_cuda.txt +++ b/server/requirements_cuda.txt @@ -11,7 +11,7 @@ googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < grpc-interceptor==0.15.4 ; python_version >= "3.9" and python_version < "3.13" grpcio-reflection==1.62.2 ; python_version >= "3.9" and python_version < "3.13" grpcio-status==1.62.2 ; python_version >= "3.9" and python_version < "3.13" -grpcio==1.62.2 ; python_version >= "3.9" and python_version < "3.13" +grpcio==1.63.0 ; python_version >= "3.9" and python_version < "3.13" hf-transfer==0.1.6 ; python_version >= "3.9" and python_version < "3.13" huggingface-hub==0.19.4 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" @@ -32,15 +32,15 @@ prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.13" py-cpuinfo==9.0.0 ; python_version >= "3.9" and python_version < "3.13" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" -regex==2024.4.28 ; python_version >= "3.9" and python_version < "3.13" +regex==2024.5.10 ; python_version >= "3.9" and python_version < "3.13" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.13" safetensors==0.4.3 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.0 ; python_version >= "3.9" and python_version < "3.13" sentencepiece==0.1.99 ; python_version >= "3.9" and python_version < "3.13" setuptools==69.5.1 ; python_version >= "3.9" and python_version < "3.13" tokenizers==0.19.1 ; python_version >= "3.9" and python_version < "3.13" -tqdm==4.66.2 ; python_version >= "3.9" and python_version < "3.13" -transformers==4.40.1 ; python_version >= "3.9" and python_version < "3.13" +tqdm==4.66.4 ; python_version >= "3.9" and python_version < "3.13" +transformers==4.40.2 ; python_version >= "3.9" and python_version < "3.13" typer==0.6.1 ; python_version >= "3.9" and python_version < "3.13" typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.13" diff --git a/server/requirements_rocm.txt b/server/requirements_rocm.txt index c2714764..7f0efded 100644 --- a/server/requirements_rocm.txt +++ b/server/requirements_rocm.txt @@ -11,7 +11,7 @@ googleapis-common-protos==1.63.0 ; python_version >= "3.9" and python_version < grpc-interceptor==0.15.4 ; python_version >= "3.9" and python_version < "3.13" grpcio-reflection==1.62.2 ; python_version >= "3.9" and python_version < "3.13" grpcio-status==1.62.2 ; python_version >= "3.9" and python_version < "3.13" -grpcio==1.62.2 ; python_version >= "3.9" and python_version < "3.13" +grpcio==1.63.0 ; python_version >= "3.9" and python_version < "3.13" hf-transfer==0.1.6 ; python_version >= "3.9" and python_version < "3.13" huggingface-hub==0.19.4 ; python_version >= "3.9" and python_version < "3.13" idna==3.7 ; python_version >= "3.9" and python_version < "3.13" @@ -32,15 +32,15 @@ prometheus-client==0.20.0 ; python_version >= "3.9" and python_version < "3.13" protobuf==4.25.3 ; python_version >= "3.9" and python_version < "3.13" py-cpuinfo==9.0.0 ; python_version >= "3.9" and python_version < "3.13" pyyaml==6.0.1 ; python_version >= "3.9" and python_version < "3.13" -regex==2024.4.28 ; python_version >= "3.9" and python_version < "3.13" +regex==2024.5.10 ; python_version >= "3.9" and python_version < "3.13" requests==2.31.0 ; python_version >= "3.9" and python_version < "3.13" safetensors==0.4.3 ; python_version >= "3.9" and python_version < "3.13" scipy==1.13.0 ; python_version >= "3.9" and python_version < "3.13" sentencepiece==0.1.99 ; python_version >= "3.9" and python_version < "3.13" setuptools==69.5.1 ; python_version >= "3.9" and python_version < "3.13" tokenizers==0.19.1 ; python_version >= "3.9" and python_version < "3.13" -tqdm==4.66.2 ; python_version >= "3.9" and python_version < "3.13" -transformers==4.40.1 ; python_version >= "3.9" and python_version < "3.13" +tqdm==4.66.4 ; python_version >= "3.9" and python_version < "3.13" +transformers==4.40.2 ; python_version >= "3.9" and python_version < "3.13" typer==0.6.1 ; python_version >= "3.9" and python_version < "3.13" typing-extensions==4.11.0 ; python_version >= "3.9" and python_version < "3.13" urllib3==2.2.1 ; python_version >= "3.9" and python_version < "3.13" diff --git a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py index a7969494..6a6b2e0a 100644 --- a/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py +++ b/server/text_generation_server/models/custom_modeling/flash_llama_modeling.py @@ -23,7 +23,6 @@ import torch.distributed from torch import nn from transformers.activations import ACT2FN -from transformers.configuration_utils import PretrainedConfig from typing import Optional, List, Tuple from text_generation_server.utils import paged_attention, flash_attn @@ -32,7 +31,6 @@ from text_generation_server.layers import ( TensorParallelColumnLinear, TensorParallelEmbedding, SpeculativeHead, - get_linear, ) from text_generation_server.layers.rotary import PositionRotaryEmbedding from text_generation_server.layers.layernorm import ( @@ -41,22 +39,29 @@ from text_generation_server.layers.layernorm import ( def load_attention(config, prefix, weights): + bias = config.attention_bias if config.num_attention_heads != config.num_key_value_heads: - return _load_gqa(config, prefix, weights) + return TensorParallelColumnLinear.load_multi( + config, + prefixes=[f"{prefix}.q_proj", f"{prefix}.k_proj", f"{prefix}.v_proj"], + dim=0, + weights=weights, + bias=bias, + ) else: if config.model_type == "baichuan": return TensorParallelColumnLinear.load_qkv( config, prefix=f"{prefix}.W_pack", weights=weights, - bias=False, + bias=bias, ) elif config.model_type == "phi3": return TensorParallelColumnLinear.load_qkv( config, prefix=f"{prefix}.qkv_proj", weights=weights, - bias=False, + bias=bias, ) else: return TensorParallelColumnLinear.load_multi( @@ -64,36 +69,10 @@ def load_attention(config, prefix, weights): prefixes=[f"{prefix}.q_proj", f"{prefix}.k_proj", f"{prefix}.v_proj"], dim=0, weights=weights, - bias=False, + bias=bias, ) -def _load_gqa(config, prefix: str, weights): - assert config.hidden_size % config.num_attention_heads == 0 - assert config.num_attention_heads % weights.process_group.size() == 0 - - weight = weights.get_multi_weights_col( - prefixes=[f"{prefix}.q_proj", f"{prefix}.k_proj", f"{prefix}.v_proj"], - quantize=config.quantize, - dim=0, - ) - - if config.quantize not in ["gptq", "awq"]: - weight = weight.to(dtype=weights.dtype).to(device=weights.device) - - head_size = config.hidden_size // config.num_attention_heads - num_heads = config.num_attention_heads // weights.process_group.size() - num_key_value_heads = config.num_key_value_heads // weights.process_group.size() - assert list(weight.shape) == [ - (num_heads + 2 * num_key_value_heads) * head_size, - config.hidden_size, - ], f"{list(weight.shape)} != {[(num_heads + 2 * config.num_key_value_heads) * head_size, config.hidden_size]}" - - return TensorParallelColumnLinear( - get_linear(weight, bias=None, quantize=config.quantize) - ) - - class FlashLlamaAttention(torch.nn.Module): def __init__( self, @@ -214,12 +193,13 @@ class LlamaMLP(nn.Module): ) ) # Fuse gate and up proj + bias = getattr(config, "mlp_bias", False) if config.model_type == "phi3": self.gate_up_proj = TensorParallelColumnLinear.load_gate_up( config, prefix=f"{prefix}.gate_up_proj", weights=weights, - bias=False, + bias=bias, ) else: self.gate_up_proj = TensorParallelColumnLinear.load_multi( @@ -227,13 +207,13 @@ class LlamaMLP(nn.Module): prefixes=[f"{prefix}.gate_proj", f"{prefix}.up_proj"], weights=weights, dim=0, - bias=False, + bias=bias, ) self.down_proj = TensorParallelRowLinear.load( config, prefix=f"{prefix}.down_proj", weights=weights, - bias=False, + bias=bias, ) self.intermediate_size = ( config.intermediate_size // weights.process_group.size() @@ -385,9 +365,14 @@ class FlashLlamaForCausalLM(torch.nn.Module): weights=weights, ) self.model = FlashLlamaModel(prefix, config, weights) + if config.tie_word_embeddings: + suffix = "model.embed_tokens" + else: + suffix = "lm_head" + self.lm_head = SpeculativeHead.load( config, - prefix="lm_head" if not prefix else f"{prefix}.lm_head", + prefix=suffix if not prefix else f"{prefix}.suffix", weights=weights, )