A Knowledge Bases for Amazon Bedrock mostantól támogatja az egyéni promptokat a RetrieveAndGenerate API-hoz és a lekért eredmények maximális számának beállítását | Amazon webszolgáltatások

A Knowledge Bases for Amazon Bedrock mostantól támogatja az egyéni promptokat a RetrieveAndGenerate API-hoz és a lekért eredmények maximális számának beállítását | Amazon webszolgáltatások

A Tudásbázisok az Amazon Bedrock számára, biztonságosan csatlakoztathatja az alapozó modelleket (FM-eket). Amazon alapkőzet a vállalati adatokhoz a Retrieval Augmented Generation (RAG) számára. A további adatokhoz való hozzáférés segít a modellnek relevánsabb, kontextus-specifikus és pontosabb válaszokat generálni az FM-ek átképzése nélkül.

Ebben a bejegyzésben az Amazon Bedrock tudásbázisainak két új funkcióját tárgyaljuk RetrieveAndGenerate API: a találatok maximális számának konfigurálása és egyéni promptok létrehozása tudásbázis prompt sablonnal. Ezeket most a keresési típus mellett választhatja ki lekérdezési lehetőségként.

Az új funkciók áttekintése és előnyei

A találatok maximális száma opcióval szabályozhatja a vektortárból lekérendő és az FM-nek továbbítandó keresési eredmények számát a válasz generálásához. Ez lehetővé teszi a generáláshoz biztosított háttérinformációk mennyiségének testreszabását, ezáltal több kontextust biztosít az összetett kérdésekhez, vagy kevesebbet az egyszerűbb kérdésekhez. Lehetővé teszi akár 100 találat lekérését. Ez az opció segít javítani a releváns kontextus valószínűségét, ezáltal javítja a pontosságot és csökkenti a generált válasz hallucinációit.

Az egyéni tudásbázis-kérdéssablon lehetővé teszi az alapértelmezett prompt sablon lecserélését a sajátjára, hogy testreszabhassa a modellnek válaszgenerálás céljából küldött prompt. Ez lehetővé teszi az FM hangszínének, kimeneti formátumának és viselkedésének testreszabását, amikor az FM válaszol a felhasználó kérdésére. Ezzel a lehetőséggel finomíthatja a terminológiát, hogy jobban megfeleljen iparágának vagy tartományának (például egészségügyi vagy jogi). Ezenkívül egyéni utasításokat és példákat is hozzáadhat az adott munkafolyamatokhoz.

A következő szakaszokban elmagyarázzuk, hogyan használhatja ezeket a funkciókat a AWS felügyeleti konzol vagy SDK.

Előfeltételek

A példák követéséhez meglévő tudásbázissal kell rendelkeznie. A létrehozására vonatkozó utasításokat lásd Hozzon létre egy tudásbázist.

Állítsa be az eredmények maximális számát a konzol segítségével

A maximális számú találat beállításához a konzol használatával hajtsa végre a következő lépéseket:

  1. Az Amazon Bedrock konzolon válassza a lehetőséget Tudásbázisok a bal oldali navigációs ablakban.
  2. Válassza ki a létrehozott tudásbázist.
  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 Teszt tudásbázis.
  4. Válassza ki a konfigurációs ikont.
  5. 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 Adatforrás szinkronizálása mielőtt elkezdi tesztelni tudásbázisát.
    Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  6. Alatt Konfigurációk, A Keresés típusa, válasszon keresési típust a használati esete alapján.

Ebben a bejegyzésben hibrid keresést használunk, mert a szemantikai és szöveges keresést kombinálja a szolgáltató nagyobb pontossága érdekében. Ha többet szeretne megtudni a hibrid keresésről, lásd: Az Amazon Bedrock tudásbázisai mostantól támogatják a hibrid keresést.

  1. Bontsa A forrásdarabok maximális száma és állítsa be az eredmények maximális számát.
    Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Az új funkció értékének bemutatása érdekében példákat mutatunk be arra, hogyan növelheti a generált válasz pontosságát. Használtuk Amazon 10K dokumentum 2023-ra forrásadatként a tudásbázis létrehozásához. A következő lekérdezést használjuk a kísérletezéshez: „Melyik évben nőtt az Amazon éves bevétele 245 milliárd dollárról 434 milliárd dollárra?”

A helyes válasz erre a kérdésre: „Az Amazon éves bevétele a 245-es 2019 milliárd dollárról 434-re 2022 milliárd dollárra nőtt” a tudásbázis dokumentumai alapján. A Claude v2-t használtuk FM-ként a végső válasz létrehozásához a tudásbázisból nyert kontextuális információk alapján. A Claude 3 Sonnet és a Claude 3 Haiku is támogatott generációs FM-ként.

Futtattunk egy másik lekérdezést, hogy bemutassuk a lekérdezés összehasonlítását a különböző konfigurációkkal. Ugyanazt a beviteli lekérdezést használtuk („Melyik évben nőtt az Amazon éves bevétele 245 milliárd dollárról 434 milliárd dollárra?”), és az eredmények maximális számát 5-re állítottuk be.

Ahogy a következő képernyőképen látható, a generált válasz a következő volt: „Sajnos nem tudok segíteni a kérésben”.

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ezután a maximális eredményt 12-re állítjuk, és ugyanazt a kérdést tesszük fel. A kapott válasz a következő: „Az Amazon éves bevétele a 245-es 2019 milliárd dollárról 434-re 2022 milliárd dollárra nőtt.”

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Amint ebben a példában is látható, a lekért eredmények száma alapján tudjuk lekérni a helyes választ. Ha többet szeretne megtudni a végső kimenetet képező forrás-hozzárendelésről, válassza a lehetőséget Forrás részleteinek megjelenítése hogy a tudásbázis alapján érvényesítse a generált választ.

Testreszabhatja a tudásbázis-kérdési sablont a konzol segítségével

Az alapértelmezett promptot saját promptjával is testreszabhatja a használati eset alapján. Ehhez a konzolon hajtsa végre a következő lépéseket:

  1. A tudásbázis tesztelésének megkezdéséhez ismételje meg az előző szakasz lépéseit.
  2. engedélyezése Válaszok generálása.
    Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  3. Válassza ki a választott modellt a válasz generálásához.

Ebben a bejegyzésben a Claude v2 modellt használjuk példaként. A Claude 3 Sonnet és Haiku modell generációra is elérhető.

  1. 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 alkalmaz A folytatáshoz.
    Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Miután kiválasztotta a modellt, megjelenik egy új szakasz az ún Tudásbázis prompt sablon alatt jelenik meg Konfigurációk.

  1. 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 szerkesztése a prompt testreszabásának megkezdéséhez.
    Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  2. Állítsa be a prompt sablont a lekért eredmények felhasználásának és tartalom generálásának testreszabásához.

Ebben a bejegyzésben néhány példát adtunk egy „Financial Advisor AI-rendszer” létrehozására az Amazon pénzügyi jelentések segítségével, egyéni promptokkal. Az azonnali tervezéssel kapcsolatos legjobb gyakorlatokért lásd: Gyors mérnöki irányelvek.

Mostantól többféleképpen testreszabjuk az alapértelmezett prompt sablont, és megfigyeljük a válaszokat.

Először próbáljunk meg egy lekérdezést az alapértelmezett prompttal. Azt kérdezzük: „Mekkora volt az Amazon bevétele 2019-ben és 2021-ben?” Eredményeinket az alábbiakban mutatjuk be.

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A kimenetből azt találjuk, hogy a letöltött tudás alapján szabad formájú választ generál. Az idézetek hivatkozásként is szerepelnek.

Tegyük fel, hogy további utasításokat szeretnénk adni a generált válasz formázásához, például szabványosításhoz JSON-ként. Ezeket az utasításokat külön lépésként hozzáadhatjuk az információ lekérése után, a prompt sablon részeként:

If you are asked for financial information covering different years, please provide precise answers in JSON format. Use the year as the key and the concise answer as the value. For example: {year:answer}

A végső válasz a kívánt szerkezettel rendelkezik.

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

A prompt testreszabásával módosíthatja a generált válasz nyelvét is. A következő példában arra utasítjuk a modellt, hogy spanyolul adjon választ.

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Az eltávolítás után $output_format_instructions$ az alapértelmezett promptból a generált válaszból származó idézet eltávolításra kerül.

A következő szakaszokban elmagyarázzuk, hogyan használhatja ezeket a szolgáltatásokat az SDK-val.

Állítsa be a találatok maximális számát az SDK segítségével

Az SDK-val az eredmények maximális számának módosításához használja a következő szintaxist. Ebben a példában a lekérdezés a következő: „Melyik évben nőtt az Amazon éves bevétele 245 milliárd dollárról 434 milliárd dollárra?” A helyes válasz: „Az Amazon éves bevétele a 245-es 2019 milliárd dollárról 434-re 2022 milliárd dollárra nőtt.”

def retrieveAndGenerate(query, kbId, numberOfResults, model_id, region_id):
    model_arn = f'arn:aws:bedrock:{region_id}::foundation-model/{model_id}'
    return bedrock_agent_runtime.retrieve_and_generate(
        input={
            'text': query
        },
        retrieveAndGenerateConfiguration={
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': kbId,
                'modelArn': model_arn,
                'retrievalConfiguration': {
                    'vectorSearchConfiguration': {
                        'numberOfResults': numberOfResults,
                        'overrideSearchType': "SEMANTIC", # optional'
                    }
                }
            },
            'type': 'KNOWLEDGE_BASE'
        },
    )

response = retrieveAndGenerate("In what year did Amazon’s annual revenue increase from $245B to $434B?", 
"<knowledge base id>", numberOfResults, model_id, region_id)['output']['text']

Az "numberOfResults' opció a ' alattretrievalConfiguration' lehetővé teszi a lekérni kívánt eredmények számának kiválasztását. A kimenet a RetrieveAndGenerate Az API tartalmazza a generált választ, a forrás hozzárendelését és a letöltött szövegrészeket.

A következő eredmények a következő különböző értékeire vonatkoznak:numberOfResults' paramétereket. Először beállítjuk numberOfResults = 5.

Aztán beállítjuk numberOfResults = 12.

Testreszabhatja a tudásbázis prompt sablonját az SDK segítségével

A prompt SDK használatával történő testreszabásához a következő lekérdezést használjuk különböző prompt sablonokkal. Ebben a példában a lekérdezés a következő: „Mekkora volt az Amazon bevétele 2019-ben és 2021-ben?”

A következő az alapértelmezett prompt sablon:

"""You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results. If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question. Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.
Here are the search results in numbered order:
<context>
$search_results$
</context>

Here is the user's question:
<question>
$query$
</question>

$output_format_instructions$

Assistant:
"""

A következő a testreszabott prompt sablon:

"""Human: You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results.If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question.Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion.

Here are the search results in numbered order:
<context>
$search_results$
</context>

Here is the user's question:
<question>
$query$
</question>

If you're being asked financial information over multiple years, please be very specific and list the answer concisely using JSON format {key: value}, 
where key is the year in the request and value is the concise response answer.
Assistant:
"""

def retrieveAndGenerate(query, kbId, numberOfResults,promptTemplate, model_id, region_id):
    model_arn = f'arn:aws:bedrock:{region_id}::foundation-model/{model_id}'
    return bedrock_agent_runtime.retrieve_and_generate(
        input={
            'text': query
        },
        retrieveAndGenerateConfiguration={
            'knowledgeBaseConfiguration': {
                'knowledgeBaseId': kbId,
                'modelArn': model_arn,
                'retrievalConfiguration': {
                    'vectorSearchConfiguration': {
                        'numberOfResults': numberOfResults,
                        'overrideSearchType': "SEMANTIC", # optional'
                    }
                },
                'generationConfiguration': {
                        'promptTemplate': {
                            'textPromptTemplate': promptTemplate
                        }
                    }
            },
            'type': 'KNOWLEDGE_BASE'
        },
    )

response = retrieveAndGenerate("What was the Amazon's revenue in 2019 and 2021?”", 
                               "<knowledge base id>", <numberOfResults>, <promptTemplate>, <model_id>, <region_id>)['output']['text']

Az alapértelmezett prompt sablonnal a következő választ kapjuk:

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ha további utasításokat szeretne adni a válaszgenerálás kimeneti formátumával kapcsolatban, például szabványosítani szeretné a választ egy adott formátumban (például JSON), akkor további útmutatásokkal testreszabhatja a meglévő promptot. Egyéni prompt sablonunkkal a következő választ kapjuk.

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Az "promptTemplate'opció a'-bangenerationConfiguration' lehetővé teszi a prompt testreszabását a válaszgenerálás jobb szabályozása érdekében.

Következtetés

Ebben a bejegyzésben két új funkciót mutattunk be az Amazon Bedrock tudásbázisában: a keresési eredmények maximális számának beállítását és az alapértelmezett prompt sablon testreszabását a RetrieveAndGenerate API. Bemutattuk, hogyan konfigurálhatjuk ezeket a funkciókat a konzolon és az SDK-n keresztül a generált válasz teljesítményének és pontosságának javítása érdekében. A maximális eredmények növelése átfogóbb információkat biztosít, míg a prompt sablon testreszabása lehetővé teszi az alapmodell utasításainak finomhangolását, hogy jobban igazodjanak az adott használati esetekhez. Ezek a fejlesztések nagyobb rugalmasságot és vezérlést tesznek lehetővé, lehetővé téve, hogy személyre szabott élményt nyújtson a RAG-alapú alkalmazásokhoz.

Az AWS-környezetben való megvalósítás megkezdéséhez további erőforrásokért tekintse meg a következőket:


A szerzőkről

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Sandeep Singh az Amazon Web Services vezető generatív mesterségesintelligencia-kutatója, aki a generatív mesterségesintelligencia segítségével segíti a vállalkozásokat az innovációban. Szakterülete a generatív AI, a mesterséges intelligencia, a gépi tanulás és a rendszertervezés. Szenvedélyesen törekszik a legkorszerűbb AI/ML-alapú megoldások kifejlesztésére, amelyek különféle iparágak összetett üzleti problémáinak megoldására, a hatékonyság és a méretezhetőség optimalizálására szolgálnak.

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Suyin Wang AI/ML Specialist Solutions Architect az AWS-nél. Interdiszciplináris oktatási háttérrel rendelkezik gépi tanulás, pénzügyi információs szolgáltatás és közgazdaságtan területén, valamint több éves tapasztalattal rendelkezik olyan adattudományi és gépi tanulási alkalmazások építésében, amelyek valós üzleti problémákat oldottak meg. Szívesen segít ügyfeleinek a megfelelő üzleti kérdések azonosításában és a megfelelő AI/ML megoldások kidolgozásában. Szabadidejében szeret énekelni és főzni.

Knowledge Bases for Amazon Bedrock now supports custom prompts for the RetrieveAndGenerate API and configuration of the maximum number of retrieved results | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Sherry Ding az Amazon Web Services (AWS) mesterséges intelligencia (AI) és gépi tanulási (ML) megoldások vezető építészmérnöke. Számítástechnikai PhD fokozattal rendelkezik a gépi tanulás területén. Főleg a közszférában dolgozó ügyfelekkel dolgozik különféle mesterséges intelligenciával/ML-lel kapcsolatos üzleti kihívásokon, segítve őket az AWS felhőben való gépi tanulási útjuk felgyorsításában. Amikor nem segít az ügyfeleknek, szereti a szabadtéri tevékenységeket.

Időbélyeg:

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