Cotype-Nano / README.md
AlanRobotics's picture
Update README.md
6f90a97 verified
---
library_name: transformers
language:
- ru
- en
pipeline_tag: text-generation
license: other
license_name: apache-2.0
license_link: https://huggingface.co/MTSAIR/Cotype-Nano/blob/main/Apache%20License%20MTS%20AI.docx
---
# Cotype-Nano🤖
MTSAIR/Cotype-Nano – это легковесная LLM, разработанная для выполнения задач с минимальными ресурсами. Она оптимизирована для быстрого и эффективного взаимодействия с пользователями, обеспечивая высокую производительность даже в условиях ограниченных ресурсов.
Cotype Nano is a lightweight LLM, designed to perform tasks with minimal resources. It is optimized for fast and efficient interaction with users, providing high performance even under resource-constrained conditions.
### Inference with vLLM
```sh
python3 -m vllm.entrypoints.openai.api_server --model MTSAIR/Cotype-Nano --port 8000
```
### Recommended generation parameters and system prompt
```python
import openai
import pandas as pd
from tqdm import tqdm
openai.api_key = 'xxx'
endpoint = 'http://localhost:8000/v1'
model = 'MTSAIR/Cotype-Nano'
openai.api_base = endpoint
# Possible system prompt:
# {"role": "system", "content": "Ты — ИИ-помощник. Тебе дано задание: необходимо сгенерировать подробный и развернутый ответ."},
response = openai.ChatCompletion.create(
model=model,
temperature=0.4, # 0.0 is also allowed
frequency_penalty=0.0,
max_tokens=2048,
top_p=0.8, # 0.1 is also allowed
messages=[
{"role": "user", "content": "Как мне обучить модель meta-llama/Llama-3.2-1B с помощью библиотеки transformers?"}
]
)
answer = response["choices"][0]["message"]["content"]
print(answer)
```
### Inference with Huggingface
```python
from transformers import pipeline
pipe = pipeline("text-generation", model="MTSAIR/Cotype-Nano", device="cuda")
messages = [
{"role": "system", "content": "Ты — ИИ-помощник. Тебе дано задание: необходимо сгенерировать подробный и развернутый ответ."},
{"role": "user", "content": "Расскажи мне про ИИ"},
]
res = pipe(messages, max_length=1024)
print(res[0]['generated_text'][-1]['content'])
```
## Example request
**Request:** Напиши простой сервер на фастапи
#### Cotype-Nano response:
> Фастапи (FastAPI) — это современный фреймворк для создания веб-сервисов на языке Python, который использует асинхронный синтаксис и поддерживает генераторы. Он подходит для создания сложных веб-приложений и часто используется в сочетании с базой данных.
>
> Для создания простого сервера на фастапи, вам понадобится:
>
> 1. Установить фастапи и необходимые библиотеки.
> 2. Создать базовый класс `App` для настройки сервера.
> 3. Реализовать маршруты и обработчики для вашего веб-приложения.
>
> ### Шаг 1: Установка фастапи и необходимых библиотек
>
> Для начала установите фастапи и другие необходимые библиотеки, такие как `uvicorn` для запуска сервера:
>
> ```bash
> pip install fastapi uvicorn
> ```
>
> ### Шаг 2: Создание класса `App`
>
> Создайте класс `App`, который будет настраивать сервер:
>
> ```python
> from fastapi import FastAPI
>
> app = FastAPI()
> ```
>
> ### Шаг 3: Реализация маршрутов
>
> Добавьте маршруты и обработчики для вашего веб-приложения. Например, создадим простой endpoint для ответа на GET-запросы:
>
> ```python
> @app.get("/")
> async def read_root():
> return {"message": "Hello, FastAPI!"}
> ```
>
> ### Шаг 4: Запуск сервера
>
> Используйте `uvicorn` для запуска сервера:
>
> ```bash
> uvicorn main:app --reload
> ```
>
> Здесь `main` — это имя файла с вашим кодом, а `app` — это экземпляр класса `App`, который вы создали ранее.
>
>`--reload` указывает `uvicorn` перезагружать сервер при изменении кода.
>
> Теперь, когда вы запустите сервер, он будет доступен по адресу `http://127.0.0.1:8000`. Вы можете отправить GET-запрос на `/` и увидеть ответ:
>
> ```
> {
> "message": "Hello, FastAPI!"
> }
> ```
>
> Это базовый пример того, как можно создать простой сервер на фастапи. Вы можете расширять и модифицировать его, добавляя новые маршруты, обработчики и функциональность в соответствии с вашими требованиями.
### Training process
The model was trained in two stages. In the first stage, MLP layers were trained on mathematics and code. In the second stage, the entire model was trained on internal and open synthetic instructional datasets.
### ru-llm-arena: **30.2** (local measurement)
| Model | Score | 95% CI | Avg. #Tokens |
|---------------------------------------------|-------|-------------------------|---------------|
| **Cotype-Nano** | **30.2** | **+2.2 / -1.3** | **542** |
| vikhr-it-5.3-fp16-32k | 27.8 | +1.5 / -2.1 | 519.71 |
| vikhr-it-5.3-fp16 | 22.73 | +1.8 / -1.7 | 523.45 |
| **Cotype-Nano-4bit** | **22.5** | **+2.1 / -1.4** | **582** |
| kolibri-vikhr-mistral-0427 | 22.41 | +1.6 / -1.9 | 489.89 |
| snorkel-mistral-pairrm-dpo | 22.41 | +1.7 / -1.6 | 773.8 |
| storm-7b | 20.62 | +1.4 / -1.6 | 419.32 |
| neural-chat-7b-v3-3 | 19.04 | +1.8 / -1.5 | 927.21 |
| Vikhrmodels-Vikhr-Llama-3.2-1B-instruct | 19.04 | +1.2 / -1.5 | 958.63 |
| gigachat_lite | 17.2 | +1.5 / -1.5 | 276.81 |
| Vikhrmodels-Vikhr-Qwen-2.5-0.5b-Instruct | 16.5 | +1.5 / -1.7 | 583.5 |
| Qwen-Qwen2.5-1.5B-Instruct | 16.46 | +1.3 / -1.3 | 483.67 |
| Vikhrmodels-vikhr-qwen-1.5b-it | 13.19 | +1.3 / -1.1 | 2495.38 |
| meta-llama-Llama-3.2-1B-Instruct | 4.04 | +0.6 / -0.8 | 1240.53 |
| Qwen-Qwen2.5-0.5B-Instruct | 4.02 | +0.7 / -0.8 | 829.87 |