Forradalmasítsa az ügyfelek elégedettségét az Ön vállalkozására szabott jutalmazási modellekkel az Amazon SageMaker | Amazon webszolgáltatások

Forradalmasítsa az ügyfelek elégedettségét az Ön vállalkozására szabott jutalmazási modellekkel az Amazon SageMaker | Amazon webszolgáltatások

Mivel a nagyobb teljesítményű nagynyelvi modelleket (LLM-eket) különféle feladatok nagyobb pontosságú végrehajtására használják, egyre több alkalmazás és szolgáltatás épül. generatív mesterséges intelligencia (AI) is növekszik. A nagy hatalommal együtt jár a felelősség is, és a szervezetek meg akarnak bizonyosodni arról, hogy ezek az LLM-ek olyan válaszokat adnak, amelyek összhangban vannak szervezeti értékeivel, és ugyanazt az egyedi élményt nyújtják, amelyet végfelhasználóiknak szántak.

Az AI által generált válaszok értékelése kihívásokat jelent. Ez a bejegyzés azokat a technikákat tárgyalja, amelyekkel összhangba lehet hozni ezeket a vállalati értékekkel, és egyéni jutalmazási modellt lehet felépíteni Amazon SageMaker. Ezzel személyre szabott ügyfélélményt biztosíthat, amely egyedileg tükrözi szervezete márkaidentitását és szellemiségét.

Kihívások a kész LLM-ekkel

A kész LLM-ek nagy pontosságot biztosítanak, de gyakran nem testreszabhatók a szervezet egyedi igényeihez és végfelhasználóihoz. Az emberi visszajelzések szubjektivitása eltérő a szervezetek és az ügyfélszegmensek között. A változatos, szubjektív emberi visszajelzések gyűjtése az LLM-ek finomítása érdekében időigényes és skálázhatatlan.

Ez a bejegyzés egy jutalommodellezési technikát mutat be, amellyel hatékonyan testreszabhatja az LLM-eket egy szervezet számára azáltal, hogy programozottan definiálja a jutalmazási funkciókat, amelyek rögzítik a modell viselkedésének preferenciáit. Olyan megközelítést mutatunk be, amellyel egy szervezetre szabott LLM-eredményeket biztosítunk intenzív, folyamatos emberi megítélés nélkül. A technikák célja a testreszabási és skálázhatósági kihívások leküzdése azáltal, hogy a szervezet szubjektív minőségi standardjait olyan jutalmazási modellbe kódolják, amely az LLM-et előnyös kimenetek létrehozására irányítja.

Objektív vs. szubjektív emberi visszajelzés

Nem minden emberi visszajelzés egyforma. Az emberi visszajelzéseket két típusba sorolhatjuk: objektív és szubjektív.

Bármely emberi lény, akit felkérnek az alábbi négyzetek színének megítélésére, megerősíti, hogy a bal oldali egy fehér, a jobb pedig egy fekete doboz. Ez objektív, és ezen semmi változás nincs.

Revolutionize Customer Satisfaction with tailored reward models for your business on Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Annak meghatározása, hogy egy AI-modell eredménye „nagyszerű-e”, eleve szubjektív. Vegye figyelembe a következő színspektrumot. Ha arra kérik őket, hogy írják le a színeket a végeken, az emberek változatos, szubjektív válaszokat adnának észleléseik alapján. Lehet, hogy az egyik ember fehérje a másiknak szürke.

Revolutionize Customer Satisfaction with tailored reward models for your business on Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ez a szubjektivitás kihívást jelent a mesterséges intelligencia emberi visszajelzéseken keresztüli fejlesztésében. Az objektív helyes/rossz visszajelzésekkel ellentétben a szubjektív preferenciák árnyaltak és személyre szabottak. Ugyanaz a teljesítmény dicséretet válthat ki egyik személyből, és kritikát a másikból. A kulcs az emberi preferenciák alapvető szubjektivitásának elismerése és számonkérése az AI-képzésben. A megfoghatatlan objektív igazságok keresése helyett olyan modelleket kell kínálnunk, amelyek az emberi szubjektív ítélőképesség színes sokféleségére mutatnak rá.

Ellentétben a hagyományos modellfeladatokkal, például az osztályozással, amely jól összehasonlítható a tesztadatkészletekkel, a szerteágazó társalgási ágens minőségének értékelése nagyon szubjektív. Az egyik ember lebilincselő prózája a másiknak céltalan lökdösődése. Hogyan finomíthatnánk tehát ezeket a kiterjedt nyelvi modelleket, amikor az emberek alapvetően nem értenek egyet a „jó” válasz jellemzőivel kapcsolatban?

A kulcs az, hogy visszajelzéseket gyűjtsünk a sokszínű tömegtől. Elegendő szubjektív nézőponttal a vonzó diskurzus, a logikai koherencia és az ártalmatlan tartalom mintái rajzolódnak ki. A modellek ezután szélesebb körű emberi preferenciák alapján hangolhatók. Általános az a felfogás, hogy a jutalmazási modelleket gyakran csak az emberi visszajelzésből való tanulás megerősítésével (RLHF) társítják. A jutalommodellezés valójában túlmutat az RLHF-en, és hatékony eszköz lehet az AI által generált válaszok összehangolására a szervezet sajátos értékeivel és márkaidentitásával.

Jutalommodellezés

Kiválaszthat egy LLM-et, és számos választ generálhat a különféle felszólításokra, majd az emberi címkézők rangsorolják ezeket a válaszokat. Fontos, hogy az emberi címkézők változatosak legyenek. A világos címkézési irányelvek kritikusak. Kifejezett kritériumok nélkül az ítéletek önkényessé válhatnak. A hasznos dimenziók közé tartozik a koherencia, a relevancia, a kreativitás, a tényszerűség, a logikai következetesség stb. Az emberi címkézők ezeket a válaszokat kategóriákba sorolják, és kedvencként a legkevésbé kedveltnek jelölik meg őket, ahogy az a következő példában is látható. Ez a példa bemutatja, hogy a különböző emberek hogyan érzékelik ezeket a lehetséges válaszokat az LLM-től a legkedvesebb (ebben az esetben 1-es jelöléssel) és a legkevésbé kedvencük (ebben az esetben 3-as jelöléssel). Minden oszlop 1-es, 2-es vagy 3-as címkével van ellátva minden embertől, hogy jelezze az LLM által leginkább preferált és legkevésbé preferált választ.

Revolutionize Customer Satisfaction with tailored reward models for your business on Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

E szubjektív értékelések összeállításával minták rajzolódnak ki arra vonatkozóan, hogy mi visszhangzik az olvasókban. Az összesített emberi visszajelzések lényegében egy külön jutalmazási modellt képeznek az emberek számára vonzó írási tulajdonságok tekintetében. Ezt a technikát, amellyel a tömeg perspektíváit mesterséges intelligencia jutalmazó funkcióvá alakítják, az úgynevezett jutalommodellezés. Módszert biztosít az LLM kimeneti minőségének javítására különböző szubjektív nézőpontok alapján.

Megoldás áttekintése

Ebben a bejegyzésben részletezzük, hogyan képezhet ki jutalmazási modellt a szervezet-specifikus emberi címkézési visszajelzések alapján, amelyeket az alap FM-en tesztelt különféle felszólításokhoz gyűjtöttek össze. A következő ábra a megoldás architektúráját szemlélteti.

Revolutionize Customer Satisfaction with tailored reward models for your business on Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

További részletekért lásd a mellékelt jegyzetfüzet.

Előfeltételek

A jutalommodell sikeres betanításához a következőkre van szüksége:

Indítsa el a SageMaker Studio programot

Hajtsa végre a következő lépéseket a SageMaker Studio elindításához:

  1. A SageMaker konzolon válassza a lehetőséget tanulmány a navigációs ablaktáblában.
  2. A Studio nyitóoldalán válassza ki a tartományt és a felhasználói profilt a Studio indításához.
  3. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a OpenStudio.
  4. A SageMaker Studio elindításához válassza a lehetőséget Indítsa el a személyes Stúdiót.

Nézzük meg, hogyan hozhatunk létre jutalommodellt helyileg egy SageMaker Studio notebook-környezetben a Hugging Face modellközpont egy már meglévő modelljének használatával.

Készítsen egy emberi címkével ellátott adatkészletet, és képezzen ki egy jutalommodellt

A jutalommodellezés során az emberektől származó visszacsatolási adatok beszerzése költséges lehet. Ennek az az oka, hogy a jutalmazási modellezéshez visszajelzésre van szükség a többi embertől, ahelyett, hogy csak a rendszeres rendszerhasználat során gyűjtött adatokat használnák fel. Az, hogy a jutalommodell milyen jól viselkedik, az emberektől érkező visszajelzések minőségétől és mennyiségétől függ.

Javasoljuk az AWS által felügyelt ajánlatok használatát, mint pl Amazon SageMaker Ground Truth. A humán-in-the-loop képességek legátfogóbb készletét kínálja, lehetővé téve az emberi visszajelzések erejének kihasználását a gépi tanulás (ML) életciklusa során a modellek pontosságának és relevanciájának javítása érdekében. A SageMaker Ground Truth segítségével különféle humán-in-the-loop feladatokat hajthat végre, az adatgenerálástól és a kommentároktól a modell áttekintéséig, testreszabásáig és értékeléséig, akár önkiszolgáló, akár AWS által felügyelt ajánlaton keresztül.

Ebben a bejegyzésben az IMDB adatkészletet használjuk egy olyan jutalmazási modell képzésére, amely magasabb pontszámot ad az emberek által pozitívnak nevezett szövegekre, és alacsonyabb pontszámot a negatív szövegekre.

Az adatkészletet a következő kóddal készítjük el:

def create_custom_dataset(raw_dataset):
    df = raw_dataset.to_pandas()
    negative_df = df[df['label']==0]
    positive_df = df[df['label']==1]
    negative_df = negative_df.drop(
        columns=['label']).rename(
        columns={'text': 'rejected'})
    # shuffle the data
    positive_df = positive_df.sample(
        frac=1, random_state=0).reset_index(
        drop=True).drop(columns=['label']).rename(
        columns={'text': 'chosen'})
    joined_df = negative_df.join(positive_df)

    def tokenize_fn(texts, max_length=args.seq_length):
        encoded = tokenizer(
            texts,
            padding='max_length',
            max_length=max_length,
            truncation=True,
            add_special_tokens=False,
        )
        return encoded

    rejected_encoded = tokenize_fn(joined_df.rejected.values.tolist())
    joined_df['rejected_input_ids'] = rejected_encoded['input_ids']
    joined_df['rejected_attention_mask'] = rejected_encoded['attention_mask']
    encoded_chosen = tokenize_fn(joined_df.chosen.values.tolist())
    joined_df['chosen_input_ids'] = encoded_chosen['input_ids']
    joined_df['chosen_attention_mask'] = encoded_chosen['attention_mask']
    
    train_dataset = Dataset.from_pandas(joined_df, preserve_index=False)
    
    return train_dataset.with_format("torch")

A következő példa egy mintarekordot mutat be az előkészített adatkészletből, amely hivatkozásokat tartalmaz az elutasított és kiválasztott válaszokra. A kiválasztott és elutasított válaszokhoz beágyaztuk a bemeneti azonosítót és a figyelemmaszkot is.

{'rejected': "If only to avoid making this type of film in the future. This film is interesting as an experiment but tells no cogent story.<br /><br />One might feel virtuous for sitting thru it because it touches on so many IMPORTANT issues but it does so without any discernable motive. The viewer comes away with no new perspectives (unless one comes up with one while one's mind wanders, as it will invariably do during this pointless film).<br /><br />One might better spend one's time staring out a window at a tree growing.<br /><br />",
 'chosen': "This is a great movie. I love it more each time i watch. Most comedies can get pretty lame because you know all the gags, but mystery men has so much integrity in the writing and characterization that watching once again -- as Ben Stiller tears at the hood ornament of the limo, or Hank Azaria says good-bye to Louise Lasser, or Geoffrey Rush flashes his fuhrer choreography, or Tom Waits mumbles while he watches the news report, or Janeane Garofalo refuses a kiss from Paul Reubens -- is a pleasure. This is pitch perfect ensemble acting. The story develops directly and consistently, the action sequences are creative and not too dominant, all the set-ups payoff by the end. Seriously, if you've seen it and it's been a while, watch it again, and if you haven't then get started. You can't watch it again until you've seen it the first time. (Wes Studi, William H. Macy, the tryouts scene. Too much good stuff!)",
 'rejected_input_ids': tensor([1106,  129,    7,  ...,    1,    1,    1]),
 'rejected_attention_mask': tensor([1, 1, 1,  ..., 0, 0, 0]),
 'chosen_input_ids': tensor([713,  16,  10,  ...,   1,   1,   1]),
 'chosen_attention_mask': tensor([1, 1, 1,  ..., 0, 0, 0])}

Töltse be az előre betanított modellt

Ebben az esetben a OPT-1.3b (Open Pre-train Transformer Language Model) modell in Amazon SageMaker JumpStart a Hugging Face-től. Ha az elosztott képzés helyett az összes képzést helyben szeretné elvégezni a notebookon, akkor elegendő gyorsítómemóriával rendelkező példányt kell használnia. A következő képzést egy ml.g4dn.xlarge példánytípuson futó notebookon futtatjuk:

from transformers import( 
      AutoModelForSequenceClassification, 
      AutoTokenizer, 
      set_seed, 
      ) 
from datasets import Dataset, load_dataset 
import torch
       
model = AutoModelForSequenceClassification.from_pretrained( 
       'facebook/opt-1.3b',
       torch_dtype=torch.bfloat16, 
       device_map="auto", 
       num_labels=1, 
 )

Határozza meg az egyéni tréner funkciót

A következő kódrészletben létrehozunk egy egyéni trénert, amely kiszámítja, hogy egy modell mennyire teljesít egy feladaton:

from torch import nn 
from transformers import Trainer 
import torch.nn.functional as F 

class CustomTrainer(Trainer): 
def compute_loss(self, model, inputs, return_outputs=False): 

chosen_input_ids = inputs['chosen_input_ids'] chosen_attention_mask = inputs['chosen_attention_mask'] rejected_input_ids = inputs['rejected_input_ids'] rejected_attention_mask = inputs['rejected_attention_mask'] 
r_w = model(chosen_input_ids, chosen_attention_mask).logits 
r_l = model(rejected_input_ids, rejected_attention_mask).logits outputs = (r_w, r_l) 
loss = -F.logsigmoid(r_w - r_l).mean() 
return (loss, outputs) if return_outputs else loss

Összehasonlítja a modell eredményeit két bemeneti adathalmazra: az egyik kiválasztott és a másik elutasított halmazra. Az oktató ezután ezeket az eredményeket használja annak kiderítésére, hogy a modell mennyire képes megkülönböztetni a kiválasztott és az elutasított adatokat. Ez segít az oktatónak beállítani a modellt a feladat teljesítményének javítása érdekében. A CustomTrainer osztályt egy speciális tréner létrehozására használják, amely kiszámítja a veszteségfüggvényt egy adott feladathoz, amely kiválasztott és elutasított bemeneti szekvenciákat tartalmaz. Ez az egyéni tréner kibővíti a transzformátorok könyvtára által biztosított szabványos Trainer osztály funkcionalitását, lehetővé téve a modellkimenetek kezelésének és a veszteségszámításnak a feladat speciális követelményei alapján történő testreszabott megközelítését. Lásd a következő kódot:

from transformers import TrainingArguments

training_args = TrainingArguments(output_dir="reward_model",
                                  overwrite_output_dir=True,
                                 do_train=True,
                                 do_eval=False,
                                 do_predict=False,
                                 evaluation_strategy="no",
                                 learning_rate=5e-5,
                                 num_train_epochs=1,
                                 per_device_train_batch_size=2,
                                 gradient_accumulation_steps=32,
                                 remove_unused_columns=False)
trainer = CustomTrainer( 
          model=model, 
          args=training_args, 
          train_dataset=train_dataset 
          )
trainer.train()
trainer.save_model()

A TrainingArguments a megadott kódrészletben az ML-modell betanítási folyamatának különféle szempontjainak konfigurálására szolgál. Nézzük meg az egyes paraméterek célját, és azt, hogy ezek hogyan befolyásolhatják az edzés eredményét:

  • output_dir – Meghatározza azt a könyvtárat, ahová a betanított modell és a kapcsolódó fájlok mentésre kerülnek. Ez a paraméter segít megszervezni és tárolni a betanított modellt későbbi használatra.
  • overwrite_output_dir – Meghatározza, hogy felül kell-e írni a kimeneti könyvtárat, ha már létezik. Ha ezt True értékre állítja, akkor manuális törlés nélkül újra felhasználhatja ugyanazt a könyvtárat.
  • do_train – Azt jelzi, hogy kell-e edzést végezni. Ha True értékre van állítva, a modell betanítása a megadott betanítási adatkészlet használatával történik.
  • do_eval és do_predict – Szabályozza, hogy végre kell-e hajtani az értékelési és előrejelzési feladatokat. Ebben az esetben mindkettő False értékre van állítva, ami azt jelenti, hogy csak a képzés kerül lebonyolításra.
  • értékelési_stratégia – Meghatározza, hogy az edzés során mikor kell értékelést végezni. Ha „nem”-re állítja, az értékelés nem történik meg az edzés során.
  • tanulási_ráta – Meghatározza az optimalizáló tanulási sebességét, ami befolyásolja, hogy a modell milyen gyorsan vagy lassan tanul az adatokból.
  • vonat_korszakok száma – Beállítja, hogy a modell hányszor menjen végig a teljes képzési adatkészleten az edzés során. Egy korszak egy teljes áthaladást jelent az összes képzési mintán.
  • per_device_train_batch_size – Meghatározza, hogy az egyes eszközökön (például GPU-n) végzett betanítás során hány mintát dolgozzanak fel minden kötegben. A kisebb adagméret lassabb, de stabilabb edzéshez vezethet.
  • gradiens_accumulation_steps – Szabályozza, hogy a modell paramétereinek frissítése előtt milyen gyakran halmozódnak fel a színátmenetek. Ez segíthet stabilizálni az edzést nagy adagméretekkel.
  • a_unused_columns eltávolítása – Meghatározza, hogy az adatkészlet nem használt oszlopait el kell-e távolítani a feldolgozás előtt, optimalizálva a memóriahasználatot.

Ezen paraméterek konfigurálásával a TrainingArguments, befolyásolhatja a képzési folyamat különböző aspektusait, például a modell teljesítményét, a konvergencia sebességét, a memóriahasználatot és az általános edzési eredményt az Ön speciális követelményei és korlátai alapján.

Amikor ezt a kódot futtatja, az emberi címkézőktől gyűjtött szubjektív visszajelzések számszerű megjelenítése alapján betanítja a jutalmazási modellt. Egy képzett jutalmazási modell magasabb pontszámot ad az LLM-válaszokra, amelyeket az emberek nagyobb valószínűséggel részesítenek előnyben.

Használja a jutalmazási modellt az alap LLM értékeléséhez

Mostantól betáplálhatja az LLM-től kapott választ ehhez a jutalmazási modellhez, és a kimenetként kapott numerikus pontszám tájékoztatja Önt arról, hogy az LLM válasza mennyire igazodik a jutalmazási modellbe beágyazott szubjektív szervezeti preferenciákhoz. A következő diagram ezt a folyamatot szemlélteti. Ezt a számot használhatja küszöbértékként annak eldöntésére, hogy az LLM-től kapott válasz megosztható-e a végfelhasználóval.

Revolutionize Customer Satisfaction with tailored reward models for your business on Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Tegyük fel például, hogy létrehoztunk egy jutalmazási modellt a mérgező, káros vagy nem megfelelő tartalom elkerülésére. Ha egy LLM által üzemeltetett chatbot választ ad, akkor a jutalommodell pontozhatja a chatbot válaszait. Az előre meghatározott küszöbérték feletti pontszámot elérő válaszok elfogadhatónak tekinthetők a felhasználókkal való megosztásra. A küszöb alatti pontszámok azt jelentik, hogy a tartalmat le kell tiltani. Ez lehetővé teszi, hogy automatikusan kiszűrjük azokat a chatbot-tartalmakat, amelyek nem felelnek meg az általunk érvényesíteni kívánt szabványoknak. Ha többet szeretne megtudni, tekintse meg a mellékelt részt jegyzetfüzet.

Tisztítsuk meg

A jövőbeni költségek elkerülése érdekében törölje az összes létrehozott erőforrást. Törölje a telepített SageMaker modelleket, ha van ilyen, és állítsa le a SageMaker Studio notebookot, amelyet ehhez a gyakorlathoz indított.

Következtetés

Ebben a bejegyzésben bemutattuk, hogyan lehet kiképezni egy olyan jutalmazási modellt, amely előrejelzi az emberi preferencia pontszámát az LLM válaszából. Ez úgy történik, hogy minden egyes prompthoz több kimenetet generál az LLM segítségével, majd megkéri az emberi annotátorokat, hogy rangsorolják vagy pontozzák az egyes promptokra adott válaszokat. A jutalmazási modellt ezután arra tanítják, hogy megjósolja az emberi preferencia pontszámát az LLM válaszából. A jutalmazási modell betanítása után a jutalommodell segítségével értékelheti az LLM válaszait az Ön szubjektív szervezeti standardjaihoz képest.

Ahogy a szervezet fejlődik, a jutalmazási funkcióknak a változó szervezeti értékek és felhasználói elvárások mellett kell fejlődniük. Mi határozza meg a „nagyszerű” AI-kimenetet, az szubjektív és átalakító. A szervezeteknek rugalmas ML-folyamatokra van szükségük, amelyek folyamatosan átképezik a jutalmazási modelleket a legújabb prioritásokat és igényeket tükröző, frissített jutalmakkal. Ez a tér folyamatosan fejlődik: közvetlen preferencián alapuló politika optimalizálás, eszközzel kiegészített jutalommodellezésés példa alapú vezérlés Más népszerű alternatív technikák az AI-rendszerek emberi értékekkel és célokkal való összehangolására.

Meghívjuk Önt, hogy tegye meg a következő lépést mesterségesintelligencia-megoldásai testreszabása felé az emberi visszajelzések sokszínű és szubjektív szempontjainak figyelembevételével. Használja ki a jutalommodellezés erejét, hogy AI-rendszerei rezonáljanak a márkaidentitással, és olyan kivételes élményeket nyújtsanak, amelyeket ügyfelei megérdemelnek. Kezdje el mesterséges intelligencia modelljei finomítását még ma az Amazon SageMaker segítségével, és csatlakozzon a vállalkozások élcsapatához, amelyek új mércét állítanak fel a személyre szabott ügyfélkapcsolatok terén. Ha bármilyen kérdése vagy visszajelzése van, kérjük, hagyja azokat a megjegyzések részben.


A szerzőről

Revolutionize Customer Satisfaction with tailored reward models for your business on Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Dinesh Kumar Subramani Senior Solutions Architect Edinburgh-ban, Skóciában. Mesterséges intelligenciára és gépi tanulásra specializálódott, és tagja az Amazon műszaki területi közösségének. A Dinesh szorosan együttműködik az Egyesült Királyság központi kormányzatának ügyfeleivel, hogy megoldják problémáikat az AWS-szolgáltatások használatával. A munkán kívül Dinesh szívesen tölt minőségi időt a családjával, sakkozik, és sokféle zenét fedez fel.

Időbélyeg:

Még több AWS gépi tanulás