-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtext-structure.txt
More file actions
111 lines (104 loc) · 4.01 KB
/
Copy pathtext-structure.txt
File metadata and controls
111 lines (104 loc) · 4.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
1. Úvod
├─ 1.1 Motivace práce
│ ├─ Vývoj systému Kelvin
│ ├─ Usnadnění hodnocení úloh učitelům
│ └─ Velký počet studentů a časová náročnost ručního hodnocení
├─ 1.2 Cíl práce
│ ├─ Integrace systému založeného na LLM
│ ├─ Vytváření podpůrných komentářů ke zdrojovému kódu
│ └─ Zhodnocení studentského řešení a návrhy na zlepšení
└─ 1.3 Struktura práce
2. Systém Kelvin
├─ 2.1 Účel a použití systému
│ ├─ Student odevzdává úkol
│ ├─ Učitel hodnotí řešení
│ └─ Učitel uděluje zpětnou vazbu a bodové hodnocení
├─ 2.2 Architektura systému
│ ├─ Backend
│ ├─ API
│ ├─ Frontend
│ └─ Architektonický diagram systému
├─ 2.3 Nasazení a provoz
│ ├─ Nasazení pomocí Dockeru
│ └─ Diagram nasazení (deployment diagram)
└─ 2.4 Vývojové omezení a proces
├─ Atomické pull requesty
├─ Malý rozsah změn v pull requestech
├─ Dlouhé čekání na code review
├─ Migrace frontendu (Svelte → Vue)
├─ Velký probíhající refaktoring
└─ Historický vývoj systému Kelvin
└─ Původ jako bakalářská / diplomová práce
└─ Postupný vznik technického dluhu („špagetový kód“)
3. Velké jazykové modely
├─ 3.1 Základní principy LLM
│ ├─ Co je to LLM
│ ├─ Historický vývoj
│ ├─ Tokeny, parametry, kontext
│ └─ Základní princip fungování modelů
├─ 3.2 Analýza zdrojového kódu pomocí LLM
│ ├─ Co je k tomu potřeba
│ ├─ Postup analýzy
│ └─ Požadavky na sémantické kroky a kontext
├─ 3.3 Porovnání s tradičními statickými analyzátory
│ ├─ Typy statických analyzátorů
│ ├─ Zásadní rozdíly v přístupu
│ └─ Možnost kombinace přístupů
└─ 3.4 Rizika a omezení použití LLM
├─ Limit na počet tokenů
├─ Výpočetní náročnost (GPU / CPU)
├─ Paměťové nároky
└─ Ochrana dat a otázky GDPR při použití cloudových řešení
4. Výběr modelů a vhodnost pro integraci
├─ 4.1 Kritéria výběru
│ ├─ Kvalita výstupů
│ ├─ Dostupnost modelu
│ ├─ Náročnost provozu
│ └─ Schopnost pojmout celé studentské řešení
├─ 4.2 Porovnání možností nasazení
│ ├─ Cloudové API
│ │ ├─ Hardwarové nároky
│ │ ├─ Limity
│ │ ├─ Ochrana dat
│ │ └─ Náklady
│ └─ On-premise řešení
│ ├─ Hardwarové nároky
│ ├─ Limity
│ ├─ Ochrana dat
│ └─ Náklady
├─ 4.3 Analýza dostupných modelů
│ ├─ Modely zaměřené na zdrojový kód
│ └─ Obecné modely
├─ 4.4 Návrh práce s prompty
│ ├─ Struktura promptu
│ ├─ Strategie promptování
│ └─ Typy výstupů a iterativní ladění
└─ 4.5 Volba modelu, promptu a přístupu
├─ Srovnání strategií promptování
├─ Zvolený způsob nasazení
├─ Zvolený model
└─ Zvolené prompty
5. Implementace do systému Kelvin
├─ 5.1 Backend
│ ├─ Integrace nové asynchronní části systému Kelvin
│ ├─ Nezablokování existující evaluační pipeline
│ ├─ Práce s LLM a odesílání dat
│ └─ Architektonický / sekvenční diagram
└─ 5.2 Frontend
├─ Zobrazení výstupu LLM
└─ Interakce učitele s návrhy LLM
6. Vyhodnocení řešení
├─ 6.1 Scénáře použití
│ └─ Jak bude systém v praxi používán
├─ 6.2 Přínos pro učitele
│ └─ Jak systém pomáhá při hodnocení
└─ 6.3 Možný dopad na hodnocení
├─ Riziko přehnaného spoléhání se na LLM
├─ Chybovost modelu
└─ Nutnost lidské kontroly
7. Doporučení pro další rozvoj systému
├─ Iterativní zlepšování promptů
├─ Využití dalších verzí modelů
├─ Personalizace podle typu úlohy nebo cvičení (nejen C++)
└─ Další možnosti rozšíření systému
8. Závěr