Shuu12121's picture
Upload ModernBERT model
99a2a0e verified
---
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- dense
- generated_from_trainer
- dataset_size:799680
- loss:MultipleNegativesRankingLoss
base_model: Shuu12121/CodeModernBERT-Owl-v1
widget:
- source_sentence: 'Disconnects the pool.
Does everything that +clear+ does, except if the pool is closed
this method does nothing but +clear+ would raise PoolClosedError.
@since 2.1.0
@api private'
sentences:
- "def disconnect!(options = nil)\n do_clear(options)\n rescue Error::PoolClosedError\n\
\ # The \"disconnected\" state is between closed and paused.\n #\
\ When we are trying to disconnect the pool, permit the pool to be\n #\
\ already closed.\n end"
- "func TestNamedTupleWithEscapedColumns(t *testing.T) {\n\tTestProtocols(t, func(t\
\ *testing.T, protocol clickhouse.Protocol) {\n\t\tconn, err := GetNativeConnection(t,\
\ protocol, nil, nil, nil)\n\t\tctx := context.Background()\n\t\trequire.NoError(t,\
\ err)\n\t\t// https://github.com/ClickHouse/ClickHouse/pull/36544\n\t\tif !CheckMinServerServerVersion(conn,\
\ 22, 5, 0) {\n\t\t\tt.Skip(fmt.Errorf(\"unsupported clickhouse version\"))\n\t\
\t\treturn\n\t\t}\n\t\tconst ddl = \"CREATE TABLE test_tuple (Col1 Tuple(`56`\
\ String, `a22\\\\`` Int64)) Engine MergeTree() ORDER BY tuple()\"\n\t\tdefer\
\ func() {\n\t\t\tconn.Exec(ctx, \"DROP TABLE IF EXISTS test_tuple\")\n\t\t}()\n\
\t\trequire.NoError(t, conn.Exec(ctx, ddl))\n\t\tbatch, err := conn.PrepareBatch(ctx,\
\ \"INSERT INTO test_tuple\")\n\t\trequire.NoError(t, err)\n\t\tvar (\n\t\t\t\
col1Data = map[string]any{\"56\": \"A\", \"a22`\": int64(1)}\n\t\t)\n\t\trequire.NoError(t,\
\ batch.Append(col1Data))\n\t\trequire.Equal(t, 1, batch.Rows())\n\t\trequire.NoError(t,\
\ batch.Send())\n\t\tvar col1 map[string]any\n\t\trequire.NoError(t, conn.QueryRow(ctx,\
\ \"SELECT * FROM test_tuple\").Scan(&col1))\n\t\tassert.Equal(t, col1Data, col1)\n\
\t})\n}"
- "def parse_region(url)\n parts = URI.parse(url).host.split('.')\n \
\ parts.each_with_index do |part, index|\n if part == 'sqs'\n\
\ # assume region is the part right after the 'sqs' part\n \
\ return parts[index + 1]\n end\n end\n \
\ nil # no region found\n end"
- source_sentence: "Cancel a running workflow by sync job ID.\n\n This will\
\ search for workflows with IDs matching the pattern sync-{sync_job_id}-*\n \
\ and cancel them. The workflow will catch the CancelledError and update\
\ the\n sync job status to CANCELLED.\n\n Args:\n sync_job_id:\
\ The sync job ID to cancel\n\n Returns:\n True if a workflow\
\ was found and cancelled, False otherwise"
sentences:
- "async def cancel_sync_job_workflow(self, sync_job_id: str) -> bool:\n \
\ \"\"\"\n \"\"\"\n try:\n client = await temporal_client.get_client()\n\
\n # List workflows to find the one matching our sync job\n \
\ # Note: In production, you might want to store the workflow ID\n \
\ # when starting it for direct lookup\n workflows = []\n \
\ async for workflow in client.list_workflows(\n query=f'WorkflowId\
\ STARTS_WITH \"sync-{sync_job_id}-\"'\n ):\n workflows.append(workflow)\n\
\n if not workflows:\n logger.warning(f\"No running\
\ workflow found for sync job {sync_job_id}\")\n return False\n\
\n # Cancel the workflow(s)\n for workflow in workflows:\n\
\ handle = client.get_workflow_handle(workflow.id)\n \
\ await handle.cancel()\n logger.info(\n \
\ f\"Successfully cancelled workflow {workflow.id} for sync job {sync_job_id}\"\
\n )\n\n return True\n\n except Exception as\
\ e:\n logger.error(f\"Failed to cancel workflow for sync job {sync_job_id}:\
\ {e}\")\n raise"
- "def __init__(name, account):\n \"\"\"\n \n \"\"\""
- "renderRows = async (\n table,\n viewname,\n { columns, layout },\n extra,\n\
\ rows,\n state\n) => {\n //console.log(columns);\n //console.log(layout);\n\
\ if (!columns || !layout) return \"View not yet built\";\n\n const fields =\
\ table.getFields();\n\n const role = extra.req.user ? extra.req.user.role_id\
\ : 100;\n var views = {};\n const getView = async (name, relation) => {\n \
\ if (views[name]) return views[name];\n const view_select = parse_view_select(name,\
\ relation);\n const view = View.findOne({ name: view_select.viewname });\n\
\ if (!view) return false;\n if (view.table_id === table.id) view.table\
\ = table;\n else view.table = Table.findOne({ id: view.table_id });\n view.view_select\
\ = view_select;\n views[name] = view;\n return view;\n };\n await set_load_actions_join_fieldviews({\n\
\ table,\n layout,\n fields,\n req: extra.req,\n res: extra.res,\n\
\ });\n\n const owner_field = await table.owner_fieldname();\n const subviewExtra\
\ = { ...extra };\n if (extra.req?.generate_email) {\n // no mjml markup for\
\ for nested subviews, only for the top view\n subviewExtra.req = { ...extra.req,\
\ isSubView: true };\n }\n return await asyncMap(rows, async (row) => {\n \
\ await eachView(layout, async (segment) => {\n // do all the parsing with\
\ data here? make a factory\n const view = await getView(segment.view, segment.relation);\n\
\ if (!view)\n throw new InvalidConfiguration(\n `View ${viewname}\
\ incorrectly configured: cannot find view ${segment.view}`\n );\n \
\ view.check_viewtemplate();\n if (view.viewtemplateObj.renderRows && view.view_select.type\
\ === \"Own\") {\n segment.contents = (\n await view.viewtemplateObj.renderRows(\n\
\ view.table,\n view.name,\n view.configuration,\n\
\ subviewExtra,\n [row],\n state\n )\n\
\ )[0];\n } else {\n let state1 = {};\n const pk_name\
\ = table.pk_name;\n const get_row_val = (k) => {\n //handle expanded\
\ joinfields\n if (row[k] === null) return null;\n if (row[k]?.id\
\ === null) return null;\n return row[k]?.id || row[k];\n };\n\
\ const get_user_id = () => (extra.req.user ? extra.req.user.id : 0);\n\
\ if (view.view_select.type === \"RelationPath\" && view.table_id) {\n\
\ const targetTbl = Table.findOne({ id: view.table_id });\n \
\ const relation = new Relation(\n segment.relation,\n targetTbl.name,\n\
\ displayType(await view.get_state_fields())\n );\n \
\ state1 = pathToState(\n relation,\n relation.isFixedRelation()\
\ ? get_user_id : get_row_val\n );\n } else {\n switch\
\ (view.view_select.type) {\n case \"Own\":\n state1 =\
\ { [pk_name]: get_row_val(pk_name) };\n break;\n case\
\ \"Independent\":\n state1 = {};\n break;\n \
\ case \"ChildList\":\n case \"OneToOneShow\":\n state1\
\ = {\n [view.view_select.through\n ? `${view.view_select.throughTable}.${view.view_select.through}.${view.view_select.table_name}.${view.view_select.field_name}`\n\
\ : view.view_select.field_name]: get_row_val(pk_name),\n \
\ };\n break;\n case \"ParentShow\":\n \
\ //todo set by pk name of parent tablr\n state1 = {\n \
\ id: get_row_val(view.view_select.field_name),\n };\n\
\ break;\n }\n }\n const extra_state = segment.extra_state_fml\n\
\ ? eval_expression(\n segment.extra_state_fml,\n \
\ {\n ...dollarizeObject(state),\n session_id:\
\ getSessionId(extra.req),\n ...row,\n },\n \
\ extra.req.user,\n `Extra state formula for view ${view.name}`\n\
\ )\n : {};\n const { id, ...outerState } = state;\n\
\ //console.log(segment);\n if (segment.state === \"local\") {\n\
\ const state2 = { ...state1, ...extra_state };\n const qs =\
\ stateToQueryString(state2, true);\n if (\n view.name ===\
\ viewname &&\n JSON.stringify(state) === JSON.stringify(state2)\n\
\ )\n throw new InvalidConfiguration(\n `View\
\ ${view.name} embeds itself with same state; inifinite loop detected`\n \
\ );\n segment.contents = div(\n {\n class:\
\ \"d-inline\",\n \"data-sc-embed-viewname\": view.name,\n \
\ \"data-sc-local-state\": `/view/${view.name}${qs}`,\n },\n\
\ await view.run(state2, subviewExtra, view.isRemoteTable())\n \
\ );\n } else {\n const state2 = { ...outerState, ...state1,\
\ ...extra_state };\n const qs = stateToQueryString(state2, true);\n\n\
\ if (\n view.name === viewname &&\n JSON.stringify(state)\
\ === JSON.stringify(state2)\n )\n throw new InvalidConfiguration(\n\
\ `View ${view.name} embeds itself with same state; inifinite loop\
\ detected`\n );\n segment.contents = div(\n {\n\
\ class: \"d-inline\",\n \"data-sc-embed-viewname\"\
: view.name,\n \"data-sc-view-source\": `/view/${view.name}${qs}`,\n\
\ },\n await view.run(state2, subviewExtra, view.isRemoteTable())\n\
\ );\n }\n }\n });\n const user_id = extra.req.user\
\ ? extra.req.user.id : null;\n\n const is_owner =\n table.ownership_formula\
\ && user_id && role > table.min_role_read\n ? await table.is_owner(extra.req.user,\
\ row)\n : owner_field && user_id && row[owner_field] === user_id;\n\n\
\ return render(\n row,\n fields,\n layout,\n viewname,\n\
\ table,\n role,\n extra.req,\n is_owner,\n state,\n\
\ extra\n );\n });\n}"
- source_sentence: AddFlags adds flags related to NodeLifecycleController for controller
manager to the specified FlagSet.
sentences:
- "func (o *NodeLifecycleControllerOptions) AddFlags(fs *pflag.FlagSet) {\n\tif\
\ o == nil {\n\t\treturn\n\t}\n\n\tfs.DurationVar(&o.NodeStartupGracePeriod.Duration,\
\ \"node-startup-grace-period\", o.NodeStartupGracePeriod.Duration,\n\t\t\"Amount\
\ of time which we allow starting Node to be unresponsive before marking it unhealthy.\"\
)\n\tfs.DurationVar(&o.NodeMonitorGracePeriod.Duration, \"node-monitor-grace-period\"\
, o.NodeMonitorGracePeriod.Duration,\n\t\t\"Amount of time which we allow running\
\ Node to be unresponsive before marking it unhealthy. \"+\n\t\t\t\"Must be N\
\ times more than kubelet's nodeStatusUpdateFrequency, \"+\n\t\t\t\"where N means\
\ number of retries allowed for kubelet to post node status. \"+\n\t\t\t\"This\
\ value should also be greater than the sum of HTTP2_PING_TIMEOUT_SECONDS and\
\ HTTP2_READ_IDLE_TIMEOUT_SECONDS\")\n\tfs.Float32Var(&o.NodeEvictionRate, \"\
node-eviction-rate\", 0.1, \"Number of nodes per second on which pods are deleted\
\ in case of node failure when a zone is healthy (see --unhealthy-zone-threshold\
\ for definition of healthy/unhealthy). Zone refers to entire cluster in non-multizone\
\ clusters.\")\n\tfs.Float32Var(&o.SecondaryNodeEvictionRate, \"secondary-node-eviction-rate\"\
, 0.01, \"Number of nodes per second on which pods are deleted in case of node\
\ failure when a zone is unhealthy (see --unhealthy-zone-threshold for definition\
\ of healthy/unhealthy). Zone refers to entire cluster in non-multizone clusters.\
\ This value is implicitly overridden to 0 if the cluster size is smaller than\
\ --large-cluster-size-threshold.\")\n\tfs.Int32Var(&o.LargeClusterSizeThreshold,\
\ \"large-cluster-size-threshold\", 50, fmt.Sprintf(\"Number of nodes from which\
\ %s treats the cluster as large for the eviction logic purposes. --secondary-node-eviction-rate\
\ is implicitly overridden to 0 for clusters this size or smaller. Notice: If\
\ nodes reside in multiple zones, this threshold will be considered as zone node\
\ size threshold for each zone to determine node eviction rate independently.\"\
, names.NodeLifecycleController))\n\tfs.Float32Var(&o.UnhealthyZoneThreshold,\
\ \"unhealthy-zone-threshold\", 0.55, \"Fraction of Nodes in a zone which needs\
\ to be not Ready (minimum 3) for zone to be treated as unhealthy. \")\n}"
- "func (v Value) IsNull() bool {\n\treturn v.Val == nil || v.Typ == querypb.Type_NULL_TYPE\n\
}"
- "public function response(array $errors)\n {\n if ($this->ajax() ||\
\ $this->wantsJson()) {\n return new JsonResponse($errors, 422);\n\
\ }\n\n return $this->redirector->to($this->getRedirectUrl())\n\
\ ->withInput($this->except($this->dontFlash))\n\
\ ->withErrors($errors, $this->errorBag);\n\
\ }"
- source_sentence: 'Count of all the processing errors in this task and its subtasks.
Generated from protobuf field <code>int32 total_processing_error_count = 21;</code>
@return int'
sentences:
- "fn add_helper(&self, msg: SignedMessage) -> Result<(), Error> {\n let\
\ from = msg.from();\n let cur_ts = self.cur_tipset.lock().clone();\n \
\ add_helper(\n self.api.as_ref(),\n self.bls_sig_cache.as_ref(),\n\
\ self.pending.as_ref(),\n msg,\n self.get_state_sequence(&from,\
\ &cur_ts)?,\n )\n }"
- "public function getTotalProcessingErrorCount()\n {\n return $this->total_processing_error_count;\n\
\ }"
- "def datetime_utc_to_local(dt):\n\t\"\"\"\n\t\n\t\"\"\"\n\tdt = dt.replace(tzinfo=dateutil.tz.tzutc())\n\
\tdt = dt.astimezone(dateutil.tz.tzlocal())\n\treturn dt.replace(tzinfo=None)"
- source_sentence: "Computes the absolute value of each element retrieved from a strided\
\ input array `x` via a callback function and assigns each result to an element\
\ in a strided output array `y`.\n\n@param {NonNegativeInteger} N - number of\
\ indexed elements\n@param {Collection} x - input array/collection\n@param {integer}\
\ strideX - `x` stride length\n@param {NonNegativeInteger} offsetX - starting\
\ `x` index\n@param {Collection} y - destination array/collection\n@param {integer}\
\ strideY - `y` stride length\n@param {NonNegativeInteger} offsetY - starting\
\ `y` index\n@param {Callback} clbk - callback\n@param {*} [thisArg] - callback\
\ execution context\n@returns {Collection} `y`\n\n@example\nfunction accessor(\
\ v ) {\n return v * 2.0;\n}\n\nvar x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\nvar\
\ y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n\nabsBy( x.length, x, 1, 0, y, 1, 0, accessor\
\ );\n\nconsole.log( y );\n// => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]"
sentences:
- "public ArrayList<Skyline> findSkyline(int start, int end) {\n // Base\
\ case: only one building, return its skyline.\n if (start == end) {\n\
\ ArrayList<Skyline> list = new ArrayList<>();\n list.add(new\
\ Skyline(building[start].left, building[start].height));\n list.add(new\
\ Skyline(building[end].right, 0)); // Add the end of the building\n \
\ return list;\n }\n\n int mid = (start + end) / 2;\n\n \
\ ArrayList<Skyline> sky1 = this.findSkyline(start, mid); // Find the skyline\
\ of the left half\n ArrayList<Skyline> sky2 = this.findSkyline(mid + 1,\
\ end); // Find the skyline of the right half\n return this.mergeSkyline(sky1,\
\ sky2); // Merge the two skylines\n }"
- "def get_supported_systems_info\n request(\n :expects =>\
\ 200,\n :idempotent => true,\n :method => 'GET',\n\
\ :parser => Fog::ToHashDocument.new,\n :path \
\ => 'supportedSystemsInfo'\n )\n end"
- "function absBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg )\
\ {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, abs, clbk, thisArg\
\ ); // eslint-disable-line max-len\n}"
pipeline_tag: sentence-similarity
library_name: sentence-transformers
---
# SentenceTransformer based on Shuu12121/CodeModernBERT-Owl-v1
This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [Shuu12121/CodeModernBERT-Owl-v1](https://huggingface.co/Shuu12121/CodeModernBERT-Owl-v1). 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:** [Shuu12121/CodeModernBERT-Owl-v1](https://huggingface.co/Shuu12121/CodeModernBERT-Owl-v1) <!-- at revision 33220abe62ef7d02fc36c62487e77751459d8c1a -->
- **Maximum Sequence Length:** 1024 tokens
- **Output Dimensionality:** 768 dimensions
- **Similarity Function:** Cosine Similarity
<!-- - **Training Dataset:** Unknown -->
<!-- - **Language:** Unknown -->
<!-- - **License:** Unknown -->
### Model Sources
- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)
### Full Model Architecture
```
SentenceTransformer(
(0): Transformer({'max_seq_length': 1024, 'do_lower_case': False, 'architecture': 'ModernBertModel'})
(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("sentence_transformers_model_id")
# Run inference
sentences = [
'Computes the absolute value of each element retrieved from a strided input array `x` via a callback function and assigns each result to an element in a strided output array `y`.\n\n@param {NonNegativeInteger} N - number of indexed elements\n@param {Collection} x - input array/collection\n@param {integer} strideX - `x` stride length\n@param {NonNegativeInteger} offsetX - starting `x` index\n@param {Collection} y - destination array/collection\n@param {integer} strideY - `y` stride length\n@param {NonNegativeInteger} offsetY - starting `y` index\n@param {Callback} clbk - callback\n@param {*} [thisArg] - callback execution context\n@returns {Collection} `y`\n\n@example\nfunction accessor( v ) {\n return v * 2.0;\n}\n\nvar x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ];\nvar y = [ 0.0, 0.0, 0.0, 0.0, 0.0 ];\n\nabsBy( x.length, x, 1, 0, y, 1, 0, accessor );\n\nconsole.log( y );\n// => [ 2.0, 4.0, 6.0, 8.0, 10.0 ]',
'function absBy( N, x, strideX, offsetX, y, strideY, offsetY, clbk, thisArg ) {\n\treturn mapBy( N, x, strideX, offsetX, y, strideY, offsetY, abs, clbk, thisArg ); // eslint-disable-line max-len\n}',
'public ArrayList<Skyline> findSkyline(int start, int end) {\n // Base case: only one building, return its skyline.\n if (start == end) {\n ArrayList<Skyline> list = new ArrayList<>();\n list.add(new Skyline(building[start].left, building[start].height));\n list.add(new Skyline(building[end].right, 0)); // Add the end of the building\n return list;\n }\n\n int mid = (start + end) / 2;\n\n ArrayList<Skyline> sky1 = this.findSkyline(start, mid); // Find the skyline of the left half\n ArrayList<Skyline> sky2 = this.findSkyline(mid + 1, end); // Find the skyline of the right half\n return this.mergeSkyline(sky1, sky2); // Merge the two skylines\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.8429, 0.0136],
# [0.8429, 1.0000, 0.1084],
# [0.0136, 0.1084, 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: 799,680 training samples
* Columns: <code>sentence_0</code>, <code>sentence_1</code>, and <code>label</code>
* Approximate statistics based on the first 1000 samples:
| | sentence_0 | sentence_1 | label |
|:--------|:------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------|:--------------------------------------------------------------|
| type | string | string | float |
| details | <ul><li>min: 8 tokens</li><li>mean: 72.08 tokens</li><li>max: 1024 tokens</li></ul> | <ul><li>min: 13 tokens</li><li>mean: 165.78 tokens</li><li>max: 1024 tokens</li></ul> | <ul><li>min: 1.0</li><li>mean: 1.0</li><li>max: 1.0</li></ul> |
* Samples:
| sentence_0 | sentence_1 | label |
|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------|
| <code>Set the column title<br><br>@param column - column number (first column is: 0)<br>@param title - new column title</code> | <code>setHeader = function(column, newValue) {<br> const obj = this;<br><br> if (obj.headers[column]) {<br> const oldValue = obj.headers[column].textContent;<br> const onchangeheaderOldValue = (obj.options.columns && obj.options.columns[column] && obj.options.columns[column].title) || '';<br><br> if (! newValue) {<br> newValue = getColumnName(column);<br> }<br><br> obj.headers[column].textContent = newValue;<br> // Keep the title property<br> obj.headers[column].setAttribute('title', newValue);<br> // Update title<br> if (!obj.options.columns) {<br> obj.options.columns = [];<br> }<br> if (!obj.options.columns[column]) {<br> obj.options.columns[column] = {};<br> }<br> obj.options.columns[column].title = newValue;<br><br> setHistory.call(obj, {<br> action: 'setHeader',<br> column: column,<br> oldValue: oldValue,<br> newValue: newValue<br> });<br><br> // On onchange header<br> dispatch.c...</code> | <code>1.0</code> |
| <code>Elsewhere this is known as a "Weak Value Map". Whereas a std JS WeakMap<br>is weak on its keys, this map is weak on its values. It does not retain these<br>values strongly. If a given value disappears, then the entries for it<br>disappear from every weak-value-map that holds it as a value.<br><br>Just as a WeakMap only allows gc-able values as keys, a weak-value-map<br>only allows gc-able values as values.<br><br>Unlike a WeakMap, a weak-value-map unavoidably exposes the non-determinism of<br>gc to its clients. Thus, both the ability to create one, as well as each<br>created one, must be treated as dangerous capabilities that must be closely<br>held. A program with access to these can read side channels though gc that do<br>not* rely on the ability to measure duration. This is a separate, and bad,<br>timing-independent side channel.<br><br>This non-determinism also enables code to escape deterministic replay. In a<br>blockchain context, this could cause validators to differ from each other,<br>preventing consensus, and thus preventing ...</code> | <code>makeFinalizingMap = (finalizer, opts) => {<br> const { weakValues = false } = opts || {};<br> if (!weakValues || !WeakRef || !FinalizationRegistry) {<br> /** @type Map<K, V> */<br> const keyToVal = new Map();<br> return Far('fakeFinalizingMap', {<br> clearWithoutFinalizing: keyToVal.clear.bind(keyToVal),<br> get: keyToVal.get.bind(keyToVal),<br> has: keyToVal.has.bind(keyToVal),<br> set: (key, val) => {<br> keyToVal.set(key, val);<br> },<br> delete: keyToVal.delete.bind(keyToVal),<br> getSize: () => keyToVal.size,<br> });<br> }<br> /** @type Map<K, WeakRef<any>> */<br> const keyToRef = new Map();<br> const registry = new FinalizationRegistry(key => {<br> // Because this will delete the current binding of `key`, we need to<br> // be sure that it is not called because a previous binding was collected.<br> // We do this with the `unregister` in `set` below, assuming that<br> // `unregister` *immediately* suppresses the finalization of the thing<br> // it unregisters. TODO If this is...</code> | <code>1.0</code> |
| <code>Creates a function that memoizes the result of `func`. If `resolver` is<br>provided, it determines the cache key for storing the result based on the<br>arguments provided to the memoized function. By default, the first argument<br>provided to the memoized function is used as the map cache key. The `func`<br>is invoked with the `this` binding of the memoized function.<br><br>**Note:** The cache is exposed as the `cache` property on the memoized<br>function. Its creation may be customized by replacing the `_.memoize.Cache`<br>constructor with one whose instances implement the<br>[`Map`](http://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-prototype-object)<br>method interface of `delete`, `get`, `has`, and `set`.<br><br>@static<br>@memberOf _<br>@since 0.1.0<br>@category Function<br>@param {Function} func The function to have its output memoized.<br>@param {Function} [resolver] The function to resolve the cache key.<br>@returns {Function} Returns the new memoized function.<br>@example<br><br>var object = { 'a': 1, 'b': 2 };<br>var othe...</code> | <code>function memoize(func, resolver) {<br> if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {<br> throw new TypeError(FUNC_ERROR_TEXT);<br> }<br> var memoized = function() {<br> var args = arguments,<br> key = resolver ? resolver.apply(this, args) : args[0],<br> cache = memoized.cache;<br><br> if (cache.has(key)) {<br> return cache.get(key);<br> }<br> var result = func.apply(this, args);<br> memoized.cache = cache.set(key, result);<br> return result;<br> };<br> memoized.cache = new (memoize.Cache || MapCache);<br> return memoized;<br> }</code> | <code>1.0</code> |
* Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
```json
{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
```
### Training Hyperparameters
#### Non-Default Hyperparameters
- `per_device_train_batch_size`: 120
- `per_device_eval_batch_size`: 120
- `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`: 120
- `per_device_eval_batch_size`: 120
- `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`: 3
- `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`: {'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}
- `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
- `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`: False
- `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`: False
- `prompts`: None
- `batch_sampler`: batch_sampler
- `multi_dataset_batch_sampler`: round_robin
- `router_mapping`: {}
- `learning_rate_mapping`: {}
</details>
### Training Logs
| Epoch | Step | Training Loss |
|:------:|:-----:|:-------------:|
| 0.0750 | 500 | 0.2167 |
| 0.1501 | 1000 | 0.1158 |
| 0.2251 | 1500 | 0.1081 |
| 0.3001 | 2000 | 0.1079 |
| 0.3752 | 2500 | 0.0994 |
| 0.4502 | 3000 | 0.0941 |
| 0.5252 | 3500 | 0.0873 |
| 0.6002 | 4000 | 0.0967 |
| 0.6753 | 4500 | 0.0863 |
| 0.7503 | 5000 | 0.0829 |
| 0.8253 | 5500 | 0.0821 |
| 0.9004 | 6000 | 0.0821 |
| 0.9754 | 6500 | 0.0794 |
| 1.0504 | 7000 | 0.0418 |
| 1.1255 | 7500 | 0.0237 |
| 1.2005 | 8000 | 0.0233 |
| 1.2755 | 8500 | 0.0231 |
| 1.3505 | 9000 | 0.0248 |
| 1.4256 | 9500 | 0.0245 |
| 1.5006 | 10000 | 0.0237 |
| 1.5756 | 10500 | 0.025 |
| 1.6507 | 11000 | 0.0232 |
| 1.7257 | 11500 | 0.0231 |
| 1.8007 | 12000 | 0.0218 |
| 1.8758 | 12500 | 0.0233 |
| 1.9508 | 13000 | 0.0221 |
| 2.0258 | 13500 | 0.0177 |
| 2.1008 | 14000 | 0.0072 |
| 2.1759 | 14500 | 0.0066 |
| 2.2509 | 15000 | 0.0068 |
| 2.3259 | 15500 | 0.0069 |
| 2.4010 | 16000 | 0.0062 |
| 2.4760 | 16500 | 0.0068 |
| 2.5510 | 17000 | 0.0064 |
| 2.6261 | 17500 | 0.0061 |
| 2.7011 | 18000 | 0.0062 |
| 2.7761 | 18500 | 0.0058 |
| 2.8511 | 19000 | 0.0057 |
| 2.9262 | 19500 | 0.0058 |
### Framework Versions
- Python: 3.10.12
- Sentence Transformers: 5.0.0
- Transformers: 4.53.1
- PyTorch: 2.7.0+cu128
- Accelerate: 1.7.0
- 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",
}
```
#### MultipleNegativesRankingLoss
```bibtex
@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}
}
```
<!--
## 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.*
-->