Zephyrnet Logosu

Amazon Bedrock için Bilgi Tabanları artık RetrieveAndGenerate API'sine yönelik özel istemleri ve alınan maksimum sayıda sonucun yapılandırılmasını destekliyor | Amazon Web Hizmetleri

Tarih:

İle Amazon Bedrock için Bilgi Tabanlarıtemel modellerini (FM'ler) güvenli bir şekilde bağlayabilirsiniz. Amazon Ana Kayası Alma Artırılmış Üretim (RAG) için şirket verilerinize. Ek verilere erişim, modelin FM'leri yeniden eğitmeden daha alakalı, bağlama özgü ve doğru yanıtlar oluşturmasına yardımcı olur.

Bu yazıda Amazon Bedrock için Bilgi Tabanlarının şu iki yeni özelliğini tartışıyoruz: RetrieveAndGenerate API: Maksimum sonuç sayısını yapılandırma ve bilgi bankası bilgi istemi şablonuyla özel istemler oluşturma. Artık bunları arama türünün yanında sorgu seçenekleri olarak seçebilirsiniz.

Yeni özelliklere genel bakış ve avantajlar

Maksimum sonuç sayısı seçeneği, vektör deposundan alınacak ve yanıtın oluşturulması için FM'ye aktarılacak arama sonuçlarının sayısı üzerinde kontrol sahibi olmanızı sağlar. Bu, oluşturma için sağlanan arka plan bilgisi miktarını özelleştirmenize olanak tanır, böylece karmaşık sorular için daha fazla veya daha basit sorular için daha az bağlam sağlar. 100'e kadar sonuç getirmenizi sağlar. Bu seçenek, ilgili bağlamın olasılığını artırmaya yardımcı olur, böylece doğruluğu artırır ve oluşturulan yanıtın halüsinasyonunu azaltır.

Özel bilgi bankası bilgi istemi şablonu, yanıt oluşturmak üzere modele gönderilen bilgi istemini özelleştirmek için varsayılan bilgi istemi şablonunu kendi şablonunuzla değiştirmenize olanak tanır. Bu, bir kullanıcının sorusuna yanıt verirken FM'in tonunu, çıkış formatını ve davranışını özelleştirmenize olanak tanır. Bu seçenekle, sektörünüze veya etki alanınıza (sağlık veya hukuk gibi) daha iyi uyacak şekilde terminolojiye ince ayar yapabilirsiniz. Ayrıca, özel iş akışlarınıza göre uyarlanmış özel talimatlar ve örnekler ekleyebilirsiniz.

Aşağıdaki bölümlerde bu özellikleri aşağıdaki seçeneklerden herhangi biriyle nasıl kullanabileceğinizi açıklıyoruz: AWS Yönetim Konsolu veya SDK'dır.

Önkoşullar

Bu örnekleri takip etmek için mevcut bir bilgi tabanına sahip olmanız gerekir. Bir tane oluşturma talimatları için bkz. Bir bilgi tabanı oluşturun.

Konsolu kullanarak maksimum sonuç sayısını yapılandırın

Konsolu kullanarak maksimum sonuç sayısı seçeneğini kullanmak için aşağıdaki adımları tamamlayın:

  1. Amazon Bedrock konsolunda şunu seçin: Bilgi tabanları Sol gezinti bölmesinde.
  2. Oluşturduğunuz bilgi tabanını seçin.
  3. Klinik Bilgi tabanını test edin.
  4. Yapılandırma simgesini seçin.
  5. Klinik Veri kaynağını senkronize et Bilgi tabanınızı test etmeye başlamadan önce.
  6. Altında yapılandırmaları, Için Arama Tipikullanım durumunuza göre bir arama türü seçin.

Bu yazı için hibrit aramayı kullanıyoruz çünkü anlamsal ve metin aramayı birleştirerek daha fazla doğruluk sağlıyor. Karma arama hakkında daha fazla bilgi edinmek için bkz. Amazon Bedrock için Bilgi Tabanları artık hibrit aramayı destekliyor.

  1. Genişletmek Maksimum kaynak parça sayısı ve maksimum sonuç sayınızı ayarlayın.

Yeni özelliğin değerini göstermek için oluşturulan yanıtın doğruluğunu nasıl artırabileceğinize dair örnekler gösteriyoruz. Kullandığımız 10 Amazon 2023K belgesi bilgi tabanını oluşturmak için kaynak veriler olarak. Deney için şu sorguyu kullanıyoruz: "Amazon'un yıllık geliri hangi yılda 245 milyar dolardan 434 milyar dolara çıktı?"

Bilgi tabanındaki belgelere göre bu sorgunun doğru yanıtı "Amazon'un yıllık geliri 245'da 2019 Milyar Dolardan 434'de 2022 Milyar Dolara çıktı" olacaktır. Bilgi tabanından alınan bağlamsal bilgilere dayanarak nihai yanıtı oluşturmak için FM olarak Claude v2'yi kullandık. Claude 3 Sonnet ve Claude 3 Haiku da nesil FM'ler olarak desteklenmektedir.

Alma işleminin farklı konfigürasyonlarla karşılaştırılmasını göstermek için başka bir sorgu çalıştırdık. Aynı giriş sorgusunu kullandık ("Amazon'un yıllık geliri hangi yılda 245 Milyar Dolardan 434 Milyar Dolara çıktı?") ve maksimum sonuç sayısını 5 olarak belirledik.

Aşağıdaki ekran görüntüsünde gösterildiği gibi oluşturulan yanıt şuydu: "Üzgünüm, bu istek konusunda size yardımcı olamıyorum."

Daha sonra maksimum sonuçları 12'ye ayarlayıp aynı soruyu soruyoruz. Oluşturulan yanıt şuydu: "Amazon'un yıllık geliri 245'da 2019 milyar dolardan 434'de 2022 milyar dolara çıktı."

Bu örnekte gösterildiği gibi, alınan sonuç sayısına göre doğru cevaba ulaşabiliyoruz. Nihai çıktıyı oluşturan kaynak ilişkilendirmesi hakkında daha fazla bilgi edinmek istiyorsanız Kaynak ayrıntılarını göster Bilgi tabanına dayalı olarak oluşturulan cevabı doğrulamak için.

Konsolu kullanarak bir bilgi bankası bilgi istemi şablonunu özelleştirme

Ayrıca varsayılan istemi, kullanım senaryosuna göre kendi isteminizle de özelleştirebilirsiniz. Bunu konsolda yapmak için aşağıdaki adımları tamamlayın:

  1. Bilgi tabanınızı test etmeye başlamak için önceki bölümdeki adımları tekrarlayın.
  2. etkinleştirme Yanıtlar oluştur.
  3. Yanıt oluşturmak için tercih ettiğiniz modeli seçin.

Bu yazıda örnek olarak Claude v2 modelini kullanıyoruz. Claude 3 Sonnet ve Haiku modeli de üretime hazırdır.

  1. Klinik Tamam Devam etmek için.

Modeli seçtikten sonra, adı verilen yeni bir bölüm Bilgi tabanı bilgi istemi şablonu altında görünür yapılandırmaları.

  1. Klinik Düzenle İstemi özelleştirmeye başlamak için.
  2. Alınan sonuçları nasıl kullanmak ve içerik oluşturmak istediğinizi özelleştirmek için bilgi istemi şablonunu ayarlayın.

Bu yazı için, Amazon finansal raporlarını özel istemlerle kullanarak bir "Finansal Danışman Yapay Zeka sistemi" oluşturmaya yönelik birkaç örnek verdik. Hızlı mühendislikle ilgili en iyi uygulamalar için bkz. Hızlı mühendislik yönergeleri.

Artık varsayılan bilgi istemi şablonunu birkaç farklı şekilde özelleştiriyoruz ve yanıtları gözlemliyoruz.

Önce varsayılan istemle bir sorgu deneyelim. “Amazon'un 2019 ve 2021'deki geliri neydi?” diye soruyoruz. Aşağıda sonuçlarımız gösterilmektedir.

Çıktıdan, alınan bilgiye dayalı olarak serbest biçimli yanıt ürettiğini görüyoruz. Alıntılar ayrıca referans amacıyla listelenmiştir.

Oluşturulan yanıtın JSON olarak standartlaştırılması gibi nasıl biçimlendirileceğine ilişkin ek talimatlar vermek istediğimizi varsayalım. Bilgiyi aldıktan sonra, bilgi istemi şablonunun bir parçası olarak bu talimatları ayrı bir adım olarak ekleyebiliriz:

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}

Nihai yanıt gerekli yapıya sahiptir.

Bilgi istemini özelleştirerek oluşturulan yanıtın dilini de değiştirebilirsiniz. Aşağıdaki örnekte modele İspanyolca yanıt verme talimatını veriyoruz.

çıkardıktan sonra $output_format_instructions$ varsayılan bilgi isteminden, oluşturulan yanıttaki alıntı kaldırılır.

Aşağıdaki bölümlerde bu özellikleri SDK ile nasıl kullanabileceğinizi açıklıyoruz.

SDK'yı kullanarak maksimum sonuç sayısını yapılandırın

SDK ile maksimum sonuç sayısını değiştirmek için aşağıdaki sözdizimini kullanın. Bu örnekte sorgu şu şekildedir: "Amazon'un yıllık geliri hangi yılda 245 milyar dolardan 434 milyar dolara çıktı?" Doğru yanıt, "Amazon'un yıllık geliri 245'da 2019 milyar dolardan 434'de 2022 milyar dolara çıktı."

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']

'numberOfResults'altındaki seçenek'retrievalConfiguration' almak istediğiniz sonuç sayısını seçmenizi sağlar. Çıkışı RetrieveAndGenerate API, oluşturulan yanıtı, kaynak ilişkilendirmesini ve alınan metin parçalarını içerir.

Farklı 'değerleri için sonuçlar aşağıdadır:numberOfResults' parametreleri. İlk önce ayarlarız numberOfResults = 5.

Sonra ayarladık numberOfResults = 12.

SDK'yı kullanarak bilgi bankası bilgi istemi şablonunu özelleştirme

İstemi SDK kullanarak özelleştirmek için aşağıdaki sorguyu farklı bilgi istemi şablonlarıyla kullanıyoruz. Bu örnek için sorgu şu: "Amazon'un 2019 ve 2021'deki geliri neydi?"

Varsayılan bilgi istemi şablonu aşağıdadır:

"""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:
"""

Özelleştirilmiş bilgi istemi şablonu aşağıdadır:

"""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']

Varsayılan bilgi istemi şablonuyla aşağıdaki yanıtı alırız:

Yanıt oluşturmanın çıktı biçimi hakkında, yanıtı belirli bir biçimde (JSON gibi) standartlaştırmak gibi ek talimatlar sağlamak istiyorsanız, daha fazla rehberlik sağlayarak mevcut istemi özelleştirebilirsiniz. Özel bilgi istemi şablonumuzla aşağıdaki yanıtı alıyoruz.

'promptTemplate'seçenek'generationConfiguration' yanıt oluşturma üzerinde daha iyi kontrol sağlamak için istemi özelleştirmenize olanak tanır.

Sonuç

Bu gönderide Amazon Bedrock için Bilgi Tabanlarında iki yeni özelliği tanıttık: maksimum arama sonucu sayısını ayarlamak ve arama sonuçları için varsayılan bilgi istemi şablonunu özelleştirmek RetrieveAndGenerate API'dir. Oluşturulan yanıtın performansını ve doğruluğunu artırmak için bu özelliklerin konsolda ve SDK aracılığıyla nasıl yapılandırılacağını gösterdik. Maksimum sonuçların artırılması daha kapsamlı bilgiler sağlarken bilgi istemi şablonunu özelleştirmek, belirli kullanım durumlarıyla daha iyi uyum sağlamak için temel modele yönelik talimatlarda ince ayar yapmanıza olanak tanır. Bu geliştirmeler daha fazla esneklik ve kontrol sunarak RAG tabanlı uygulamalar için özelleştirilmiş deneyimler sunmanıza olanak tanır.

AWS ortamınızda uygulamaya başlanacak ek kaynaklar için aşağıdakilere bakın:


yazarlar hakkında

Sandeep Singh Amazon Web Services'te Kıdemli Üretken Yapay Zeka Veri Bilimcisidir ve işletmelerin üretken yapay zeka ile yenilik yapmasına yardımcı olur. Üretken Yapay Zeka, Yapay Zeka, Makine Öğrenimi ve Sistem Tasarımı konularında uzmanlaşmıştır. Çeşitli endüstrilerdeki karmaşık iş sorunlarını çözmek, verimliliği ve ölçeklenebilirliği optimize etmek için son teknoloji ürünü AI/ML destekli çözümler geliştirme konusunda tutkulu.

Suyin Wang AWS'de AI/ML Uzman Çözüm Mimarıdır. Makine Öğrenimi, Finansal Bilgi Hizmeti ve Ekonomi alanlarında disiplinler arası bir eğitim geçmişinin yanı sıra, gerçek dünyadaki iş sorunlarını çözen Veri Bilimi ve Makine Öğrenimi uygulamaları oluşturma konusunda uzun yıllara dayanan deneyime sahiptir. Müşterilerin doğru iş sorularını belirlemelerine ve doğru AI/ML çözümlerini oluşturmalarına yardımcı olmaktan hoşlanıyor. Boş zamanlarında şarkı söylemeyi ve yemek yapmayı seviyor.

Şeri Ding Amazon Web Services'te (AWS) kıdemli yapay zeka (AI) ve makine öğrenimi (ML) uzman çözümleri mimarıdır. Bilgisayar bilimleri alanında doktora derecesine sahip olup makine öğrenimi konusunda geniş deneyime sahiptir. Çoğunlukla kamu sektörü müşterileriyle AI/ML ile ilgili çeşitli iş zorlukları üzerinde çalışarak onların AWS Cloud'daki makine öğrenimi yolculuklarını hızlandırmalarına yardımcı oluyor. Müşterilere yardım etmediği zamanlarda açık hava aktivitelerinden hoşlanıyor.

spot_img

En Son İstihbarat

spot_img