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
python3 -m vllm.entrypoints.openai.api_server --model MTSAIR/Cotype-Nano --port 8000
Recommended generation parameters and system prompt
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
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, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ. ΠΠ½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° ΡΠ°ΡΡΠ°ΠΏΠΈ, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΡΡΠ°ΠΏΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- Π‘ΠΎΠ·Π΄Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ
AppΠ΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°.- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°ΡΡΠ°ΠΏΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ°ΡΡΠ°ΠΏΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ
uvicornΠ΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°:pip install fastapi uvicornΠ¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°
AppΠ‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ
App, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ:from fastapi import FastAPI app = FastAPI()Π¨Π°Π³ 3: Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΡΡΡΠΎΠ²
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΌΠ°ΡΡΡΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ endpoint Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° Π½Π° GET-Π·Π°ΠΏΡΠΎΡΡ:
@app.get("/") async def read_root(): return {"message": "Hello, FastAPI!"}Π¨Π°Π³ 4: ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
uvicornΠ΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°: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 |
- Downloads last month
- 488