Files
Code_analyze.1.0/README.md
ModelHub XC e742eaaf38 初始化项目,由ModelHub XC社区提供模型
Model: Vilyam888/Code_analyze.1.0
Source: Original Platform
2026-06-14 23:21:12 +08:00

162 lines
5.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 для анализа кода студента на основе условия задачи (for Machine Learning tasks).
## Описание модели
Эта модель предназнаечена для анализа кода студента. Модель принимает:
- **Условие задачи** (текстовое описание)
- **Код решения студента** (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