Instructions to use FluidInference/jeff-coreml with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- GLiFormer
How to use FluidInference/jeff-coreml with GLiFormer:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
| """Inspect Jeff's pinned, trained GLiFormer decision boundary using a real request.""" | |
| from __future__ import annotations | |
| import json | |
| from pathlib import Path | |
| import torch | |
| from huggingface_hub import snapshot_download | |
| from jeff.backends.torch_backend import TorchBackend | |
| from jeff.core.backend import Group | |
| SOURCE_REPO = "knowledgator/gliformer-large-v1" | |
| SOURCE_REVISION = "d0a4e53d09cebe6bc963dd9be319d4279084bb2d" | |
| def main() -> None: | |
| torch.set_num_threads(2) | |
| checkpoint = snapshot_download(SOURCE_REPO, revision=SOURCE_REVISION) | |
| backend = TorchBackend(checkpoint, device="cpu", dtype="float32", attn_kernel="eager", batch_size=1) | |
| text = "The invoice was charged twice and the customer asks for a refund." | |
| group = Group( | |
| key="route", | |
| labels=("billing: invoice or payment issue", "support: technical product issue"), | |
| name="Choose the correct support queue", | |
| ) | |
| native = backend.score([text], [[group]])[0] | |
| tokens, _, _ = backend.model.prepare_inputs([text]) | |
| batch = backend._collator( | |
| [ | |
| { | |
| "tokenized_text": tokens[0], | |
| "classification": [ | |
| { | |
| "name": group.name, | |
| "description": group.description, | |
| "all_labels": list(group.labels), | |
| "true_labels": [], | |
| } | |
| ], | |
| } | |
| ] | |
| ) | |
| report = { | |
| "source_repo": SOURCE_REPO, | |
| "source_revision": SOURCE_REVISION, | |
| "backend": backend.info(), | |
| "scores": native.scores, | |
| "input_tokens": native.input_tokens, | |
| "model_parameters": sum(parameter.numel() for parameter in backend.model.model.parameters()), | |
| "batch_tensors": { | |
| name: {"shape": list(value.shape), "dtype": str(value.dtype)} | |
| for name, value in batch.items() | |
| if isinstance(value, torch.Tensor) | |
| }, | |
| "batch_other": {name: str(type(value)) for name, value in batch.items() if not isinstance(value, torch.Tensor)}, | |
| } | |
| output = Path("build/native-probe.json") | |
| output.parent.mkdir(parents=True, exist_ok=True) | |
| output.write_text(json.dumps(report, indent=2) + "\n") | |
| print(json.dumps(report, indent=2), flush=True) | |
| if __name__ == "__main__": | |
| main() | |