metadata
library_name: setfit
metrics:
- accuracy
pipeline_tag: text-classification
tags:
- setfit
- sentence-transformers
- text-classification
- generated_from_setfit_trainer
widget:
- text: "Throttle send frame EVR\n| | |\r\n|:---|:---|\r\n|**_F´ Version_**|commit d3fa31c |\r\n|**_Affected Component_**| ? |\r\n---\r\n## Problem Description\r\n\r\nA description of the problem with sufficient detail to understand the issue.\r\n\r\nIf there is no ground system, the interface continuously sends this pair of EVRs:\r\n\r\n```\r\n0x201db690 (TV_TLM): [ERROR] Failed to send framed data: 0\r\n0x201db690 (TV_TLM): [ERROR] Failed to send framed data: 0\r\n0x201db690 (TV_TLM): [ERROR] Failed to send framed data: 0\r\n0x201db690 (TV_TLM): [ERROR] Failed to send framed data: 0\r\n0x201db690 (TV_TLM): [ERROR] Failed to send framed data: 0\r\n0x201db690 (TV_TLM): [ERROR] Failed to send framed data: 0\r\n0x202236f0 (TV_ReceiveTask): [WARNING] Failed to open port with status 61 and errno 0\r\n```\r\n\r\n## How to Reproduce\r\n\r\n1. Run Ref without the ground system\r\n2.\r\n3.\r\n\r\n## Expected Behavior\r\n\r\nIMHO the EVR should throttle, and perhaps the throttle is reset when the connection is make.\r\n"
- text: "Color-coding interlaced Events in the API Log\n| | |\r\n|:---|:---|\r\n|**_F´ Version_**| |\r\n|**_Affected Component_**| |\r\n---\r\nOne feature that wasn't completed this summer was to color-code interlaced event logs based on severity. Presently, interlacing events are implemented by making the API a consumer of the event decoder in the GDS and then filtering events. Modifying the color of these log messages can be done [here](https://github.com/nasa/fprime/blob/717bc6fab85c53680108fc961cad6338e779816f/Gds/src/fprime_gds/common/testing_fw/api.py#L1258).\r\n"
- text: "Switch Framer and Deframer to use Mallocator Pattern\n| | |\r\n|:---|:---|\r\n|**_F´ Version_**| |\r\n|**_Affected Component_**| |\r\n---\r\n## Problem Description\r\n\r\nMallocator pattern is preferred over member-allocated buffers."
- text: "Ninja support for fprime-tools\n| | |\r\n|:---|:---|\r\n|**_F´ Version_**| |\r\n|**_Affected Component_**| |\r\n---\r\n## Problem Description\r\n\r\nThere are a couple places in fprime-tools where things would break if Ninja was used instead of Make. We need to fix that, as Ninja is usually much faster.\r\ne.g. [this](https://github.com/fprime-community/fprime-tools/blob/0a9fdf58ce4b428d407ab264f7266041808237c8/src/fprime/fbuild/cmake.py#L133) is Make-specific output, Ninja formats it differently\r\n\r\n## Expected Behavior\r\n\r\nSupport Ninja with fprime-tools. Add a convenient option to chose which one to use.\r\n"
- text: "Build A Frame Reassembler\n| | |\r\n|:---|:---|\r\n|**_F´ Version_**| |\r\n|**_Affected Component_**| |\r\n---\r\n## Feature Description\r\n\r\nBuild a component that can be used to reassemble communication frames given protocol information. This will break-off this functionality from the Deframer.\r\n\r\nBasic requirements:\r\n1. Accept incoming Fw::Buffers of any size\r\n2. Accumulate buffers in-order\r\n3. Call frame detector helper class\r\n4. On \"NO_FRAME\" discard first byte and try again\r\n5. On \"NEED DATA\" continue to accumulate data\r\n6. On \"FRAME\" allocate buffer, copy-out frame\r\n\r\nHelper class requirements:\r\n1. Must implement `Enum detect_frame(const CircularBuffer& buffer, FwSizeType& size_output)` method\r\n2. Cannot alter circular buffer (uses peeks)\r\n3. Must set `size_output` when data is needed and when frame detected\r\n "
inference: true
SetFit
This is a SetFit model that can be used for Text Classification. A LogisticRegression instance is used for classification.
The model has been trained using an efficient few-shot learning technique that involves:
- Fine-tuning a Sentence Transformer with contrastive learning.
- Training a classification head with features from the fine-tuned Sentence Transformer.
Model Details
Model Description
- Model Type: SetFit
- Classification head: a LogisticRegression instance
- Maximum Sequence Length: 384 tokens
- Number of Classes: 2 classes
Model Sources
- Repository: SetFit on GitHub
- Paper: Efficient Few-Shot Learning Without Prompts
- Blogpost: SetFit: Efficient Few-Shot Learning Without Prompts
Model Labels
Label | Examples |
---|---|
bug |
|
non-bug |
|
Uses
Direct Use for Inference
First install the SetFit library:
pip install setfit
Then you can load this model and run inference.
from setfit import SetFitModel
# Download from the 🤗 Hub
model = SetFitModel.from_pretrained("setfit_model_id")
# Run inference
preds = model("Switch Framer and Deframer to use Mallocator Pattern
| | |
|:---|:---|
|**_F´ Version_**| |
|**_Affected Component_**| |
---
## Problem Description
Mallocator pattern is preferred over member-allocated buffers.")
Training Details
Training Set Metrics
Training set | Min | Median | Max |
---|---|---|---|
Word count | 4 | 124.1383 | 2486 |
Label | Training Sample Count |
---|---|
bug | 296 |
non-bug | 304 |
Training Hyperparameters
- batch_size: (16, 2)
- num_epochs: (1, 1)
- max_steps: -1
- sampling_strategy: oversampling
- num_iterations: 20
- body_learning_rate: (2e-05, 1e-05)
- head_learning_rate: 0.01
- loss: CosineSimilarityLoss
- distance_metric: cosine_distance
- margin: 0.25
- end_to_end: False
- use_amp: False
- warmup_proportion: 0.1
- l2_weight: 0.01
- seed: 42
- eval_max_steps: -1
- load_best_model_at_end: False
Training Results
Epoch | Step | Training Loss | Validation Loss |
---|---|---|---|
0.0007 | 1 | 0.447 | - |
0.0333 | 50 | 0.2333 | - |
0.0667 | 100 | 0.083 | - |
0.1 | 150 | 0.039 | - |
0.1333 | 200 | 0.0354 | - |
0.1667 | 250 | 0.0177 | - |
0.2 | 300 | 0.0053 | - |
0.2333 | 350 | 0.0004 | - |
0.2667 | 400 | 0.0027 | - |
0.3 | 450 | 0.0015 | - |
0.3333 | 500 | 0.002 | - |
0.3667 | 550 | 0.0003 | - |
0.4 | 600 | 0.0001 | - |
0.4333 | 650 | 0.0001 | - |
0.4667 | 700 | 0.0001 | - |
0.5 | 750 | 0.0001 | - |
0.5333 | 800 | 0.0001 | - |
0.5667 | 850 | 0.0001 | - |
0.6 | 900 | 0.0001 | - |
0.6333 | 950 | 0.0001 | - |
0.6667 | 1000 | 0.0001 | - |
0.7 | 1050 | 0.0 | - |
0.7333 | 1100 | 0.0 | - |
0.7667 | 1150 | 0.0001 | - |
0.8 | 1200 | 0.0 | - |
0.8333 | 1250 | 0.0001 | - |
0.8667 | 1300 | 0.0 | - |
0.9 | 1350 | 0.0 | - |
0.9333 | 1400 | 0.0001 | - |
0.9667 | 1450 | 0.0 | - |
1.0 | 1500 | 0.0 | - |
Framework Versions
- Python: 3.11.6
- SetFit: 1.1.0
- Sentence Transformers: 3.0.1
- Transformers: 4.44.2
- PyTorch: 2.4.1+cu121
- Datasets: 2.21.0
- Tokenizers: 0.19.1
Citation
BibTeX
@article{https://doi.org/10.48550/arxiv.2209.11055,
doi = {10.48550/ARXIV.2209.11055},
url = {https://arxiv.org/abs/2209.11055},
author = {Tunstall, Lewis and Reimers, Nils and Jo, Unso Eun Seo and Bates, Luke and Korat, Daniel and Wasserblat, Moshe and Pereg, Oren},
keywords = {Computation and Language (cs.CL), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {Efficient Few-Shot Learning Without Prompts},
publisher = {arXiv},
year = {2022},
copyright = {Creative Commons Attribution 4.0 International}
}