初始化项目,由ModelHub XC社区提供模型
Model: Vilyam888/Code_analyze.1.0 Source: Original Platform
This commit is contained in:
161
README.md
Normal file
161
README.md
Normal file
@@ -0,0 +1,161 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user