Vilyam888 commited on
Commit
73505e9
·
verified ·
1 Parent(s): be29cba

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +108 -239
README.md CHANGED
@@ -1,239 +1,108 @@
1
- ---
2
- library_name: transformers
3
- license: apache-2.0
4
- base_model: Qwen/Qwen2.5-Coder-3B-Instruct
5
- pipeline_tag: text-generation
6
- inference: true
7
- tags:
8
- - code
9
- - code-analysis
10
- - qwen
11
- - qwen2
12
- - text-generation
13
- - transformers
14
- - fine-tuned
15
- widget:
16
- - text: "Проанализируй этот код:\ndef hello():\n print('Hello, World!')"
17
- example_title: "Анализ простого кода"
18
- - text: "Объясни, что делает эта функция:\ndef factorial(n):\n if n <= 1:\n return 1\n return n * factorial(n-1)"
19
- example_title: "Объяснение функции"
20
- ---
21
-
22
- # Code Analyzer Model
23
-
24
- Fine-tuned версия модели Qwen2.5-Coder-3B-Instruct для анализа кода студента на основе условия задачи.
25
-
26
- ## Описание модели
27
-
28
- Эта модель была обучена на датасете ITOG для анализа кода студента. Модель принимает:
29
- - **Условие задачи** (текстовое описание)
30
- - **Код решения студента** (Python код)
31
-
32
- И возвращает детальный анализ в формате JSON, включающий:
33
- - Оценку правильности решения
34
- - Анализ соответствия требованиям задачи
35
- - Оценку качества кода
36
- - Сильные и слабые стороны решения
37
- - Рекомендации по улучшению
38
- - Детальный анализ с обоснованием
39
-
40
- Модель основана на Qwen2.5-Coder-3B-Instruct и дообучена с использованием LoRA (Low-Rank Adaptation).
41
-
42
- ## Быстрый старт
43
-
44
- ### Вариант 1: Использование виджета на странице модели
45
-
46
- 1. Перейдите на страницу модели: https://huggingface.co/Vilyam888/Code_analyze.1.0
47
- 2. Прокрутите страницу вниз до раздела **"Hosted inference API"** или **"Widget"**
48
- 3. Введите ваш запрос в текстовое поле виджета
49
- 4. Нажмите "Compute" для получения ответа
50
-
51
- ### Вариант 1.5: Создайте Gradio Space (если Inference API недоступен)
52
-
53
- Если опция "Inference" не отображается в меню "Use this model", создайте интерактивный Gradio Space:
54
-
55
- **Быстрая инструкция:**
56
-
57
- 1. Перейдите на https://huggingface.co/spaces
58
- 2. Нажмите **"Create new Space"**
59
- 3. Заполните форму:
60
- - **Space name**: `code-analyzer-demo` (или любое другое)
61
- - **SDK**: выберите **Gradio**
62
- - **Hardware**: **CPU Basic** (бесплатно)
63
- - **Visibility**: **Public**
64
- 4. Нажмите **"Create Space"**
65
- 5. Загрузите файлы:
66
- - `app.py` (из этой модели)
67
- - `requirements_gradio.txt` переименуйте в `requirements.txt`
68
- 6. Дождитесь автоматического запуска (2-5 минут)
69
- 7. Готово! Интерфейс будет доступен на странице Space
70
-
71
- **Подробная инструкция:** См. файл `GRADIO_SPACE_INSTRUCTIONS.md` в корне проекта
72
-
73
- ### Вариант 2: Использование локально (Python)
74
-
75
- **Установка зависимостей:**
76
- ```bash
77
- pip install transformers torch
78
- ```
79
-
80
- **Простой пример использования:**
81
- ```python
82
- from transformers import AutoModelForCausalLM, AutoTokenizer
83
- import torch
84
- import json
85
-
86
- model_name = "Vilyam888/Code_analyze.1.0"
87
-
88
- # Загрузка модели
89
- tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
90
- model = AutoModelForCausalLM.from_pretrained(
91
- model_name,
92
- torch_dtype=torch.bfloat16,
93
- device_map="auto",
94
- trust_remote_code=True
95
- )
96
-
97
- # Условие задачи
98
- task = "Напишите функцию, которая принимает список чисел и возвращает сумму всех элементов."
99
-
100
- # Код студента
101
- code = """def sum_list(numbers):
102
- total = 0
103
- for num in numbers:
104
- total += num
105
- return total"""
106
-
107
- # Форматирование входа
108
- input_text = f"Задача:\n{task}\n\nРешение (код):\n```python\n{code}\n```"
109
- prompt = f"{input_text}\n\nОтвет:\n"
110
-
111
- # Генерация анализа
112
- inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
113
- with torch.no_grad():
114
- outputs = model.generate(
115
- **inputs,
116
- max_new_tokens=1024,
117
- temperature=0.7,
118
- top_p=0.8,
119
- top_k=20,
120
- repetition_penalty=1.05,
121
- do_sample=True
122
- )
123
-
124
- # Декодирование и парсинг JSON
125
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
126
- result = response.split("Ответ:")[-1].strip()
127
- analysis = json.loads(result)
128
-
129
- print(json.dumps(analysis, ensure_ascii=False, indent=2))
130
- ```
131
-
132
- **Или используйте готовые скрипты из репозитория:**
133
-
134
- Простой пример (минимальный код):
135
- ```bash
136
- python scripts/quick_start_example.py
137
- ```
138
-
139
- Полный пример с интерактивным режимом:
140
- ```bash
141
- python scripts/use_model_example.py
142
- ```
143
-
144
- ## Использование
145
-
146
- ### С помощью transformers
147
-
148
- ```python
149
- from transformers import AutoModelForCausalLM, AutoTokenizer
150
- import torch
151
-
152
- model_name = "Vilyam888/Code_analyze.1.0"
153
-
154
- tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
155
- model = AutoModelForCausalLM.from_pretrained(
156
- model_name,
157
- torch_dtype=torch.bfloat16,
158
- device_map="auto",
159
- trust_remote_code=True
160
- )
161
-
162
- # Формат запроса
163
- prompt = "Проанализируй этот код:\ndef hello():\n print('Hello, World!')"
164
-
165
- # Форматирование в стиле обучения
166
- text = f"{prompt}\n\nОтвет:\n"
167
-
168
- inputs = tokenizer(text, return_tensors="pt").to(model.device)
169
-
170
- with torch.no_grad():
171
- outputs = model.generate(
172
- **inputs,
173
- max_new_tokens=512,
174
- temperature=0.7,
175
- top_p=0.8,
176
- top_k=20,
177
- repetition_penalty=1.05,
178
- do_sample=True
179
- )
180
-
181
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
182
- print(response)
183
- ```
184
-
185
- ### С помощью pipeline
186
-
187
- ```python
188
- from transformers import pipeline
189
-
190
- model_name = "Vilyam888/Code_analyze.1.0"
191
-
192
- generator = pipeline(
193
- "text-generation",
194
- model=model_name,
195
- tokenizer=model_name,
196
- trust_remote_code=True,
197
- device_map="auto"
198
- )
199
-
200
- prompt = "Объясни, что делает этот код:\ndef factorial(n):\n if n <= 1:\n return 1\n return n * factorial(n-1)"
201
- text = f"{prompt}\n\nОтвет:\n"
202
-
203
- result = generator(
204
- text,
205
- max_new_tokens=512,
206
- temperature=0.7,
207
- top_p=0.8,
208
- top_k=20,
209
- repetition_penalty=1.05,
210
- do_sample=True
211
- )
212
-
213
- print(result[0]["generated_text"])
214
- ```
215
-
216
- ## Детали обучения
217
-
218
- - **Базовая модель:** Qwen/Qwen2.5-Coder-3B-Instruct
219
- - **Метод обучения:** LoRA (Low-Rank Adaptation)
220
- - **Параметры LoRA:**
221
- - `r`: 16
222
- - `lora_alpha`: 32
223
- - `lora_dropout`: 0.05
224
- - **Фреймворк:** TRL (Transformer Reinforcement Learning)
225
- - **Формат данных:** JSONL с полями `input` и `output`
226
-
227
- ## Ограничения
228
-
229
- - Модель обучена на русском языке для анализа кода
230
- - Может генерировать неточные или неполные ответы
231
- - Требует GPU для эффективной работы
232
-
233
- ## Лицензия
234
-
235
- Apache 2.0
236
-
237
- ## Авторы
238
-
239
- Fine-tuned by Vilyam888
 
1
+ ---
2
+ library_name: transformers
3
+ license: apache-2.0
4
+ base_model: Qwen/Qwen2.5-Coder-3B-Instruct
5
+ pipeline_tag: text-generation
6
+ inference: true
7
+ tags:
8
+ - code
9
+ - code-analysis
10
+ - qwen
11
+ - qwen2
12
+ - text-generation
13
+ - transformers
14
+ - fine-tuned
15
+ widget:
16
+ - text: "Проанализируй этот код:\ndef hello():\n print('Hello, World!')"
17
+ example_title: "Анализ простого кода"
18
+ - text: "Объясни, что делает эта функция:\ndef factorial(n):\n if n <= 1:\n return 1\n return n * factorial(n-1)"
19
+ example_title: "Объяснение функции"
20
+ ---
21
+
22
+ # Code Analyzer Model
23
+
24
+ Fine-tuned версия модели Qwen2.5-Coder-3B-Instruct для анализа кода студента на основе условия задачи.
25
+
26
+ ## Описание модели
27
+
28
+ Эта модель предназначена для анализа кода студента, нахождение слабых сильных сторон и выставления оценки. Модель принимает:
29
+ - **Условие задачи** (текстовое описание)
30
+ - **Код решения студента** (Python код)
31
+
32
+ И возвращает детальный анализ в формате JSON, включающий:
33
+ - Оценку правильности решения
34
+ - Анализ соответствия требованиям задачи
35
+ - Оценку качества кода
36
+ - Сильные и слабые стороны решения
37
+ - Рекомендации по улучшению
38
+ - Детальный анализ с обоснованием
39
+
40
+ Модель основана на Qwen2.5-Coder-3B-Instruct и дообучена с использованием LoRA (Low-Rank Adaptation).
41
+
42
+
43
+ ## Использование
44
+
45
+ ### С помощью transformers
46
+
47
+ ```python
48
+ from transformers import AutoModelForCausalLM, AutoTokenizer
49
+ import torch
50
+
51
+ model_name = "Vilyam888/Code_analyze.1.0"
52
+
53
+ tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
54
+ model = AutoModelForCausalLM.from_pretrained(
55
+ model_name,
56
+ torch_dtype=torch.bfloat16,
57
+ device_map="auto",
58
+ trust_remote_code=True
59
+ )
60
+
61
+ # Формат запроса
62
+ prompt = "Проанализируй этот код:\ndef hello():\n print('Hello, World!')"
63
+
64
+ # Форматирование в стиле обучения
65
+ text = f"{prompt}\n\nОтвет:\n"
66
+
67
+ inputs = tokenizer(text, return_tensors="pt").to(model.device)
68
+
69
+ with torch.no_grad():
70
+ outputs = model.generate(
71
+ **inputs,
72
+ max_new_tokens=512,
73
+ temperature=0.7,
74
+ top_p=0.8,
75
+ top_k=20,
76
+ repetition_penalty=1.05,
77
+ do_sample=True
78
+ )
79
+
80
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
81
+ print(response)
82
+ ```
83
+
84
+
85
+ ## Детали обучения
86
+
87
+ - **Базовая модель:** Qwen/Qwen2.5-Coder-3B-Instruct
88
+ - **Метод обучения:** LoRA (Low-Rank Adaptation)
89
+ - **Параметры LoRA:**
90
+ - `r`: 16
91
+ - `lora_alpha`: 32
92
+ - `lora_dropout`: 0.05
93
+ - **Фреймворк:** TRL (Transformer Reinforcement Learning)
94
+ - **Формат данных:** JSONL с полями `input` и `output`
95
+
96
+ ## Ограничения
97
+
98
+ - Модель обучена на русском языке для анализа кода
99
+ - Может генерировать неточные или неполные ответы
100
+ - Требует GPU для эффективной работы
101
+
102
+ ## Лицензия
103
+
104
+ Apache 2.0
105
+
106
+ ## Авторы
107
+
108
+ Fine-tuned by Vilyam888