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:

  1. Fine-tuning a Sentence Transformer with contrastive learning.
  2. 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: 4 classes

Model Sources

Model Labels

Label Examples
bug
  • 'lookatme requirements should specify click<9\nlookatme specifies a requirements of click>=7,<8 but in fact seems to work fine with click 8+. Many tools (including poetry, and soon pip) will refuse to install lookatme in a venv with modern Python packages because those packages require click 8+.\r\n\r\nThis is easily fixed by updating requirements.\r\n\r\nSteps to reproduce the behavior:\r\n\r\n\r\npoetry shell\r\npoetry add black\r\npoetry add lookatme\r\n\r\n\r\n**Expected behavior**\r\nlookatme can be installed with black.\r\n\r\n**Actual behavior**\r\npoetry refuses to install lookatme because of the unnecessary requirement.\r\n\r\n**Additional context**\r\nPR inbound.'
  • 'Quarto error when trying to render a simple .qmd file\n### System details\r\n\r\nVersion 2022.11.0-daily+87 (2022.11.0-daily+87)\r\nsysname\r\n"Darwin"\r\nrelease\r\n"21.5.0"\r\nversion\r\n"Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:37 PDT 2022; root:xnu8020.121.3~4/RELEASE_ARM64_T6000" \r\n\r\n\r\n### Steps to reproduce the problem\r\nthis is an example qmd file\r\n\r\n---\r\ntitle: "An Introduction to data science"\r\nformat: revealjs\r\n---\r\n\r\n\r\n\r\n---\r\n# How is the project is constructed\r\n\r\n1. Intro\r\n\r\n2. Literature review\r\n\r\n3. Hypothesis\r\n\r\n4. Methods: which tools did you use and how you used them (more on this in a bit)\r\n\r\n5. Main results\r\n\r\n6. Conclusions\r\n\r\n<img src="https://www.dropbox.com/s/06o9rixg2r5ocvz/ppic155.jpeg?raw=1" alt="" style="zoom:33%;" />\r\n\r\n---\r\n# Intro\r\n\r\nPresent the research topic and research hypothesis\r\n\r\n---\r\n# Literature review\r\n\r\nat least 5-6 papers you will summarize relating to your project\r\n\r\n\r\n\r\n\r\n### Describe the problem in detail\r\n\r\nwhen rendering I get errors, here is the error from the example file above\r\n\r\nERROR: YAMLError: end of the stream or a document separator is expected at line 10, column 12:\r\n 4. Methods: which tools did you use and ho ... \r\n ^\r\n\r\n\r\n\r\n### Describe the behavior you expected\r\n\r\nexpected for the file to render correctly \r\n\r\n- [ X] I have read the guide for submitting good bug reports.\r\n- [ X] I have installed the latest version of RStudio, and confirmed that the issue still persists.\r\n- [ X] If I am reporting an RStudio crash, I have included a diagnostics report.\r\n- [ X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.\r\n'
  • 'Nested buttons do not handle enabled properly\nWith 2 nested buttons, if the outside one has the prop enabled={false} then then inside one does not receive touch events.\r\n\r\nTested on iOS, not sure about Android.\r\n\r\nSnack: https://snack.expo.io/H15lpZuFQ'
feature
  • 'Migrating Woo Comparison table to Sparks\n### Description:\r\nWe need to migrate the current comparison table to Sparks and remove it from Otter.'
  • '[bug] Hard code 'movie_id' in neg_sampler.py\nScreen Shot 2022-06-20 at 3 26 21 PM\r\n\r\nUse item parameter instead of hard code 'movie_id'.'
  • "mk: omit transitive shared-library dependencies from linker command line\nRight now, binaries created directly within a build directory are linked slightly different compared to binaries created as depot archive. When created in the build directory, all shared-library dependencies including transitive shared-library dependencies of the target's used shared libraries end up at the linker command line. In contrast, when building a depot archive - where transitive shared libraries are not known because they are hidden behind the library's ABI - only the immediate dependencies appear at the linker command line. To improve the consistency, we should better link without transitive shared objects in both cases."
documentation
  • 'Docs are still using DBT_PROJECT_DIR\nThis was switched to ARTEFACTS_ DBT_PROJECT_DIR last release.'
  • 'multi-language translation strategy\nWe are aiming to role out a docs versioning system that includes a multi-language translation review on a periodic basis. Should aim for something similar here. @okwme is there any public documentation of this yet?'
  • 'upgrade docs differ to fresh project setup docs regarding app-routing.module.ts\nDescribe the bug\r\nWhen creating a fresh project by following this guide, the file app-routing.module.ts only get's get's created if answering the question "Would you like to add Angular routing?" with "yes". Doing so is not needed according to the Setup Guide.\r\n\r\nWhen updating an existing < 4 Spartacus project to 4.x, Creation of that file is needed according to the update documentation here.\r\n\r\n**Tell us the version of Spartacus**\r\n- Library version: 4.2.0\r\n\r\n**To Reproduce**\r\nSteps to reproduce the behavior:\r\n1. Create a fresh Spartacus Project by following the setup guide\r\n2. Notice, that NO file app-routing.module.ts get's created\r\n\r\n**Expected behavior**\r\nThe update documentation leads to the same files as the fresh setup guide\r\n\r\n**Desktop (please complete the following information):**\r\n - OS: all\r\n - Browser: all\r\n - Version: all\r\n\r\n**Smartphone (please complete the following information):**\r\n - Device: all\r\n - OS: all\r\n - Browser: all\r\n - Version: all\r\n\r\n**Additional context**\r\nAs having the file app-routing.module.ts in our projects does not seem to be neccessary, I am wondering why it is explicitly mentioned in the Spartacus 4 migration docs. \r\n'
question
  • 'softmax error\nimage\r\n\r\nTensorRT Version:TensorRT 8.4EA \r\nNVIDIA GPU: NVIDIA 2080T\r\nCUDA Version: cuda10.2\r\nOperating System: windows \r\n\r\nI made this error when I increased the input tensor size to (1,65536,6). Does Softmax need larger memory to run, or is it caused by some fusion operations\r\n'
  • 'Terraform 0.14.x not supported\nHi,\r\nI am trying to do a terraform init inside the complete example folder and this is the output I get:\r\n\r\n> terraform init\r\n> Initializing modules...\r\n> - jenkins in ../..\r\n> Downloading cloudposse/cicd/aws 0.11.1 for jenkins.cicd...\r\n> - jenkins.cicd in .terraform/modules/jenkins.cicd\r\n> Downloading cloudposse/codebuild/aws 0.27.0 for jenkins.cicd.codebuild...\r\n> - jenkins.cicd.codebuild in .terraform/modules/jenkins.cicd.codebuild\r\n> Downloading git::https://github.com/cloudposse/terraform-null-label.git?ref=tags/0.21.0 for jenkins.cicd.codebuild.this...\r\n> - jenkins.cicd.codebuild.this in .terraform/modules/jenkins.cicd.codebuild.this\r\n> Downloading cloudposse/label/null 0.22.1 for jenkins.cicd.this...\r\n> - jenkins.cicd.this in .terraform/modules/jenkins.cicd.this\r\n> Downloading cloudposse/ecr/aws 0.29.1 for jenkins.ecr...\r\n> - jenkins.ecr in .terraform/modules/jenkins.ecr\r\n> Downloading git::https://github.com/cloudposse/terraform-null-label.git?ref=tags/0.21.0 for jenkins.ecr.this...\r\n> - jenkins.ecr.this in .terraform/modules/jenkins.ecr.this\r\n> Downloading cloudposse/efs/aws 0.25.0 for jenkins.efs...\r\n> - jenkins.efs in .terraform/modules/jenkins.efs\r\n> Downloading cloudposse/route53-cluster-hostname/aws 0.9.0 for jenkins.efs.dns...\r\n> - jenkins.efs.dns in .terraform/modules/jenkins.efs.dns\r\n> Downloading cloudposse/label/null 0.22.1 for jenkins.efs.dns.this...\r\n> - jenkins.efs.dns.this in .terraform/modules/jenkins.efs.dns.this\r\n> Downloading cloudposse/label/null 0.22.1 for jenkins.efs.this...\r\n> - jenkins.efs.this in .terraform/modules/jenkins.efs.this\r\n> Downloading cloudposse/backup/aws 0.4.0 for jenkins.efs_backup...\r\n> - jenkins.efs_backup in .terraform/modules/jenkins.efs_backup\r\n> Downloading git::https://github.com/cloudposse/terraform-null-label.git?ref=tags/0.19.2 for jenkins.efs_backup.label_backup_role...\r\n> - jenkins.efs_backup.label_backup_role in .terraform/modules/jenkins.efs_backup.label_backup_role\r\n> Downloading git::https://github.com/cloudposse/terraform-null-label.git?ref=tags/0.19.2 for jenkins.efs_backup.this...\r\n> - jenkins.efs_backup.this in .terraform/modules/jenkins.efs_backup.this\r\n> Downloading cloudposse/elastic-beanstalk-application/aws 0.9.0 for jenkins.elastic_beanstalk_application...\r\n> - jenkins.elastic_beanstalk_application in .terraform/modules/jenkins.elastic_beanstalk_application\r\n> Downloading cloudposse/label/null 0.22.1 for jenkins.elastic_beanstalk_application.this...\r\n> - jenkins.elastic_beanstalk_application.this in .terraform/modules/jenkins.elastic_beanstalk_application.this\r\n> Downloading cloudposse/elastic-beanstalk-environment/aws 0.32.0 for jenkins.elastic_beanstalk_environment...\r\n> - jenkins.elastic_beanstalk_environment in .terraform/modules/jenkins.elastic_beanstalk_environment\r\n> Downloading cloudposse/route53-cluster-hostname/aws 0.9.0 for jenkins.elastic_beanstalk_environment.dns_hostname...\r\n> - jenkins.elastic_beanstalk_environment.dns_hostname in .terraform/modules/jenkins.elastic_beanstalk_environment.dns_hostname\r\n> Downloading cloudposse/label/null 0.22.1 for jenkins.elastic_beanstalk_environment.dns_hostname.this...\r\n> - jenkins.elastic_beanstalk_environment.dns_hostname.this in .terraform/modules/jenkins.elastic_beanstalk_environment.dns_hostname.this\r\n> Downloading cloudposse/label/null 0.22.1 for jenkins.elastic_beanstalk_environment.this...\r\n> - jenkins.elastic_beanstalk_environment.this in .terraform/modules/jenkins.elastic_beanstalk_environment.this\r\n> Downloading cloudposse/label/null 0.22.1 for jenkins.label_slaves...\r\n> - jenkins.label_slaves in .terraform/modules/jenkins.label_slaves\r\n> Downloading cloudposse/label/null 0.22.1 for jenkins.this...\r\n> - jenkins.this in .terraform/modules/jenkins.this\r\n> Downloading cloudposse/dynamic-subnets/aws 0.33.0 for subnets...\r\n> - subnets in .terraform/modules/subnets\r\n> Downloading cloudposse/label/null 0.22.0 for subnets.nat_instance_label...\r\n> - subnets.nat_instance_label in .terraform/modules/subnets.nat_instance_label\r\n> Downloading cloudposse/label/null 0.22.0 for subnets.nat_label...\r\n> - subnets.nat_label in .terraform/modules/subnets.nat_label\r\n> Downloading cloudposse/label/null 0.22.0 for subnets.private_label...\r\n> - subnets.private_label in .terraform/modules/subnets.private_label\r\n> Downloading cloudposse/label/null 0.22.0 for subnets.public_label...\r\n> - subnets.public_label in .terraform/modules/subnets.public_label\r\n> Downloading cloudposse/label/null 0.22.0 for subnets.this...\r\n> - subnets.this in .terraform/modules/subnets.this\r\n> Downloading cloudposse/utils/aws 0.2.0 for subnets.utils...\r\n> - subnets.utils in .terraform/modules/subnets.utils\r\n> Downloading cloudposse/label/null 0.22.0 for subnets.utils.this...\r\n> - subnets.utils.this in .terraform/modules/subnets.utils.this\r\n> Downloading cloudposse/label/null 0.22.1 for this...\r\n> - this in .terraform/modules/this\r\n> Downloading cloudposse/vpc/aws 0.18.1 for vpc...\r\n> - vpc in .terraform/modules/vpc\r\n> Downloading cloudposse/label/null 0.22.0 for vpc.label...\r\n> - vpc.label in .terraform/modules/vpc.label\r\n> Downloading cloudposse/label/null 0.22.0 for vpc.this...\r\n> - vpc.this in .terraform/modules/vpc.this\r\n> \r\n> Error: Unsupported Terraform Core version\r\n> \r\n> on .terraform/modules/jenkins.efs_backup.label_backup_role/versions.tf line 2, in terraform:\r\n> 2: required_version = ">= 0.12.0, < 0.14.0"\r\n> \r\n> Module module.jenkins.module.efs_backup.module.label_backup_role (from\r\n> git::https://github.com/cloudposse/terraform-null-label.git?ref=tags/0.19.2)\r\n> does not support Terraform version 0.14.4. To proceed, either choose another\r\n> supported Terraform version or update this version constraint. Version\r\n> constraints are normally set for good reason, so updating the constraint may\r\n> lead to other errors or unexpected behavior.\r\n> \r\n> \r\n> Error: Unsupported Terraform Core version\r\n> \r\n> on .terraform/modules/jenkins.efs_backup.this/versions.tf line 2, in terraform:\r\n> 2: required_version = ">= 0.12.0, < 0.14.0"\r\n> \r\n> Module module.jenkins.module.efs_backup.module.this (from\r\n> git::https://github.com/cloudposse/terraform-null-label.git?ref=tags/0.19.2)\r\n> does not support Terraform version 0.14.4. To proceed, either choose another\r\n> supported Terraform version or update this version constraint. Version\r\n> constraints are normally set for good reason, so updating the constraint may\r\n> lead to other errors or unexpected behavior.\r\n\r\nBasically the efs_backup submodule doesn't seem to support 0.14.x since it is locked in <0.14.0\r\n\r\nI have terraform 0.14.4\r\n\r\nAppreciate your help with this'
  • 'Constant propagation computes wrong values\nGiven the following test file, computing the constant values for x using scalpel results into a dictionary with three key-value pairs.\r\n\r\npython\r\nx = "a"\r\nx = "b"\r\nx = 1\r\n````\r\n\r\npython\r\nwith open("test_file.py", "r", encoding="utf-8") as source:\r\n code_str = source.read()\r\n\r\ncfg = CFGBuilder().build_from_src(name="", src=code_str)\r\n\r\n_, const_dict = SSA().compute_SSA(cfg)\r\n\r\nprint(const_dict)\r\n\r\n\r\n\r\n{('x', 0): <ast.Constant object at 0x0000021BC9EFA430>, ('x', 1): <ast.Constant object at 0x0000021BC9EFA430>, ('x', 2): <ast.Constant object at 0x0000021BC9EFA430>}\r\n````\r\n\r\nThat is what I expect. However, parsing the ast.Constant objects to get the actual values does not result into the correct values. Instead, I get the same value three times.\r\npython\r\n for key, value in const_dict.items():\r\n print(key, ast.unparse(value))\r\n\r\n\r\n(\'x\', 0) 1\r\n(\'x\', 1) 1\r\n(\'x\', 2) 1\r\n\r\nThis is not what I expect. Do you agree or am I missing something here?\r\n\r\n'

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("Read the Docs
Implement read the docs for documentation")

Training Details

Training Set Metrics

Training set Min Median Max
Word count 3 186.9402 10443
Label Training Sample Count
bug 47
documentation 33
feature 60
question 44

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.0022 1 0.7229 -
0.1087 50 0.2697 -
0.2174 100 0.1336 -
0.3261 150 0.0209 -
0.4348 200 0.0026 -
0.5435 250 0.001 -
0.6522 300 0.0008 -
0.7609 350 0.0006 -
0.8696 400 0.0005 -
0.9783 450 0.0004 -

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}
}
Downloads last month
15
Safetensors
Model size
109M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.