introduction_en.ipynb 2.6 KB
Notebook
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "db267b71",
   "metadata": {},
   "source": [
    "## Overview\n",
    "\n",
    "This is an updated version of cointegrated/rubert-tiny: a small Russian BERT-based encoder with high-quality sentence embeddings. This [post in Russian](https://habr.com/ru/post/669674/) gives more details.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "801acf5c",
   "metadata": {},
   "source": [
    "The differences from the previous version include:\n",
    "- a larger vocabulary: 83828 tokens instead of 29564;\n",
    "- larger supported sequences: 2048 instead of 512;\n",
    "- sentence embeddings approximate LaBSE closer than before;\n",
    "- meaningful segment embeddings (tuned on the NLI task)\n",
    "- the model is focused only on Russian.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2c7dbc1",
   "metadata": {},
   "source": [
    "The model should be used as is to produce sentence embeddings (e.g. for KNN classification of short texts) or fine-tuned for a downstream task.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ff63df2",
   "metadata": {},
   "source": [
    "Sentence embeddings can be produced as follows:\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2b073558",
   "metadata": {},
   "source": [
    "## how to use"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c98c0cce",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install --upgrade paddlenlp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "81978806",
   "metadata": {},
   "outputs": [],
   "source": [
    "import paddle\n",
    "from paddlenlp.transformers import AutoModel\n",
    "\n",
    "model = AutoModel.from_pretrained(\"cointegrated/rubert-tiny2\")\n",
    "input_ids = paddle.randint(100, 200, shape=[1, 20])\n",
    "print(model(input_ids))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "33dbe378",
   "metadata": {},
   "source": [
    "> The model introduction and model weights originate from [https://huggingface.co/cointegrated/rubert-tiny2](https://huggingface.co/cointegrated/rubert-tiny2) and were converted to PaddlePaddle format for ease of use in PaddleNLP.\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}