Bev-9B-inverted / serving_schema.py
richardyoung's picture
Merged bf16 weights and Bespoke-Nimble-9B's prompt contract
87edecd verified
Raw History Blame Contribute Delete
1.03 kB
"""Serving extension for 255 candidates without changing legacy training prompts.
Also shipped as a standalone module in the v2 Hugging Face package.
"""
if __package__:
from . import extended_schema, parallel_schema
else:
import extended_schema
import parallel_schema
MAX_CHOICES = 255
choice_key = parallel_schema.choice_key
validate_schema = extended_schema.validate_schema
def codes_for(count, tokenizer):
if type(count) is not int or not 1 <= count <= MAX_CHOICES:
raise ValueError(f"Candidate count must be between 1 and {MAX_CHOICES}")
return extended_schema.codes_for(count, tokenizer)
parse_schema = extended_schema.parse_schema
def prepare_prompts(tokenizer, context, schema, max_input_tokens, system_role=True):
validate_schema(schema)
width = max(len(extended_schema.choices_for(field)) for field in schema.values())
module = parallel_schema if width <= 26 else extended_schema
return module.prepare_prompts(tokenizer, context, schema, max_input_tokens, system_role)