Shuu12121's picture
Upload ModernBERT model
7264e29 verified
---
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- dense
- generated_from_trainer
- dataset_size:2392064
- loss:CachedMultipleNegativesSymmetricRankingLoss
base_model: Shuu12121/CodeModernBERT-Crow-v1.1
widget:
- source_sentence: 'Encapsulates the work with test rules.
@param {array} aRules The test rules
@constructor
@private'
sentences:
- "createImageResizer = (width, height) => (source) => {\n const resized = new\
\ PNG({ width, height, fill: true });\n PNG.bitblt(source, resized, 0, 0, source.width,\
\ source.height, 0, 0);\n return resized;\n}"
- "TestRules = function (aRules) {\n\t\t\tthis._aRules = aRules;\n\t\t}"
- "function addEventTypeNameToConfig(_ref, isInteractive) {\n var topEvent = _ref[0],\n\
\ event = _ref[1];\n\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n\
\ var onEvent = 'on' + capitalizedEvent;\n\n var type = {\n phasedRegistrationNames:\
\ {\n bubbled: onEvent,\n captured: onEvent + 'Capture'\n },\n \
\ dependencies: [topEvent],\n isInteractive: isInteractive\n };\n eventTypes$4[event]\
\ = type;\n topLevelEventsToDispatchConfig[topEvent] = type;\n}"
- source_sentence: 'Check if a value has one or more properties and that value is
not undefined.
@param {any} obj The value to check.
@returns {boolean} `true` if `obj` has one or more properties that value is not
undefined.'
sentences:
- "calci = function(hashbuf, sig, pubkey) {\n for (var i = 0; i < 4; i++) {\n \
\ var Qprime;\n try {\n Qprime = getPublicKey(hashbuf, sig, i);\n \
\ } catch (e) {\n console.error(e);\n continue;\n }\n\n if (Qprime.point.eq(pubkey.point))\
\ {\n sig.i = i;\n sig.compressed = pubkey.compressed;\n return\
\ sig;\n }\n }\n\n throw new Error('Unable to find valid recovery factor');\n\
}"
- "function hasDefinedProperty(obj) {\n\tif (typeof obj === \"object\" && obj !==\
\ null) {\n\t\tfor (const key in obj) {\n\t\t\tif (typeof obj[key] !== \"undefined\"\
) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}"
- "function joinSequenceDiffsByShifting(sequence1, sequence2, sequenceDiffs) {\n\
\ if (sequenceDiffs.length === 0) {\n return sequenceDiffs;\n }\n\
\ const result = [];\n result.push(sequenceDiffs[0]);\n // First move\
\ them all to the left as much as possible and join them if possible\n for\
\ (let i = 1; i < sequenceDiffs.length; i++) {\n const prevResult = result[result.length\
\ - 1];\n let cur = sequenceDiffs[i];\n if (cur.seq1Range.isEmpty\
\ || cur.seq2Range.isEmpty) {\n const length = cur.seq1Range.start\
\ - prevResult.seq1Range.endExclusive;\n let d;\n for (d\
\ = 1; d <= length; d++) {\n if (sequence1.getElement(cur.seq1Range.start\
\ - d) !== sequence1.getElement(cur.seq1Range.endExclusive - d) ||\n \
\ sequence2.getElement(cur.seq2Range.start - d) !== sequence2.getElement(cur.seq2Range.endExclusive\
\ - d)) {\n break;\n }\n }\n \
\ d--;\n if (d === length) {\n // Merge previous\
\ and current diff\n result[result.length - 1] = new SequenceDiff(new\
\ OffsetRange(prevResult.seq1Range.start, cur.seq1Range.endExclusive - length),\
\ new OffsetRange(prevResult.seq2Range.start, cur.seq2Range.endExclusive - length));\n\
\ continue;\n }\n cur = cur.delta(-d);\n\
\ }\n result.push(cur);\n }\n const result2 = [];\n //\
\ Then move them all to the right and join them again if possible\n for (let\
\ i = 0; i < result.length - 1; i++) {\n const nextResult = result[i +\
\ 1];\n let cur = result[i];\n if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty)\
\ {\n const length = nextResult.seq1Range.start - cur.seq1Range.endExclusive;\n\
\ let d;\n for (d = 0; d < length; d++) {\n \
\ if (!sequence1.isStronglyEqual(cur.seq1Range.start + d, cur.seq1Range.endExclusive\
\ + d) ||\n !sequence2.isStronglyEqual(cur.seq2Range.start\
\ + d, cur.seq2Range.endExclusive + d)) {\n break;\n \
\ }\n }\n if (d === length) {\n \
\ // Merge previous and current diff, write to result!\n result[i\
\ + 1] = new SequenceDiff(new OffsetRange(cur.seq1Range.start + length, nextResult.seq1Range.endExclusive),\
\ new OffsetRange(cur.seq2Range.start + length, nextResult.seq2Range.endExclusive));\n\
\ continue;\n }\n if (d > 0) {\n \
\ cur = cur.delta(d);\n }\n }\n result2.push(cur);\n\
\ }\n if (result.length > 0) {\n result2.push(result[result.length\
\ - 1]);\n }\n return result2;\n}"
- source_sentence: 'Adds two vec2''s after scaling the second operand by a scalar
value
@param {vec2} out the receiving vector
@param {ReadonlyVec2} a the first operand
@param {ReadonlyVec2} b the second operand
@param {Number} scale the amount to scale b by before adding
@returns {vec2} out'
sentences:
- "async forceStripeSubscriptionToProduct(data, options) {\n if (!this._stripeAPIService.configured)\
\ {\n throw new DataImportError({\n message: tpl(messages.noStripeConnection,\
\ {action: 'force subscription to product'})\n });\n }\n\n \
\ // Retrieve customer's existing subscription information\n const\
\ stripeCustomer = await this._stripeAPIService.getCustomer(data.customer_id);\n\
\n // Subscription can only be forced if the customer exists\n if\
\ (!stripeCustomer) {\n throw new DataImportError({message: tpl(messages.forceNoCustomer)});\n\
\ }\n\n // Subscription can only be forced if the customer has an\
\ existing subscription\n if (stripeCustomer.subscriptions.data.length\
\ === 0) {\n throw new DataImportError({message: tpl(messages.forceNoExistingSubscription)});\n\
\ }\n\n // Subscription can only be forced if the customer does\
\ not have multiple subscriptions\n if (stripeCustomer.subscriptions.data.length\
\ > 1) {\n throw new DataImportError({message: tpl(messages.forceTooManySubscriptions)});\n\
\ }\n\n const stripeSubscription = stripeCustomer.subscriptions.data[0];\n\
\n // Subscription can only be forced if the existing subscription does\
\ not have multiple items\n if (stripeSubscription.items.data.length >\
\ 1) {\n throw new DataImportError({message: tpl(messages.forceTooManySubscriptionItems)});\n\
\ }\n\n const stripeSubscriptionItem = stripeSubscription.items.data[0];\n\
\ const stripeSubscriptionItemPrice = stripeSubscriptionItem.price;\n \
\ const stripeSubscriptionItemPriceCurrency = stripeSubscriptionItemPrice.currency;\n\
\ const stripeSubscriptionItemPriceAmount = stripeSubscriptionItemPrice.unit_amount;\n\
\ const stripeSubscriptionItemPriceType = stripeSubscriptionItemPrice.type;\n\
\ const stripeSubscriptionItemPriceInterval = stripeSubscriptionItemPrice.recurring?.interval\
\ || null;\n\n // Subscription can only be forced if the existing subscription\
\ has a recurring interval\n if (!stripeSubscriptionItemPriceInterval)\
\ {\n throw new DataImportError({message: tpl(messages.forceExistingSubscriptionNotRecurring)});\n\
\ }\n\n // Retrieve Ghost product\n let ghostProduct = await\
\ this._productRepository.get(\n {id: data.product_id},\n \
\ {...options, withRelated: ['stripePrices', 'stripeProducts']}\n );\n\
\n if (!ghostProduct) {\n throw new DataImportError({message:\
\ tpl(messages.productNotFound, {id: data.product_id})});\n }\n\n \
\ // If there is not a Stripe product associated with the Ghost product, ensure\
\ one is created before continuing\n if (!ghostProduct.related('stripeProducts').first())\
\ {\n // Even though we are not updating any information on the product,\
\ calling `ProductRepository.update`\n // will ensure that the product\
\ gets created in Stripe\n ghostProduct = await this._productRepository.update({\n\
\ id: data.product_id,\n name: ghostProduct.get('name'),\n\
\ // Providing the pricing details will ensure the relevant prices\
\ for the Ghost product are created\n // on the Stripe product\n\
\ monthly_price: {\n amount: ghostProduct.get('monthly_price'),\n\
\ currency: ghostProduct.get('currency')\n },\n\
\ yearly_price: {\n amount: ghostProduct.get('yearly_price'),\n\
\ currency: ghostProduct.get('currency')\n }\n\
\ }, options);\n }\n\n // Find price on Ghost product\
\ matching stripe subscription item price details\n const ghostProductPrice\
\ = ghostProduct.related('stripePrices').find((price) => {\n return\
\ price.get('currency') === stripeSubscriptionItemPriceCurrency &&\n \
\ price.get('amount') === stripeSubscriptionItemPriceAmount &&\n \
\ price.get('type') === stripeSubscriptionItemPriceType &&\n \
\ price.get('interval') === stripeSubscriptionItemPriceInterval;\n \
\ });\n\n let stripePriceId;\n let isNewStripePrice = false;\n\
\n if (!ghostProductPrice) {\n // If there is not a matching\
\ price, create one on the associated Stripe product using the existing\n \
\ // subscription item price details and update the stripe subscription\
\ to use it\n const stripeProduct = ghostProduct.related('stripeProducts').first();\n\
\n const newStripePrice = await this._stripeAPIService.createPrice({\n\
\ product: stripeProduct.get('stripe_product_id'),\n \
\ active: true,\n nickname: stripeSubscriptionItemPriceInterval\
\ === 'month' ? 'Monthly' : 'Yearly',\n currency: stripeSubscriptionItemPriceCurrency,\n\
\ amount: stripeSubscriptionItemPriceAmount,\n type:\
\ stripeSubscriptionItemPriceType,\n interval: stripeSubscriptionItemPriceInterval\n\
\ });\n\n await this._stripeAPIService.updateSubscriptionItemPrice(\n\
\ stripeSubscription.id,\n stripeSubscriptionItem.id,\n\
\ newStripePrice.id,\n {prorationBehavior: 'none'}\n\
\ );\n\n stripePriceId = newStripePrice.id;\n \
\ isNewStripePrice = true;\n } else {\n // If there is a matching\
\ price, and the subscription is not already using it,\n // update\
\ the subscription to use it\n stripePriceId = ghostProductPrice.get('stripe_price_id');\n\
\n if (stripeSubscriptionItem.price.id !== stripePriceId) {\n \
\ await this._stripeAPIService.updateSubscriptionItemPrice(\n \
\ stripeSubscription.id,\n stripeSubscriptionItem.id,\n\
\ stripePriceId,\n {prorationBehavior: 'none'}\n\
\ );\n }\n }\n\n // If there is a matching\
\ price, and the subscription is already using it, nothing else needs to be done\n\
\n return {\n stripePriceId,\n isNewStripePrice\n\
\ };\n }"
- "getPrefetchedVariantTrack() {\n if (!this.prefetchedVariant_) {\n return\
\ null;\n }\n return shaka.util.StreamUtils.variantToTrack(this.prefetchedVariant_);\n\
\ }"
- "function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n\
\ out[1] = a[1] + b[1] * scale;\n return out;\n }"
- source_sentence: '@returns Has this player been spotted by any others?'
sentences:
- "function includes7d( x, value ) {\n\tvar xbuf;\n\tvar dx0;\n\tvar dx1;\n\tvar\
\ dx2;\n\tvar dx3;\n\tvar dx4;\n\tvar dx5;\n\tvar dx6;\n\tvar sh;\n\tvar S0;\n\
\tvar S1;\n\tvar S2;\n\tvar S3;\n\tvar S4;\n\tvar S5;\n\tvar S6;\n\tvar sx;\n\t\
var ix;\n\tvar i0;\n\tvar i1;\n\tvar i2;\n\tvar i3;\n\tvar i4;\n\tvar i5;\n\t\
var i6;\n\n\t// Note on variable naming convention: S#, dx#, dy#, i# where # corresponds\
\ to the loop number, with `0` being the innermost loop...\n\n\t// Extract loop\
\ variables for purposes of loop interchange: dimensions and loop offset (pointer)\
\ increments...\n\tsh = x.shape;\n\tsx = x.strides;\n\tif ( strides2order( sx\
\ ) === 1 ) {\n\t\t// For row-major ndarrays, the last dimensions have the fastest\
\ changing indices...\n\t\tS0 = sh[ 6 ];\n\t\tS1 = sh[ 5 ];\n\t\tS2 = sh[ 4 ];\n\
\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 2 ];\n\t\tS5 = sh[ 1 ];\n\t\tS6 = sh[ 0 ];\n\t\
\tdx0 = sx[ 6 ]; // offset increment for innermost loop\n\t\tdx1\
\ = sx[ 5 ] - ( S0*sx[6] );\n\t\tdx2 = sx[ 4 ] - ( S1*sx[5] );\n\t\tdx3 = sx[\
\ 3 ] - ( S2*sx[4] );\n\t\tdx4 = sx[ 2 ] - ( S3*sx[3] );\n\t\tdx5 = sx[ 1 ] -\
\ ( S4*sx[2] );\n\t\tdx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost\
\ loop\n\t} else { // order === 'column-major'\n\t\t// For column-major ndarrays,\
\ the first dimensions have the fastest changing indices...\n\t\tS0 = sh[ 0 ];\n\
\t\tS1 = sh[ 1 ];\n\t\tS2 = sh[ 2 ];\n\t\tS3 = sh[ 3 ];\n\t\tS4 = sh[ 4 ];\n\t\
\tS5 = sh[ 5 ];\n\t\tS6 = sh[ 6 ];\n\t\tdx0 = sx[ 0 ]; // offset\
\ increment for innermost loop\n\t\tdx1 = sx[ 1 ] - ( S0*sx[0] );\n\t\tdx2 = sx[\
\ 2 ] - ( S1*sx[1] );\n\t\tdx3 = sx[ 3 ] - ( S2*sx[2] );\n\t\tdx4 = sx[ 4 ] -\
\ ( S3*sx[3] );\n\t\tdx5 = sx[ 5 ] - ( S4*sx[4] );\n\t\tdx6 = sx[ 6 ] - ( S5*sx[5]\
\ ); // offset increment for outermost loop\n\t}\n\t// Set a pointer to the first\
\ indexed element:\n\tix = x.offset;\n\n\t// Cache a reference to the input ndarray\
\ buffer:\n\txbuf = x.data;\n\n\t// Iterate over the ndarray dimensions...\n\t\
for ( i6 = 0; i6 < S6; i6++ ) {\n\t\tfor ( i5 = 0; i5 < S5; i5++ ) {\n\t\t\tfor\
\ ( i4 = 0; i4 < S4; i4++ ) {\n\t\t\t\tfor ( i3 = 0; i3 < S3; i3++ ) {\n\t\t\t\
\t\tfor ( i2 = 0; i2 < S2; i2++ ) {\n\t\t\t\t\t\tfor ( i1 = 0; i1 < S1; i1++ )\
\ {\n\t\t\t\t\t\t\tfor ( i0 = 0; i0 < S0; i0++ ) {\n\t\t\t\t\t\t\t\tif ( xbuf[\
\ ix ] === value ) {\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\
\t\t\t\t\tix += dx0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tix += dx1;\n\t\t\t\t\t\t\
}\n\t\t\t\t\t\tix += dx2;\n\t\t\t\t\t}\n\t\t\t\t\tix += dx3;\n\t\t\t\t}\n\t\t\t\
\tix += dx4;\n\t\t\t}\n\t\t\tix += dx5;\n\t\t}\n\t\tix += dx6;\n\t}\n\treturn\
\ false;\n}"
- "_generateIntegrityFile(lockfile, patterns, flags, workspaceLayout, artifacts)\
\ {\n var _this3 = this;\n\n return (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)(function*\
\ () {\n const result = (0, (_extends2 || _load_extends()).default)({}, INTEGRITY_FILE_DEFAULTS(),\
\ {\n artifacts\n });\n\n result.topLevelPatterns = patterns;\n\
\n // If using workspaces, we also need to add the workspaces patterns to\
\ the top-level, so that we'll know if a\n // dependency is added or removed\
\ into one of them. We must take care not to read the aggregator (if !loc).\n\
\ //\n // Also note that we can't use of workspaceLayout.workspaces[].manifest._reference.patterns,\
\ because when\n // doing a \"yarn check\", the _reference property hasn't\
\ yet been properly initialized.\n\n if (workspaceLayout) {\n result.topLevelPatterns\
\ = result.topLevelPatterns.filter(function (p) {\n // $FlowFixMe\n \
\ return !workspaceLayout.getManifestByPattern(p);\n });\n\n \
\ for (var _iterator4 = Object.keys(workspaceLayout.workspaces), _isArray4\
\ = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 :\
\ _iterator4[Symbol.iterator]();;) {\n var _ref5;\n\n if (_isArray4)\
\ {\n if (_i4 >= _iterator4.length) break;\n _ref5 = _iterator4[_i4++];\n\
\ } else {\n _i4 = _iterator4.next();\n if (_i4.done)\
\ break;\n _ref5 = _i4.value;\n }\n\n const name\
\ = _ref5;\n\n if (!workspaceLayout.workspaces[name].loc) {\n \
\ continue;\n }\n\n const manifest = workspaceLayout.workspaces[name].manifest;\n\
\n if (manifest) {\n for (var _iterator5 = (_constants ||\
\ _load_constants()).DEPENDENCY_TYPES, _isArray5 = Array.isArray(_iterator5),\
\ _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;)\
\ {\n var _ref6;\n\n if (_isArray5) {\n \
\ if (_i5 >= _iterator5.length) break;\n _ref6 = _iterator5[_i5++];\n\
\ } else {\n _i5 = _iterator5.next();\n \
\ if (_i5.done) break;\n _ref6 = _i5.value;\n \
\ }\n\n const dependencyType = _ref6;\n\n const dependencies\
\ = manifest[dependencyType];\n\n if (!dependencies) {\n \
\ continue;\n }\n\n for (var _iterator6 = Object.keys(dependencies),\
\ _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6\
\ : _iterator6[Symbol.iterator]();;) {\n var _ref7;\n\n \
\ if (_isArray6) {\n if (_i6 >= _iterator6.length) break;\n\
\ _ref7 = _iterator6[_i6++];\n } else {\n \
\ _i6 = _iterator6.next();\n if (_i6.done) break;\n\
\ _ref7 = _i6.value;\n }\n\n const\
\ dep = _ref7;\n\n result.topLevelPatterns.push(`${dep}@${dependencies[dep]}`);\n\
\ }\n }\n }\n }\n }\n\n result.topLevelPatterns.sort((_misc\
\ || _load_misc()).sortAlpha);\n\n if (flags.checkFiles) {\n result.flags.push('checkFiles');\n\
\ }\n\n if (flags.flat) {\n result.flags.push('flat');\n \
\ }\n\n if (_this3.config.ignoreScripts) {\n result.flags.push('ignoreScripts');\n\
\ }\n if (_this3.config.focus) {\n result.flags.push('focus:\
\ ' + _this3.config.focusedWorkspaceName);\n }\n\n if (_this3.config.production)\
\ {\n result.flags.push('production');\n }\n\n if (_this3.config.plugnplayEnabled)\
\ {\n result.flags.push('plugnplay');\n }\n\n const linkedModules\
\ = _this3.config.linkedModules;\n\n if (linkedModules.length) {\n \
\ result.linkedModules = linkedModules.sort((_misc || _load_misc()).sortAlpha);\n\
\ }\n\n for (var _iterator7 = Object.keys(lockfile), _isArray7 = Array.isArray(_iterator7),\
\ _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;)\
\ {\n var _ref8;\n\n if (_isArray7) {\n if (_i7 >= _iterator7.length)\
\ break;\n _ref8 = _iterator7[_i7++];\n } else {\n _i7\
\ = _iterator7.next();\n if (_i7.done) break;\n _ref8 = _i7.value;\n\
\ }\n\n const key = _ref8;\n\n result.lockfileEntries[key]\
\ = lockfile[key].resolved || '';\n }\n\n for (var _iterator8 = _this3._getModulesFolders({\
\ workspaceLayout }), _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8\
\ = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {\n var _ref9;\n\
\n if (_isArray8) {\n if (_i8 >= _iterator8.length) break;\n \
\ _ref9 = _iterator8[_i8++];\n } else {\n _i8 = _iterator8.next();\n\
\ if (_i8.done) break;\n _ref9 = _i8.value;\n }\n\n \
\ const modulesFolder = _ref9;\n\n if (yield (_fs || _load_fs()).exists(modulesFolder))\
\ {\n result.modulesFolders.push(path.relative(_this3.config.lockfileFolder,\
\ modulesFolder));\n }\n }\n\n if (flags.checkFiles) {\n \
\ const modulesRoot = _this3._getModulesRootFolder();\n\n result.files\
\ = (yield _this3._getIntegrityListing({ workspaceLayout })).map(function (entry)\
\ {\n return path.relative(modulesRoot, entry);\n }).sort((_misc\
\ || _load_misc()).sortAlpha);\n }\n\n return result;\n })();\n \
\ }"
- "get isSpotted() {\n return this.getProp(\"DT_BaseEntity\", \"m_bSpotted\"\
);\n }"
- source_sentence: The toggle content, if left empty it will render the default toggle
(seen above).
sentences:
- "update = () => {\n\n\t const timerId = window.requestAnimationFrame(\
\ update );\n\t const elapsed = performance.now() - timestamp;\n\t\
\ const progress = elapsed / duration;\n\t const opacity\
\ = 1.0 - progress > 0 ? 1.0 - progress : 0;\n\t const radius = progress\
\ * canvasWidth * 0.5 / dpr;\n\n\t context.clearRect( 0, 0, canvasWidth,\
\ canvasHeight );\n\t context.beginPath();\n\t context.arc(\
\ x, y, radius, 0, Math.PI * 2 );\n\t context.fillStyle = `rgba(${color.r\
\ * 255}, ${color.g * 255}, ${color.b * 255}, ${opacity})`;\n\t context.fill();\n\
\t context.closePath();\n\n\t if ( progress >= 1.0 ) {\n\
\n\t window.cancelAnimationFrame( timerId );\n\t \
\ this.updateCanvasArcByProgress( 0 );\n\n\t /**\n\t \
\ * Reticle ripple end event\n\t * @type {object}\n\t \
\ * @event Reticle#reticle-ripple-end\n\t */\n\t\
\ this.dispatchEvent( { type: 'reticle-ripple-end' } );\n\n\t \
\ }\n\n\t material.map.needsUpdate = true;\n\n\t }"
- "static _headersDictToHeadersArray(headersDict) {\n const result = [];\n \
\ for (const name of Object.keys(headersDict)) {\n const values = headersDict[name].split('\\\
n');\n for (let i = 0; i < values.length; ++i) {\n result.push({name:\
\ name, value: values[i]});\n }\n }\n return result;\n }"
- "function NavbarToggle() {\n\t (0, _classCallCheck3['default'])(this, NavbarToggle);\n\
\t return (0, _possibleConstructorReturn3['default'])(this, _React$Component.apply(this,\
\ arguments));\n\t }"
pipeline_tag: sentence-similarity
library_name: sentence-transformers
---
# SentenceTransformer based on Shuu12121/CodeModernBERT-Crow-v1.1
This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [Shuu12121/CodeModernBERT-Crow-v1.1](https://huggingface.co/Shuu12121/CodeModernBERT-Crow-v1.1). 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-Crow-v1.1](https://huggingface.co/Shuu12121/CodeModernBERT-Crow-v1.1) <!-- at revision d7baa192c09e1e1da5c39fe9652ea9a4663084f6 -->
- **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': True, 'pooling_mode_mean_tokens': False, '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 = [
'The toggle content, if left empty it will render the default toggle (seen above).',
"function NavbarToggle() {\n\t (0, _classCallCheck3['default'])(this, NavbarToggle);\n\t return (0, _possibleConstructorReturn3['default'])(this, _React$Component.apply(this, arguments));\n\t }",
"update = () => {\n\n\t const timerId = window.requestAnimationFrame( update );\n\t const elapsed = performance.now() - timestamp;\n\t const progress = elapsed / duration;\n\t const opacity = 1.0 - progress > 0 ? 1.0 - progress : 0;\n\t const radius = progress * canvasWidth * 0.5 / dpr;\n\n\t context.clearRect( 0, 0, canvasWidth, canvasHeight );\n\t context.beginPath();\n\t context.arc( x, y, radius, 0, Math.PI * 2 );\n\t context.fillStyle = `rgba(${color.r * 255}, ${color.g * 255}, ${color.b * 255}, ${opacity})`;\n\t context.fill();\n\t context.closePath();\n\n\t if ( progress >= 1.0 ) {\n\n\t window.cancelAnimationFrame( timerId );\n\t this.updateCanvasArcByProgress( 0 );\n\n\t /**\n\t * Reticle ripple end event\n\t * @type {object}\n\t * @event Reticle#reticle-ripple-end\n\t */\n\t this.dispatchEvent( { type: 'reticle-ripple-end' } );\n\n\t }\n\n\t material.map.needsUpdate = true;\n\n\t }",
]
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.6778, -0.0447],
# [ 0.6778, 1.0000, 0.0303],
# [-0.0447, 0.0303, 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: 2,392,064 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: 74.35 tokens</li><li>max: 1024 tokens</li></ul> | <ul><li>min: 11 tokens</li><li>mean: 182.37 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>CachedMultipleNegativesSymmetricRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#cachedmultiplenegativessymmetricrankingloss) with these parameters:
```json
{
"scale": 20.0,
"similarity_fct": "cos_sim",
"mini_batch_size": 128,
"gather_across_devices": false
}
```
### Training Hyperparameters
#### Non-Default Hyperparameters
- `per_device_train_batch_size`: 2048
- `per_device_eval_batch_size`: 2048
- `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`: 2048
- `per_device_eval_batch_size`: 2048
- `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.4281 | 500 | 0.3784 |
| 0.8562 | 1000 | 0.1367 |
| 1.2842 | 1500 | 0.0707 |
| 1.7123 | 2000 | 0.0456 |
| 2.1404 | 2500 | 0.0344 |
| 2.5685 | 3000 | 0.0143 |
| 2.9966 | 3500 | 0.0136 |
### Framework Versions
- Python: 3.10.12
- Sentence Transformers: 5.1.0
- Transformers: 4.55.3
- PyTorch: 2.7.0+cu128
- Accelerate: 1.7.0
- Datasets: 3.6.0
- Tokenizers: 0.21.4
## 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",
}
```
<!--
## 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.*
-->