Xalk07/KSTU_T-lite-2.1
Русский
KSTU_T-lite-2.1 - это дообученная модель на основе T-lite-it-2.1 от Т-банка. Предназначена для помощи в поиске и выдаче информации об университетском комплексе КГТУ, Россия. В университетский комплекс входит четыре образовательных организации: Калининградский Государственный Технический Университет (КГТУ), Балтийская Государственная Академия Рыбопромыслового Флота (БГАРФ), Калининградский Морской Рыбопромышленный Колледж (КМРК) и Санкт-Петербургский Морской Рыбопромышленный Колледж (СПбМРК).
Модель обучалась в 2 этапа: дополнение предложения (2 эпохи) и обучения инструкциям (3 эпохи). И знает о событиях до второй половины 2025 года.
Метрики:
Сравнение с другим проектом от Донецкого Государственного университета:
Использование: Вы можете использовать эту модель, квантизированные варианты или интерактивное пространство. Квантизированные варианты доступны здесь: Xalk07/KSTU_T-lite-2.1-GGUF Интерактивное пространство ещё не создано, в планах.
Python:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import logging
import warnings
torch.manual_seed(42)
MODEL_PATH = "./KSTU_T-lite-2.1"
if torch.cuda.is_available():
DEVICE = "cuda"
elif getattr(torch.backends, "mps", None) is not None and torch.backends.mps.is_available():
DEVICE = "mps" # Apple Silicon
else:
DEVICE = "cpu"
print(f"Using device: {DEVICE}")
# ---------------------------------------------------------
# 1. Tokenizer
# ---------------------------------------------------------
logging.getLogger("transformers.tokenization_utils_base").setLevel(logging.ERROR)
tokenizer = AutoTokenizer.from_pretrained(
MODEL_PATH,
trust_remote_code=True,
)
# ---------------------------------------------------------
# 2. Model
# ---------------------------------------------------------
dtype = torch.bfloat16 if DEVICE != "cpu" else torch.float32
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
dtype=dtype,
device_map="auto",
trust_remote_code=True,
)
model.eval()
# ---------------------------------------------------------
# 3. Prompt
# ---------------------------------------------------------
prompt = "Зачем поступать в КГТУ на специальность «Прикладная информатика»?"
messages = [
{
"role": "system",
"content": (
"Ты виртуальный ассистент университетского комплекса КГТУ. "
"Отвечай кратко и по существу."
)
},
{
"role": "user",
"content": prompt
},
]
# ---------------------------------------------------------
# 4. Chat template
# ---------------------------------------------------------
try:
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False,
)
except TypeError:
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
# ---------------------------------------------------------
# 5. Tokenize
# ---------------------------------------------------------
model_inputs = tokenizer(
[text],
return_tensors="pt",
padding=True,
).to(model.device)
# ---------------------------------------------------------
# 6. Generation
# ---------------------------------------------------------
with torch.inference_mode():
generated_ids = model.generate(
**model_inputs,
max_new_tokens=250,
do_sample=True,
temperature=0.7,
top_p=0.8,
top_k=20,
min_p=0.0,
repetition_penalty=1.15,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=(
tokenizer.pad_token_id
if tokenizer.pad_token_id is not None
else tokenizer.eos_token_id
),
use_cache=True,
)
generated_ids = generated_ids[:, model_inputs.input_ids.shape[1]:]
# ---------------------------------------------------------
# 7. Decode
# ---------------------------------------------------------
response = tokenizer.decode(
generated_ids[0],
skip_special_tokens=True,
).strip()
print("=== RESPONSE ===")
print(response)
print("================")Для более точных ответов используйте RAG и/или вызов инструментов.
Подробнее о модели можно будет узнать на конференциях и в статьях. (Будут добавляться в описание карточки)
English
KSTU_T-lite-2.1 is a model fine-tuned from T-lite-it-2.1 by T-Bank. It is designed to assist in retrieving and providing information about the KSTU university complex in Russia. The university complex comprises four educational institutions: Kaliningrad State Technical University (KSTU), the Baltic Fishing Fleet State Academy (BFFSA), the Kaliningrad Marine Fishing College (KMFC), and the St. Petersburg Marine Fishing College (SPMFC).
The model was trained in two stages: sentence completion (2 epochs) and instruction tuning (3 epochs). And it knows about events up to the second half of 2025.
Metrics:
Comparison with another project from Donetsk State University:
Usage: You can use this model, its quantized versions, or the interactive space. Quantized versions available here: Xalk07/KSTU_T-lite-2.1-GGUF An interactive space is planned but has not yet been created.
Python:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import logging
import warnings
torch.manual_seed(42)
MODEL_PATH = "./KSTU_T-lite-2.1"
if torch.cuda.is_available():
DEVICE = "cuda"
elif getattr(torch.backends, "mps", None) is not None and torch.backends.mps.is_available():
DEVICE = "mps" # Apple Silicon
else:
DEVICE = "cpu"
print(f"Using device: {DEVICE}")
# ---------------------------------------------------------
# 1. Tokenizer
# ---------------------------------------------------------
logging.getLogger("transformers.tokenization_utils_base").setLevel(logging.ERROR)
tokenizer = AutoTokenizer.from_pretrained(
MODEL_PATH,
trust_remote_code=True,
)
# ---------------------------------------------------------
# 2. Model
# ---------------------------------------------------------
dtype = torch.bfloat16 if DEVICE != "cpu" else torch.float32
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
dtype=dtype,
device_map="auto",
trust_remote_code=True,
)
model.eval()
# ---------------------------------------------------------
# 3. Prompt
# ---------------------------------------------------------
prompt = "Зачем поступать в КГТУ на специальность «Прикладная информатика»?"
messages = [
{
"role": "system",
"content": (
"Ты виртуальный ассистент университетского комплекса КГТУ. "
"Отвечай кратко и по существу."
)
},
{
"role": "user",
"content": prompt
},
]
# ---------------------------------------------------------
# 4. Chat template
# ---------------------------------------------------------
try:
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False,
)
except TypeError:
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
# ---------------------------------------------------------
# 5. Tokenize
# ---------------------------------------------------------
model_inputs = tokenizer(
[text],
return_tensors="pt",
padding=True,
).to(model.device)
# ---------------------------------------------------------
# 6. Generation
# ---------------------------------------------------------
with torch.inference_mode():
generated_ids = model.generate(
**model_inputs,
max_new_tokens=250,
do_sample=True,
temperature=0.7,
top_p=0.8,
top_k=20,
min_p=0.0,
repetition_penalty=1.15,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=(
tokenizer.pad_token_id
if tokenizer.pad_token_id is not None
else tokenizer.eos_token_id
),
use_cache=True,
)
generated_ids = generated_ids[:, model_inputs.input_ids.shape[1]:]
# ---------------------------------------------------------
# 7. Decode
# ---------------------------------------------------------
response = tokenizer.decode(
generated_ids[0],
skip_special_tokens=True,
).strip()
print("=== RESPONSE ===")
print(response)
print("================")For more accurate answers, use RAG and/or tool calling.
More information about the model will be available at conferences and in articles. (These will be added to the card description.)
