ექსპერიმენტები და ვარგისიანობის შეფასება
PRX-ში თვით-ევოლუციის სისტემა კონტროლირებულ ექსპერიმენტებსა და ვარგისიანობის შეფასებას იყენებს იმის გასაზომად, შემოთავაზებული ცვლილებები რეალურად აუმჯობესებს თუ არა აგენტის წარმადობას. ყოველი L1-ზე მაღალი ევოლუციის წინადადება A/B ექსპერიმენტით ტესტირდება მუდმივ მიღებამდე.
მიმოხილვა
ექსპერიმენტის სისტემა უზრუნველყოფს:
- A/B ტესტირება -- საკონტროლო და სამკურნალო ვარიანტების პარალელური გაშვება
- ვარგისიანობის ქულირება -- აგენტის წარმადობის რაოდენობრივი შეფასება კომპოზიტური ქულით
- სტატისტიკური ვალიდაცია -- გაუმჯობესებების სარწმუნოობის უზრუნველყოფა, შემთხვევითი ხმაურის გამორიცხვით
- ავტომატური კონვერგენცია -- გამარჯვებულის დაწინაურება და წაგებულის გაუქმება შედეგების დამაჯერებლობისას
ექსპერიმენტის სიცოცხლის ციკლი
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────┐
│ შექმნა │───►│ გაშვება │───►│ შეფასება │───►│კონვერგენცია│
│ │ │ │ │ │ │ │
│ვარიანტების│ │ტრაფიკის │ │ვარგისიან-│ │დაწინაურება│
│განსაზღვრა│ │გაყოფა │ │ობის │ │ან უარყოფა │
│ │ │ │ │შედარება │ │ │
└──────────┘ └──────────┘ └──────────┘ └───────────┘1. შექმნა
ექსპერიმენტი იქმნება, როდესაც ევოლუციის პაიპლაინი წინადადებას წარმოქმნის:
- საკონტროლო ვარიანტი, რომელიც მიმდინარე კონფიგურაციას წარმოადგენს
- სამკურნალო ვარიანტი, რომელიც შემოთავაზებულ ცვლილებას წარმოადგენს
- ექსპერიმენტის პარამეტრები: ხანგრძლივობა, ნიმუშის ზომა, ტრაფიკის გაყოფა
2. გაშვება
ექსპერიმენტის განმავლობაში სესიები ვარიანტებზე ნაწილდება:
- სესიები შემთხვევითად ნაწილდება ტრაფიკის გაყოფის თანაფარდობის მიხედვით
- ყოველი სესია მთლიანად ერთ ვარიანტში მიმდინარეობს (სესიის შუაგულში გადართვა არ ხდება)
- ორივე ვარიანტი ვარგისიანობის მეტრიკების ერთი და იმავე ნაკრებით მონიტორინგდება
3. შეფასება
მინიმალური ხანგრძლივობის ან ნიმუშის ზომის მიღწევის შემდეგ:
- ორივე ვარიანტისთვის ვარგისიანობის ქულები გამოითვლება
- სტატისტიკური მნიშვნელოვნება ტესტირდება (ნაგულისხმევი: 95% სარწმუნოობა)
- ეფექტის ზომა გამოითვლება პრაქტიკული მნიშვნელოვნების გასაზომად
4. კონვერგენცია
შეფასების შედეგების საფუძველზე:
- სამკურნალო იმარჯვებს -- შემოთავაზებული ცვლილება ნაგულისხმევ კონფიგურაციად დაწინაურდება
- საკონტროლო იმარჯვებს -- შემოთავაზებული ცვლილება უარყოფილია; საკონტროლო რჩება
- გადაუწყვეტელი -- ექსპერიმენტი გაგრძელდება ან ცვლილება გადაიდება
კონფიგურაცია
[self_evolution.experiments]
enabled = true
default_duration_hours = 168 # ნაგულისხმევი 1 კვირა
min_sample_size = 100 # მინიმალური სესიები ვარიანტზე
traffic_split = 0.5 # 50/50 გაყოფა საკონტროლოსა და სამკურნალოს შორის
confidence_level = 0.95 # 95% სტატისტიკური სარწმუნოობა სავალდებულო
min_effect_size = 0.02 # მინიმუმ 2% გაუმჯობესება მისაღებად
[self_evolution.experiments.auto_converge]
enabled = true
check_interval_hours = 24 # შედეგების შეფასება ყოველ 24 საათში
max_duration_hours = 720 # იძულებითი კონვერგენცია 30 დღის შემდეგკონფიგურაციის მითითება
| ველი | ტიპი | ნაგულისხმევი | აღწერა |
|---|---|---|---|
enabled | bool | true | ექსპერიმენტის სისტემის ჩართვა ან გამორთვა |
default_duration_hours | u64 | 168 | ნაგულისხმევი ექსპერიმენტის ხანგრძლივობა საათებში (1 კვირა) |
min_sample_size | usize | 100 | მინიმალური სესიები ვარიანტზე შეფასებამდე |
traffic_split | f64 | 0.5 | სამკურნალო ვარიანტზე მინიჭებული სესიების წილი (0.0--1.0) |
confidence_level | f64 | 0.95 | სავალდებულო სტატისტიკური სარწმუნოობის დონე |
min_effect_size | f64 | 0.02 | ვარგისიანობის მინიმალური გაუმჯობესება (წილი) სამკურნალოს მისაღებად |
auto_converge.enabled | bool | true | ავტომატური დაწინაურება/უარყოფა შედეგების დამაჯერებლობისას |
auto_converge.check_interval_hours | u64 | 24 | ექსპერიმენტის შედეგების შემოწმების სიხშირე |
auto_converge.max_duration_hours | u64 | 720 | იძულებითი კონვერგენცია ამ ხანგრძლივობის შემდეგ (ნაგულისხმევი 30 დღე) |
ექსპერიმენტის ჩანაწერის სტრუქტურა
ყოველი ექსპერიმენტი სტრუქტურირებულ ჩანაწერად თვალყურს ედევნება:
| ველი | ტიპი | აღწერა |
|---|---|---|
experiment_id | String | უნიკალური იდენტიფიკატორი (UUIDv7) |
decision_id | String | კავშირი საწყის გადაწყვეტილებასთან |
layer | Layer | ევოლუციის ფენა: L1, L2 ან L3 |
status | Status | running, evaluating, converged, cancelled |
created_at | DateTime<Utc> | ექსპერიმენტის შექმნის დრო |
converged_at | Option<DateTime<Utc>> | ექსპერიმენტის დასრულების დრო |
control | Variant | საკონტროლო ვარიანტის აღწერა |
treatment | Variant | სამკურნალო ვარიანტის აღწერა |
control_sessions | usize | საკონტროლოზე მინიჭებული სესიების რაოდენობა |
treatment_sessions | usize | სამკურნალოზე მინიჭებული სესიების რაოდენობა |
control_fitness | FitnessScore | საკონტროლო ვარიანტის აგრეგირებული ვარგისიანობა |
treatment_fitness | FitnessScore | სამკურნალო ვარიანტის აგრეგირებული ვარგისიანობა |
p_value | Option<f64> | სტატისტიკური მნიშვნელოვნება (ნაკლები = უფრო მნიშვნელოვანი) |
winner | Option<String> | "control", "treatment" ან null გადაუწყვეტელის შემთხვევაში |
ვარგისიანობის შეფასება
ვარგისიანობის ქულირება აგენტის წარმადობას მრავალ განზომილებაში რაოდენობრივად აფასებს. კომპოზიტური ვარგისიანობის ქულა ექსპერიმენტის ვარიანტების შესადარებლად და ევოლუციის პროგრესის დროში თვალყურისდევნებისთვის გამოიყენება.
ვარგისიანობის განზომილებები
| განზომილება | წონა | აღწერა | როგორ იზომება |
|---|---|---|---|
response_relevance | 0.30 | რამდენად რელევანტურია აგენტის პასუხები მომხმარებლის შეკითხვებისთვის | LLM-მოსამართლის ქულირება |
task_completion | 0.25 | წარმატებით დასრულებული ამოცანების წილი | ინსტრუმენტის გამოძახების წარმატების მაჩვენებელი |
response_latency | 0.15 | დრო მომხმარებლის შეტყობინებიდან პირველ პასუხის ტოკენამდე | პერცენტილებზე დაფუძნებული (p50, p95) |
token_efficiency | 0.10 | ტოკენები წარმატებულ ამოცანაზე | ნაკლები უკეთესია |
memory_precision | 0.10 | გახსენებული მეხსიერების რელევანტურობა | გახსენების რელევანტურობის ქულირება |
user_satisfaction | 0.10 | მომხმარებლის ცალსახა უკუკავშირის სიგნალები | მომწონს/არ მომწონს, კორექციები |
კომპოზიტური ქულა
კომპოზიტური ვარგისიანობის ქულა შეწონილი ჯამია:
fitness = sum(dimension_score * dimension_weight)ყოველი განზომილება შეწონვამდე 0.0--1.0 დიაპაზონში ნორმალიზდება. კომპოზიტური ქულაც 0.0--1.0 დიაპაზონშია, სადაც მაღალი უკეთესია.
ვარგისიანობის კონფიგურაცია
[self_evolution.fitness]
evaluation_window_hours = 24 # მეტრიკების აგრეგაცია ამ ფანჯარაში
min_sessions_for_score = 10 # მინიმუმ 10 სესია ვალიდური ქულისთვის
[self_evolution.fitness.weights]
response_relevance = 0.30
task_completion = 0.25
response_latency = 0.15
token_efficiency = 0.10
memory_precision = 0.10
user_satisfaction = 0.10
[self_evolution.fitness.thresholds]
minimum_acceptable = 0.50 # ამაზე ქვემოთ ვარგისიანობა გაფრთხილებას იწვევს
regression_delta = 0.05 # ვარგისიანობის 5%-ზე მეტი ვარდნა უკუქცევას იწვევსვარგისიანობის კონფიგურაციის მითითება
| ველი | ტიპი | ნაგულისხმევი | აღწერა |
|---|---|---|---|
evaluation_window_hours | u64 | 24 | ვარგისიანობის მეტრიკების აგრეგაციის დროის ფანჯარა |
min_sessions_for_score | usize | 10 | ვალიდური ქულის გამოსათვლელად საჭირო მინიმალური სესიები |
weights.* | f64 | (იხ. ზემოთ ცხრილი) | ვარგისიანობის ყოველი განზომილების წონა (ჯამი 1.0 უნდა იყოს) |
thresholds.minimum_acceptable | f64 | 0.50 | დაბალი ვარგისიანობის გაფრთხილების ზღურბლი |
thresholds.regression_delta | f64 | 0.05 | ვარგისიანობის მაქსიმალური ვარდნა ავტომატური უკუქცევამდე |
CLI ბრძანებები
# აქტიური ექსპერიმენტების ჩამონათვალი
prx evolution experiments --status running
# კონკრეტული ექსპერიმენტის ნახვა
prx evolution experiments --id <experiment_id>
# ექსპერიმენტის შედეგების ნახვა ვარგისიანობის დაშლით
prx evolution experiments --id <experiment_id> --details
# მიმდინარე ექსპერიმენტის გაუქმება (საკონტროლოზე დაბრუნება)
prx evolution experiments cancel <experiment_id>
# მიმდინარე ვარგისიანობის ქულის ნახვა
prx evolution fitness
# ვარგისიანობის ისტორიის ნახვა დროში
prx evolution fitness --history --last 30d
# ვარგისიანობის დაშლის ნახვა განზომილებების მიხედვით
prx evolution fitness --breakdownვარგისიანობის გამოტანის მაგალითი
Current Fitness Score: 0.74
Dimension Score Weight Contribution
response_relevance 0.82 0.30 0.246
task_completion 0.78 0.25 0.195
response_latency 0.69 0.15 0.104
token_efficiency 0.65 0.10 0.065
memory_precision 0.71 0.10 0.071
user_satisfaction 0.60 0.10 0.060
Trend (last 7 days): +0.03 (improving)ექსპერიმენტის მაგალითები
L2 პრომპტის ოპტიმიზაცია
ტიპიური L2 ექსპერიმენტი სისტემის პრომპტის ცვლილებას ტესტავს:
- საკონტროლო: მიმდინარე სისტემის პრომპტი (320 ტოკენი)
- სამკურნალო: დახვეწილი სისტემის პრომპტი (272 ტოკენი, 15%-ით მოკლე)
- ჰიპოთეზა: მოკლე პრომპტი კონტექსტის ფანჯარას ათავისუფლებს, პასუხის რელევანტურობას აუმჯობესებს
- ხანგრძლივობა: 7 დღე, 100 სესია ვარიანტზე
- შედეგი: სამკურნალოს ვარგისიანობა 0.75 vs საკონტროლოს 0.72 (p = 0.03), სამკურნალო დაწინაურდა
L3 სტრატეგიის ცვლილება
L3 ექსპერიმენტი მარშრუტიზაციის პოლიტიკის ცვლილებას ტესტავს:
- საკონტროლო: ყველა კოდირების ამოცანის Claude Opus-ზე მარშრუტირება
- სამკურნალო: მარტივი კოდირების ამოცანების Claude Sonnet-ზე, რთულის Opus-ზე მარშრუტირება
- ჰიპოთეზა: ხარჯ-ეფექტური მარშრუტირება ხარისხის დაკარგვის გარეშე
- ხანგრძლივობა: 14 დღე, 200 სესია ვარიანტზე
- შედეგი: სამკურნალოს ვარგისიანობა 0.73 vs საკონტროლოს 0.74 (p = 0.42), გადაუწყვეტელი -- ექსპერიმენტი გაგრძელდა
სტატისტიკური მეთოდები
ექსპერიმენტის სისტემა შემდეგ სტატისტიკურ მეთოდებს იყენებს:
- ორნიმუშიანი t-ტესტი ვარიანტებს შორის ვარგისიანობის საშუალო ქულების შესადარებლად
- Mann-Whitney U ტესტი არაპარამეტრულ ალტერნატივად, როდესაც ვარგისიანობის განაწილებები ასიმეტრიულია
- Bonferroni კორექცია ვარგისიანობის რამდენიმე განზომილების ერთდროული შედარებისას
- თანმიმდევრული ანალიზი ალფა-დანახარჯით, რაც ადრეული შეჩერების საშუალებას იძლევა შედეგების აშკარა მნიშვნელოვნებისას
შეზღუდვები
- ექსპერიმენტები საკმარის სესიების მოცულობას მოითხოვს; დაბალი ტრაფიკის განთავსებებში მნიშვნელოვნების მიღწევას კვირები სჭირდება
- მომხმარებლის კმაყოფილების სიგნალები ცალსახა უკუკავშირზეა დამოკიდებული, რომელიც შეიძლება მწირი იყოს
- პასუხის რელევანტურობის LLM-მოსამართლის ქულირება შეფასების პაიპლაინს შეყოვნებასა და ხარჯს ამატებს
- ერთდროულად მხოლოდ ერთი ექსპერიმენტი შეიძლება გაიშვას ევოლუციის ფენაზე შერევის თავიდან ასაცილებლად
- ვარგისიანობის ქულები კონკრეტულ განთავსებასთანაა მიბმული; ისინი სხვადასხვა PRX ინსტანციებს შორის შედარებადი არ არის
დაკავშირებული გვერდები
- თვით-ევოლუციის მიმოხილვა
- გადაწყვეტილების ჟურნალი -- გადაწყვეტილებები, რომლებიც ექსპერიმენტებს იწვევს
- ევოლუციის პაიპლაინი -- პაიპლაინი, რომელიც წინადადებებს წარმოქმნის
- უსაფრთხოება და უკუქცევა -- ავტომატური უკუქცევა რეგრესიისას