File size: 5,577 Bytes
3027781 349d09e 3027781 | 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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | ---
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: "Задача:\nНапишите функцию, которая принимает список чисел и возвращает сумму всех элементов.\n\nРешение (код):\n```python\ndef sum_list(numbers):\n total = 0\n for num in numbers:\n total += num\n return total\n```\n\nОтвет:\n"
example_title: "Анализ кода - сумма списка"
- text: "Задача:\nСоздайте функцию для вычисления факториала числа.\n\nРешение (код):\n```python\ndef factorial(n):\n if n <= 1:\n return 1\n return n * factorial(n-1)\n```\n\nОтвет:\n"
example_title: "Анализ кода - факториал"
---
# Code Analyzer Model
Fine-tuned версия модели Qwen2.5-Coder-3B-Instruct для анализа кода студента на основе условия задачи.
## Описание модели
Эта модель предназнаечена для анализа кода студента. Модель принимает:
- **Условие задачи** (текстовое описание)
- **Код решения студента** (Python код)
И возвращает детальный анализ в формате JSON, включающий:
- Оценку правильности решения
- Анализ соответствия требованиям задачи
- Оценку качества кода
- Сильные и слабые стороны решения
- Рекомендации по улучшению
- Детальный анализ с обоснованием
Модель основана на Qwen2.5-Coder-3B-Instruct и дообучена с использованием LoRA (Low-Rank Adaptation).
## Быстрый старт
### Вариант 1: Использование локально (Python)
**Установка зависимостей:**
```bash
pip install transformers torch
```
**Простой пример использования:**
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import json
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
)
# Условие задачи
task = "Напишите функцию, которая принимает список чисел и возвращает сумму всех элементов."
# Код студента
code = """def sum_list(numbers):
total = 0
for num in numbers:
total += num
return total"""
# Форматирование входа
input_text = f"Задача:\n{task}\n\nРешение (код):\n```python\n{code}\n```"
prompt = f"{input_text}\n\nОтвет:\n"
# Генерация анализа
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=1024,
temperature=0.7,
top_p=0.8,
top_k=20,
repetition_penalty=1.05,
do_sample=True
)
# Декодирование и парсинг JSON
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
result = response.split("Ответ:")[-1].strip()
analysis = json.loads(result)
print(json.dumps(analysis, ensure_ascii=False, indent=2))
```
**Или используйте готовые скрипты из репозитория:**
Простой пример (минимальный код):
```bash
python scripts/quick_start_example.py
```
Полный пример с интерактивным режимом:
```bash
python scripts/use_model_example.py
```
## Детали обучения
- **Базовая модель:** Qwen/Qwen2.5-Coder-3B-Instruct
- **Метод обучения:** LoRA (Low-Rank Adaptation)
- **Параметры LoRA:**
- `r`: 16
- `lora_alpha`: 32
- `lora_dropout`: 0.05
- **Фреймворк:** TRL (Transformer Reinforcement Learning)
- **Формат данных:** JSONL с полями `input` и `output`
## Ограничения
- Модель обучена на русском языке для анализа кода
- Может генерировать неточные или неполные ответы
- Требует GPU для эффективной работы
## Использование через API
Модель можно использовать через несколько способов:
### 1. Через transformers (Python)
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
```
### 2. Через Hugging Face Inference API
```python
import requests
API_URL = "https://api-inference.huggingface.co/models/Vilyam888/Code_analyze.1.0"
```
### 3. Через Gradio Space API
Если создан Gradio Space, можно использовать его API endpoint.
### 4. Интеграция в Backend проект
Примеры для FastAPI, Flask, Django, Node.js и других фреймворков.
## Лицензия
Apache 2.0
## Авторы
Fine-tuned by Vilyam888
|