Галоўная / Артыкулы / Практычныя прытамулкі: Разработка платформы AI з калькольнікамі — Частка 5: Спрыяванне

Практычныя прытамулкі: Разработка платформы AI з калькольнікамі — Частка 5: Спрыяванне

Практычныя прыказкі: Проектаванне платформы AI з калькуляцыямі — Частка 5: Спрыягчыкі спраўжнення: контракты, перакананні та слоты для коду для команд, якія выкарыстоўваюць гэты патэрн.

1955 слоў

Наступныя прыміткі паказваюць практычны шлях для розбіру тэмы «Стварэнне платформы AI з калькуламі — Частка 5: Слоўе спрыявання». Акцэнт ставіцца на контракты, перакрычанняя і месцы для коду, які можна проста заместіць, а не на мотывацыйныя аспекты. Калі працуеце над стадзіяй агляду, спачатку запісайце контракт: неабяжныя вхідныя даны, сигнал успеху і тое, што відбываецца у разе частковага невыпання. Такі список дапамагае залишацца чыстым пад час пазнейшых змян у кодзе. Запісвайце час выканання і вартасць токеноў або запытак праза функцыйнае рэзультат. Відразувыя даны пра вартасць запобегаюць неспакоўным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя сераўры.

Звідзе беруцца сигналы?

Этап «Дзеянне сігналаў» працуе наякша, калі яго расследжваць як вимерную паверхню. Зафіксавайце адны «золаты» прыклад, адну справу аб бядах і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Зберагаюце настройкі паза кодам прыемліка. Файлы сераўнавальнага сераўсу, хранілішчы секрэтных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабходнасці чытання всей структуры. Зберагаюце стан графа ў простам і типаваным формате. Вярнутыя блокі дадзеных маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакойваюць працу пасля перерываў.

Шэсць модэляў, адна паведамленне, нуль последовных залежнасцей

Шасць модэляў, якія ствараюць адну стадію перадачы паведамлення, працуюць наяўней калі іх расследжваць як вимерную паверхню. Запісаўце адна «золатая» транскрыпцыю, адин прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Документаваўце як шлях успеху, так і шлях вяснавання разам. Перапрыбуткі, людзкія контралі і обработка непрацэсаваных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Закладзіце бюджет на токены на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расширваюць контекст; строгі ліміты не дазволяюць дэмам ператварыцца на неспакоўныя рахункі.

Рэйтынг фрустрацыі

Этап расчытку рэгрысціі разчароўкі працуе наякней краща, калі яго спрыяваць як вимерную плошчу. Зберагучы адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Валіце малыя, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг дзеяння. Рэштавайце стан графа простым і з адначытаемымі дадзеннямі. Вярнутыя структуры дадзеных маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакшуюць возобнавленне роботы пасля перарываў. Этап расчытку рэгрысціі разчароўкі працуе наякней краща, калі яго спрыяваць як вимерную плошчу. Зберагучы адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Запісвайце часы выконання і косты токеноў або запытак праза функцыйнае рэзультат. Відкрытая інфармацыя пра косты з’являецца ў раннім перыоде, чым утрымліваюцца неспакойныя рахункі, калі процес пераходзіць з дэмаверсіі ў спяльныя сераўы.

frustration = 0.45 × norm_sentiment + 0.55 × (anger + disgust)
frustration = 0.3 × norm_sentiment + 0.4 × (anger + disgust) + 0.3 × (1 - stt_confidence)
norm_sentiment = (-0.72 × -1 + 1) / 2 = 1.72 / 2 = 0.86
frustration = 0.3(0.86) + 0.4(0.61 + 0.23) + 0.3(1 - 0.78)
           = 0.258 + 0.336 + 0.066
           = 0.66
frustration = 0.45(0.86) + 0.55(0.61 + 0.23)
           = 0.387 + 0.462
           = 0.849
new_score = 0.7 × current_score + 0.3 × normalized_latest

Грацыязны спад: калі этапы не работаюць

Для грацыязнага спаду, калі этапы не функцыонуюць, пярэд тым, як зменіць код, неабходна ўзначыць вхідныя даны, адпаведальнага за этап і критэрыя завершэння. Аператары должны магчымае перзапускіць этап з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазнаходзяцца за межамі коду прыкладнення. Файлы сераўнавальнага сераўна, хранілішчы секрэтных данных і флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядзець, не чытаяўшы весь ланцуг. Пры выконанні дзеянь, якія коштуюць грошы або зменяюць даны у працэйнай средзе, неабходна людская апраўда. Підключэння ў час компілявання не є падтверджэнням полнайасобнасці бізнес-процэса.

Автаразьбійнікі па этапам

Для апаратных захыстоў па кожнам этапе неабходна перад змянай коду задаць вхідныя даны, адпаведальнага за этап і крэтыяры завершэння. Аператары должны магчымае запускать этап з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна аддзеўнаваць як шлях успеху, так і шлях вяснавання проблем. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не яго пазнейшай дапрацоўкі. Неабходна людзкая затверджэнняе для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даны прадукцыі. Працэс складання коду не є адпаведнікам повнай бізнес-готовасці.

| Stage | Failures to open | Recovery timeout |
| ------- | ----------------- | ----------------- |
| Safety (LlamaGuard) | 3 | 30 seconds |
| Intent (DeBERTa) | 5 | 60 seconds |
| Entity extraction | 5 | 60 seconds |

Локальнае рашэння проты хмарнага: пераключальнік аналізу

Для ўрагану «Локальна версія проты хмары» неабходна ўжо падчас планавання адзначыць вхідныя даны, адпаведальнага за кожны крок і крэтыяры завершэння працы, перш чым зменіць код. Аператары должны магчымае перайсці канкрэтны крок з вядомага пункта контролю, не спрабоўваючы здогадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына неудачы павінна вказываць на адзін конкрэтны элемент, а не на заплутаную схему выкарыстоўвання ресурсаў. Неабходна людская апрацоўка тых крокаў, якія ведуць да выдаткаў грошэй або зміняюць даны, якія викорыстоўваюцца у працэсе. Компіляцыйныя налаштаванні не є гарантыяй полной адпрацоўкі задачы. Для ўрагану «Локальна версія проты хмары» неабходна ўжо падчас планавання адзначыць вхідныя даны, адпаведальнага за кожны крок і крэтыяры завершэння працы, перш чым зменіць код. Аператары должны магчымае перайсці канкрэтны крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Неабходна фіксаваць час выкарыстоўвання, а таксама вартасць токенав або запытанняў разам з рэзультатамі функцыональных тэстаў. Візуабілізацыя вартасцей з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спяльную.

if INFERENCE_MODE == "cloud" and HF_TOKEN exists:
    use HuggingFace Inference API URL
else:
    use local container URL
| Mode | p50 latency | p95 latency | Cost per 1K messages |
| ------ | ------------- | ------------- | --------------------- |
| Local (GPU) | 180ms | 320ms | ~$0.12 (amortized infra) |
| Cloud (HF API) | 340ms | 580ms | ~$0.08 (pay-per-call) |

Як спрыянне спраўжняе ўсё па лініі

Калі працуеце над этапам «Як спрыянне спраўжняе ўсё», спачатку запішыце умовы: неабходныя даны, сигнал успеху і тое, што выканаецца у разы частковага невялікога браку. Такі список дапамагае заліцвачыць змяны ў кодзе чыста. Зберагайце настройкі паза кодам прыемліка. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыяй павінны знаходзіцца ў аднам месцы, куды аператары можаць пераглядаць іх без неабходнасці чытання всей структуры. Ствараюце контрольныя пункты пасля дорогіх крокаў. Функцыя вярнення до роботы не павінна знову стаўляць плату за той самы вызов LLM, калі аператар перапрыямляе роботу да наступнага вузла.

Паведамленне па лініі обробкі

Калі працуеце з паведамленнем типу A на данай стадыі, спачатку запісаце кантракт: неабяжлівыя даны, сігнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список пераконтроўкі дапамагае заліцварыць пазнейшыя змены ў кодзе. Документаваць трэба як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка непрацюючых паведамленняў є часткай продукту, а не пазнейшым дапраўленням. Зробіце пераконтроўку пасля дорогіх крокаў. Система вярнення не должна знову ставіць плату за той самы вызов LLM, калі аператар перапрыбуе пазнейшы вузел.

norm_sentiment = (-0.38 × -1 + 1) / 2 = 1.38 / 2 = 0.69
frustration = 0.45(0.69) + 0.55(0.12 + 0.04) = 0.311 + 0.088 = 0.399
C(x) = 0.30(0.6) + 0.20(0.3) + 0.20(0.5) + 0.15(0.5) + 0.15(0.7)
     = 0.18 + 0.06 + 0.10 + 0.075 + 0.105
     = 0.52

Серыя

Калі працуеце на стадыі The series, спачатку запісайце умовы кантракту: неабяжлівыя даны, сигнал успеху і тое, што выходзіць пад частковыя неудачы. Такі список пераканаець у тым, што пазнейшыя змены коду будуць чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неудача должна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Зробіце перапактаванне пасля дорогіх крокаў. Програма не должна зноў выклікаць той самы LLM-званак, калі аператар прабуе зноў запрацаваць пазнейшы вузел. Калі працуеце на стадыі The series, спачатку запісайце умовы кантракту: неабяжлівыя даны, сигнал успеху і тое, што выходзіць пад частковыя неудачы. Такі список пераканаець у тым, што пазнейшыя змены коду будуць чыстымі. Запісвайце час выканання і кост токеноў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя сераўы.

Чэк-ліст для эксплуатацыі

У стадії перагляду канцэларыі аперацыйяў неабходна практычна вызначыць даннэ, адпаведальную особу за кожны крок і крэтыніяты для завершэння пры змены коду. Аперацыйныя працавнікі должны магчымае перадзеўжваць крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан.

Спрыяйце цій стадіі як даговору межа даннэмі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, практычна вызначыце крэтыніяты успеху і адмовіцеся ад беззвучнага частковага завершэння.

Забезпечыце людскія апраўленні для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даннэ ў працоўным сераверы. Компіляцыйныя налашчэнні не ўзроўнаўцуюцца з пачатковым станом бізнесу.

Напісце кароткі путаводзік: як роўнаць канты, як апустошыць чергу, як вярнуць стан да пярэдніх налашчэнняў.

Зазначыце час выканання і кост токенаў аб запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спяльную.

Неабяжна людская апраўка для тых элементаў, які выдваюць грошы чыста зменяюць даны праработкі. Працаванне ў часе компілявання не абяжаецца пачытальнасцю для бізнесу.

Перш чым пераводзіць стэк, заморажуйце версіі, зафіксавайце «золаты» транскрыпты для критычных шляхоў і паказвайце способы адворачэння змян. У спільных средах неабходны ліміты частоты, перакананні ў прыналежнасці та чысты власнік для ротацыі секрэтных дадзеных. Валіце надзейнасць працы над крэатіўнымі разовымі дамах.

Прымечанне для пакету b87fcefd6863: не кладзіце ключы прадаўцоў у репазітарыю, задаце ліміт токена на кожную сесію і храніце транскрыпты празаўседы ў фіксатырах eval, каб пазнейшыя замены модэляў заставаліся парабяльнымі.

Калі працуеце над першым этапам зміцнення, спачатку запісайце угоду: неабяжлівыя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заліцвачваць пазнейшыя змены коду. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў ёсць часткаю продукту, а не пазнейшым дапрацоўкам.

Дзеянне зміцнення 0/928: вымерайце час выканання, класыя ошибкі і витрату токенав для гэтага пункту, а потым выберайце, чы робіць змену на аднойчынных крэтарах, а не на падставе індывідуальных прыкладаў.

Першы этап зміцнення працюе лепей, калі яго спрыяваць як меравальную плошчу. Запісайце адну ідеальную транскрыпцыю, адзін прыклад невыпання і запіску пра анулюванне перш чым расширваце масштаб. Спрыяйце гэтым этапам як угодзе межа данымаў і перакананымі выходамі. Дайце назвы артыфактам, задаце перакананні успеху і адмовіцеся ад мовчкавага частковага выпання.

Дзеянне паўжасткі 1/928: звярніце увагу на час выканання, класы памылак і витрату токенаў для гэтага зьязку, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшыцца застаўіць змяну.

Для 2-й стадзіі паўжасткі неабходна перад змянай коду чытача апісацыю вхідных дадзенняў, адпаведальнага за крок і крэатарыяў завершэння. Аперацыйныя працавнікі павінны магчымае перадзьвіжваць крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Канфігурацыю трэба знаходзіць за межамі коду прыемлівання. Файлы сяродавішча, хранільнікі секрэтных дадзенняў і флагі функцияй павінны быць у адном месца, якое працавнікі можуць пераглядаць, не чытаючы весь граф.

Дзеянне паўжасткі 2/928: звярніце увагу на час выканання, класы памылак і витрату токенаў для гэтага зьязку, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы рэшыцца застаўіць змяну.

Калі працуеце над 3-й стадзіяю практыкы забезпечэння безпекі, спачатку запісайце умовы кантракта: неабяжлівыя данні, сігнал успеху і тое, што выходзіць на падзею частковага нявыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына нявыпання павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач.

Дзялянка 3/928 практыкы забезпечэння безпекі: замерайце час выканання, класы каштоўкаў і витраты токенав для гэтай дзялянкі, а пасля вырашайце, чы робіць змены на адной основе фіксаванага набору пытанняў, а не на адной лячбе.

3-я стадзія практыкы забезпечэння безпекі працуе лепей, калі яе спрыяваць як меравальную плошчу. Запісайце адны ідеальны прыклад роботы, адзін кейс нявыпання і прыказку па адкатаванні, перш чым расширваць масштаб. Запісвайце часы выканання і вартасць токенав або запыткаў разам з функцыйнальнымі рэзултатамі. Відкрытая інформацыя пра вартасці запобегае неспакойным рашчыткам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды.

Дзеянні паўжасткі 4/928: звярніце увагу на час выканання, клас памылак і колькасць викорыстоўваных токенав для гэтага зьязку, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы хацяце застаўіць змены.