Nëse doni të çaktivizoni aplikacionin tuaj dhe ta bëni arkitekturën tuaj AI më të sigurt, vazhdoni të lexoni. Kjo është pjesë e një seri në vazhdim: shih postin e parë . këtu këtu Parimi i AI II: Ngarkimi shpejton në mënyrë të sigurtë (nëse ju me të vërtetë duhet) A doni që chatbot juaj të fillojë të diskutojë tekstet e Taylor Swift në vend të ofrimit të mbështetjes teknike?Kjo është ajo që bëri chatbot ynë kur kemi shkelur parimin e mësipërm. Ku për të ruajtur Prompts A i ruani thirrjet tuaja me pjesën tjetër të kodit? ose i ngarkoni nga një burim tjetër? Ndoshta një kombinim i të dyjave? Më poshtë është korniza për të menduar për këtë vendim. Opcion A - Ruaj Prompts në Git Pyetja e parë që duhet të bëni është: A ka ndonjë arsye të menjëhershme për të ruajtur porositë veçmas nga kodi juaj? Nëse jo, lini porositë në Git me pjesën tjetër të bazës së kodit, ku ato i përkasin. Kthehu në Parimi #1: . Ruajtja e pjesëve të bazës tuaj të kodit jashtë Git është e mundur dhe nganjëherë e nevojshme, por jo e parëndësishme. Mos e merrni vendimin për të zhvendosur këshillat lehtë. Prompts janë Kodi Prompts janë Kodi Option B - Load Prompts nga një platformë e kontrolluar nga versioni Çfarë ndodh nëse disa nga thirrjet tuaja duhet të redaktohen nga jo-inxhinierët?Kjo mund të ndodhë nëse kërkohet ekspertizë e thellë në një fushë. Në këtë rast, ju do të duhet të ngarkoni këshillën në kohën e zbatimit nga një burim i kontrolluar nga versioni. Unë kam parë Confluence dhe Google Docs të përdorura me sukses për këtë qëllim. Kur planifikoni logjikën e ngarkimit të menjëhershëm, mos e nënvlerësoni sasinë e përpjekjeve për të shtuar këtë integrim.Ju do të duhet të menaxhoni një shumëllojshmëri kushtesh dhe skenarësh gabimi për të pasur besim në aplikacionin tuaj.Përdorimet e qasjes duhet të konfigurohen dhe të mbahen, dhe testimi automatik dhe monitorimi shtesë duhet të zgjerohet për të kapur gabimet sa më shpejt të jetë e mundur. Këtu janë disa nga skenarët që ju duhet të planifikoni për: Aplikimi nuk është në gjendje të ngarkojë thirrjet në kohën e zbatimit. A e vrisni vendosjen? Switch në një version rezervë të thirrjes? Prompt sintax bëhet i pavlefshëm pas një ndryshimi dhe kthen strukturat e të dhënave të papërdorshme. Testimet automatike nuk e zbuluan problemin sepse thirrjet nuk u ngarkuan gjatë testimit. Çfarë lloj infrastrukture shtesë testimi dhe monitorimi duhet të shtohet për ta zbuluar këtë dhe për të minimizuar ndikimin e klientit? Prompt duhet të rrotullohet urgjentisht. A kërkon kjo një vendosje të re të kodit? Apo po ndërtoni një UI të veçantë për vendosjen e thirrjeve? Aplikimi nuk është në gjendje të ngarkojë thirrjet në kohën e zbatimit. A e vrisni vendosjen? Sintax prompt bëhet i pavlefshëm pas një ndryshimi dhe kthen strukturat e të dhënave që nuk mund të përdoren. Testimet automatike nuk arritën të zbulojnë problemin sepse urdhrat nuk u ngarkuan gjatë ekzekutimit të testit. Çfarë infrastrukture shtesë testimi dhe monitorimi duhet të shtohet për të zbuluar këtë dhe për të minimizuar ndikimin e klientit? Prompt duhet të kthehet urgjentisht.A kërkon kjo një shpërndarje të re të kodit?Ose a ndërtoni një UI të veçantë për shpërndarje të menjëhershme? Syntax shtuar në dokument nga platforma të tilla si Confluence mund të depërtojë në thirrjen e kohës së drejtimit, duke ndikuar negativisht në performancën e saj. Qasja hibride kombinon ruajtjen e disa thirrjeve direkt në bazën tuaj të kodit dhe ngarkimin e të tjerëve nga burime të jashtme, të kontrolluara nga versioni. Ndërsa ruajtja e një vendndodhjeje të unifikuar për të gjitha thirrjet është shpesh më e thjeshtë dhe më e besueshme, ka skenarë ku një strategji hibride mund të ofrojë avantazhe. Të gjitha këto çështje janë 100% të zgjidhshme. por është e lehtë të bjerë në modelin e mendimit se ngarkimi i një ftese nga një Google Doc është një operacion trivial që nuk do të ndikojë në arkitekturën e aplikacionit në një mënyrë të thellë. Option C - Load Prompts nga një platformë jo-version-kontrolluar Kjo është një ide e keqe, dhe ju do të pendoheni për këtë. burimi i së vërtetës për këshillat duhet të jetë i kontrolluar nga versioni, të ketë API të duhur dhe kontrollet e qasjes. Opcion D - Qasja hibrid Mendoni për të adoptuar një qasje hibride në kushte të tilla si: Njoftimet më pak kritike, veçanërisht ato që përjetojnë rregullime të shpeshta, mund të jetojnë në mënyrë të sigurtë jashtë. Mbani shumicën e këshillave të logjikës së biznesit brenda bazës kryesore të kodit, duke përdorur qasjet tradicionale të testimit të automatizuar të ngjashme me testimin e njësisë në vend të teknikave të validimit të ML. : Disa mesazhe kërkojnë përditësime të shpeshta nga ekspertët e domain-it jo-coding, duke e bërë ngarkimin e jashtëm praktik, ndërsa të tjerët ndryshohen vetëm nga inxhinierët. Përdorimi i përzier : Mesazhet kritike (p.sh., gardrails) duhet të banojnë në depo kryesore për besueshmëri maksimale. Menaxhimi i rrezikut : Disa këshilla kërkojnë përditësime të shpeshta nga ekspertët e domain-it jo-coding, duke e bërë ngarkimin e jashtëm praktik, ndërsa të tjerët ndryshohen vetëm nga inxhinierët. Përdorimi i përzier Përdorimi i përzier : Njoftimet kritike (p.sh., shigjetat) duhet të banojnë në depo kryesore për besueshmëri maksimale. Menaxhimi i Riskut Menaxhimi i rrezikut : Prompts të destinuara për vlerësimin e stilit ML mund të menaxhohen nga jashtë për të thjeshtuar integrimin e tyre me një kornizë vlerësimi. Fleksibiliteti i vlerësimit Fleksibiliteti i vlerësimit Përshkrimi i faqes Guardrail prompts (i njohur edhe si prompts censor) janë të specializuara në skanimin e përgjigjeve para se të arrijnë përdoruesit, duke siguruar rezultate të përshtatshme, të sigurta dhe të përputhshme.Guardrail shërbejnë si një mekanizëm mbrojtës, veçanërisht në aplikacionet ku ndërveprimet e përdoruesve mbajnë rreziqe të konsiderueshme ligjore ose etike. Mos ngarkoni thirrjet e gardrail nga një dokument i jashtëm - kjo shton një rrezik të konsiderueshëm të panevojshëm. Ose i mbani ato në Git me kodin tuaj ose përdorni një mjet të dedikuar të palës së tretë, të tilla si . Logjika Guardrail nuk ndryshon shumë shpesh, kështu që kjo qasje nuk do t'ju ngadalësojë aq shumë. Fiddle Guardrails Fiddle Guardrails Përdorimi i gardrails është një parim i vetvetes, që do të diskutohet në detaje në një post të ardhshëm.Është një model i madh që përmirëson sigurinë e aplikacionit tuaj dhe ju ndihmon të flini më mirë gjatë natës. Loading Prompts për vlerësim më të lehtë Ekipet shpesh ngarkojnë këshilla të jashtme për t'i integruar ato me motorët e vlerësimit, të tilla si . Supozimi themelor prapa kësaj praktike është se këshilla janë të ngjashme me modelet ML dhe kanë nevojë për një vlerësim të veçantë, statistikor. Ju lidhni një këshillë, matni shkallën F1 në output (ose çfarëdo metrikë që preferoni) dhe iteroni. ML Flow ML Flow Kjo qasje nganjëherë është e vlefshme—për shembull, në këshillat e klasifikimit të dizajnuara për të vepruar si modele ML. Por shumica e këshillave janë thelbësisht të ndryshme: siç përshkruhet në Parimi #1: . Këshillat tipike janë më të ngjashme me logjikën e aplikacionit sesa me modelet ML. Ato janë më të përshtatshme për vlerësimin e llojit të Pass-Fail së bashku me kodin përreth, sesa një qasje për vlerësimin statistikor. LLM Prompts Are Code LLM Prompts Are Code Motorët e vlerësimit të jashtëm nuk do t'ju ndihmojnë me shumicën e këshillave. në vend të kësaj, duhet të përdorni teste të automatizuara të drejtuara nga AI, të ngjashme me testet tradicionale të njësive. Mendoni për praktikat e mëposhtme: Vetëm këshillat funksionale të të cilave në mënyrë eksplicite imitojnë modelet e mësimit automatik (p.sh., klasifikimi ose detyrat e vlerësimit) duhet të vlerësohen nga jashtë. Mbani shumicën e këshillat e logjikës së biznesit brenda bazës kryesore të kodit, duke përdorur qasjet tradicionale të testimit të automatizuar të ngjashme me testimin e njësive në vend të teknikave të validimit të ML. Kur vlerësimi i jashtëm është i justifikuar, izoloni vetëm ato këshilla, kur është e mundur. Vetëm thirrjet, funksionaliteti i të cilave në mënyrë eksplicite imiton modelet e mësimit automatik (p.sh., detyrat e klasifikimit ose shënimit) duhet të vlerësohen nga jashtë. Kur vlerësimi i jashtëm është i justifikuar, izoloni vetëm ato këshilla, kur është e mundur. Studimi i rastit Problemi qendror me nxitjet e ngarkimit është disponueshmëria - çfarë duhet të bëni nëse nxitja nuk ngarkohet kur pritet. Kjo është ajo që na ndodhi në shembullin e Taylor Swift. Asnjë nga thirrjet për një aplikacion të mbështetjes teknike nuk u ngarkua si rezultat i një problemi të konfidencialitetit të Confluence, duke përfshirë thirrjen e gardrail. Kjo disi nuk shkaktoi ndonjë gabim në kohën e drejtimit dhe bot filloi të përgjigjet pa udhëzime ose hyrje (sepse zinxhiri i formatimit të hyrjes ishte pjesë e thirrjes). Dhe çfarë dëshiron të flasë LLM i OpenAI në mungesë të hyrjes? Pse ndodhi ky incident? dy gabime janë bërë: Askush nuk ka kontrolluar nëse thirrjet kanë qenë të ngarkuara me sukses. Duhet të ketë pasur një gabim të hedhur në kohën e ngarkimit të thirrjeve, pasi aplikacioni nuk mund të funksiononte pa thirrjet e ngarkuara. Kërkesa e rojeve u ngarkua nga jashtë me pjesën tjetër të thirrjeve. Kjo është një thirrje që nuk duhet të ngarkohet në këtë mënyrë. Ajo duhet të mbahej në Git si linja e fundit e mbrojtjes. Askush nuk ka kontrolluar nëse thirrjet kanë qenë të ngarkuara me sukses.Duhet të ketë pasur një gabim të hedhur në kohën e ngarkimit të menjëhershëm, pasi aplikacioni nuk mund të funksiononte pa thirrjet e ngarkuara. Njoftimi i shigjetës u ngarkua nga jashtë me pjesën tjetër të njoftimeve.Kjo është një sinjal që nuk duhet të ngarkohet në këtë mënyrë.Duhet të ishte mbajtur në Git si linja e fundit e mbrojtjes. Pas incidentit, nxitja e gardrail u ri-migrua në Git dhe logjika e përjashtimit u shtua për të parandaluar vendosjen nëse një nxitje dështoi të ngarkonte ose ishte e pavlefshme. Përfundimi Në këtë post, kam shqyrtuar konsideratat kryesore rreth ruajtjes së menjëhershme dhe ngarkimit brenda aplikacioneve të AI. Praktika e parazgjedhur është ruajtja e këshillave tuaja së bashku me kodin tuaj në depo të kontrolluara nga versioni.Shmangni nga kjo vetëm kur ka një arsye bindëse, të tilla si redaktimi i shpeshtë nga jo-inxhinierët ose kërkesat specifike të vlerësimit. Kur thirrjet duhet të ngarkohen nga jashtë, zgjidhni burime të besueshme dhe të kontrolluara rreptësisht nga versioni, duke shtuar testimin dhe monitorimin për rezistencë. Shumica e thirrjeve janë më të afërta në natyrë me kodin sesa me modelet ML, kështu që përdorni vetëm mjetet e stilit ML ku ju nevojiten. Nëse ju pëlqeu ky post, ndiqni serinë për më shumë njohuri.