metadata
library_name: transformers
license: apache-2.0
base_model: Qwen/Qwen2.5-Coder-3B-Instruct
pipeline_tag: text-generation
inference: true
tags:
- code
- code-analysis
- qwen
- qwen2
- text-generation
- transformers
- fine-tuned
widget:
- text: |-
Проанализируй этот код:
def hello():
print('Hello, World!')
example_title: Анализ простого кода
- text: |-
Объясни, что делает эта функция:
def factorial(n):
if n <= 1:
return 1
return n * factorial(n-1)
example_title: Объяснение функции
Code Analyzer Model
Fine-tuned версия модели Qwen2.5-Coder-3B-Instruct для анализа кода студента на основе условия задачи.
Описание модели
Эта модель предназначена для анализа кода студента, нахождение слабых сильных сторон и выставления оценки. Модель принимает:
- Условие задачи (текстовое описание)
- Код решения студента (Python код)
И возвращает детальный анализ в формате JSON, включающий:
- Оценку правильности решения
- Анализ соответствия требованиям задачи
- Оценку качества кода
- Сильные и слабые стороны решения
- Рекомендации по улучшению
- Детальный анализ с обоснованием
Модель основана на Qwen2.5-Coder-3B-Instruct и дообучена с использованием LoRA (Low-Rank Adaptation).
Использование
С помощью transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "Vilyam888/Code_analyze.1.0"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
# Формат запроса
prompt = "Проанализируй этот код:\ndef hello():\n print('Hello, World!')"
# Форматирование в стиле обучения
text = f"{prompt}\n\nОтвет:\n"
inputs = tokenizer(text, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.7,
top_p=0.8,
top_k=20,
repetition_penalty=1.05,
do_sample=True
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
Детали обучения
- Базовая модель: Qwen/Qwen2.5-Coder-3B-Instruct
- Метод обучения: LoRA (Low-Rank Adaptation)
- Параметры LoRA:
r: 16lora_alpha: 32lora_dropout: 0.05
- Фреймворк: TRL (Transformer Reinforcement Learning)
- Формат данных: JSONL с полями
inputиoutput
Ограничения
- Модель обучена на русском языке для анализа кода
- Может генерировать неточные или неполные ответы
- Требует GPU для эффективной работы
Лицензия
Apache 2.0
Авторы
Fine-tuned by Vilyam888