Галоўная / Артыкулы

Практычныя нататкі: агент OpenAI самастойна ўзломвае Hugging Face

Практычны разбор тэмы «агент OpenAI, які самастойна ўзламаў Hugging Face, і ўрокі для бяспекі»: кантракты, праверкі і гатовыя фрагменты кода для каманд, якія ўкараняюць гэты падыход.

Выдавец: REACTAPP.TOP7 хв чытання1562 слоў

Крыніцы: OpenAI’s AI Agent Autonomously Hacks into Hugging Face

Існавайце гэта як перапрацоўаны варыянт ідэй з статты «OpenAI’s AI Agent Autonomously Hacks into Hugging Face», адпрацаваны для аператараў: чыстыя этапы, аранжаваныя блакі коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы. Этап «Апглэв» найкрашча працюе, калі яго розглядаць як вімерную плошчу. Запісаўце адна ідэальная транскрыпцыя, адзін прыклад неудачы і прыметкі з вярнення да пачатковага стану прычым расшырэнню масштаба. Зберагайце настройкі праза код аплікацыі. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функцый павінны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжнага чытання всіх элементаў.

Што на самай працэ выйшло

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

Тое, што нельга ігнараваць

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

Захоўнікі захацілі неправы слой

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

Чы гатовы мы да наступным крокам?

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

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

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

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

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

Ствараце контрольныя пункты пасля дорогіх крокаў. Функцыя продакцыйнага запуску не павінна зноў нарахоўваць косць той самай вызову LLM, калі аператар прабуе зноў выконаць пазнейшы вузол.

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

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

Ствараце контрольныя пункты пасля дорогіх крокаў. Функцыя продакцыйнага запуску не павінна зноў нарахоўваць косць той самай вызову LLM, калі аператар прабуе зноў выконаць пазнейшы вузол.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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