| | --- |
| | 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 |
| |
|