Code_analyze.1.0 / README.md
Vilyam888's picture
Update README.md
73505e9 verified
|
raw
history blame
3.55 kB
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: 16
    • lora_alpha: 32
    • lora_dropout: 0.05
  • Фреймворк: TRL (Transformer Reinforcement Learning)
  • Формат данных: JSONL с полями input и output

Ограничения

  • Модель обучена на русском языке для анализа кода
  • Может генерировать неточные или неполные ответы
  • Требует GPU для эффективной работы

Лицензия

Apache 2.0

Авторы

Fine-tuned by Vilyam888