introduction_cn.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": "9eef057a",
   "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": "08d9a049",
   "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": "8a7ba50b",
   "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": "184e1cc6",
   "metadata": {},
   "source": [
    "Sentence embeddings can be produced as follows:\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a9613056",
   "metadata": {},
   "source": [
    "## How to use"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d60b7b64",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install --upgrade paddlenlp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "716f2b63",
   "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": "0ba8c599",
   "metadata": {},
   "source": [
    "> 此模型介绍及权重来源于[https://huggingface.co/cointegrated/rubert-tiny2](https://huggingface.co/cointegrated/rubert-tiny2),并转换为飞桨模型格式。\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
}