Amazon OpenSearch Hizmetinde AI/ML bağlayıcılarıyla sinirsel aramayı güçlendirin | Amazon Web Hizmetleri

Amazon OpenSearch Hizmetinde AI/ML bağlayıcılarıyla sinirsel aramayı güçlendirin | Amazon Web Hizmetleri

Kaynak Düğüm: 3068091

Sinirsel arama özelliğinin kullanıma sunulmasıyla birlikte Amazon Açık Arama Hizmeti OpenSearch 2.9'da anlamsal aramayı ve diğer kullanım durumlarını güçlendirmek için AI/ML modelleriyle entegrasyon artık zahmetsiz. OpenSearch Hizmeti, 2020'de k-en yakın komşu (k-NN) özelliğinin kullanıma sunulmasından bu yana hem sözcüksel hem de vektör aramayı desteklemektedir; ancak anlamsal aramayı yapılandırmak, makine öğrenimi (ML) modellerini alma ve aramaya entegre etmek için bir çerçeve oluşturmayı gerektiriyordu. Nöral arama özelliği, alma ve arama sırasında metinden vektöre dönüşümü kolaylaştırır. Arama sırasında bir sinirsel sorgu kullandığınızda, sorgu bir vektör yerleştirmeye çevrilir ve derlemden en yakın vektör yerleştirmeleri döndürmek için k-NN kullanılır.

Nöral aramayı kullanmak için bir ML modeli ayarlamanız gerekir. AI/ML bağlayıcılarını AWS AI ve ML hizmetlerine (ör. Amazon Adaçayı Yapıcı or Amazon Ana Kayası) veya üçüncü taraf alternatifleri. OpenSearch Hizmetinin 2.9 sürümünden başlayarak, AI/ML bağlayıcıları, veri derleminizin ve sorgularınızın vektör yerleştirmelerine çevirisini basitleştirmek ve operasyonel hale getirmek için sinirsel aramayla entegre olur, böylece vektör hidrasyonu ve aramanın karmaşıklığının çoğunu ortadan kaldırır.

Bu yazıda, OpenSearch Hizmeti konsolu aracılığıyla AI/ML bağlayıcılarının harici modellere nasıl yapılandırılacağını gösteriyoruz.

Çözüme Genel Bakış

Bu yazı özellikle SageMaker'daki bir modele bağlanma konusunda size yol gösterecektir. Ardından, bir ML modeline bağlantı yoluyla desteklenen bir kullanım örneği örneği olarak OpenSearch Hizmeti'nde anlamsal aramayı yapılandırmak için bağlayıcıyı kullanma konusunda size rehberlik edeceğiz. Amazon Bedrock ve SageMaker entegrasyonları şu anda OpenSearch Service konsolu kullanıcı arayüzünde desteklenmektedir ve kullanıcı arayüzü destekli birinci ve üçüncü taraf entegrasyonların listesi büyümeye devam edecektir.

Kullanıcı arayüzü aracılığıyla desteklenmeyen modeller için bunları mevcut API'leri ve Makine öğrenimi planları. Daha fazla bilgi için bkz. OpenSearch Modellerine Giriş. Her bir konektörün planlarını şurada bulabilirsiniz: ML Commons GitHub deposu.

Önkoşullar

Modeli OpenSearch Hizmeti konsolu aracılığıyla bağlamadan önce bir OpenSearch Hizmeti etki alanı oluşturun. Harita AWS Kimlik ve Erişim Yönetimi (IAM) rolü adına göre LambdaInvokeOpenSearchMLCommonsRole arka uç rolü olarak ml_full_access Aşağıdaki videoda gösterildiği gibi OpenSearch Kontrol Panellerindeki Güvenlik eklentisini kullanarak rolünüzü değiştirebilirsiniz. OpenSearch Hizmeti entegrasyonları iş akışı, LambdaInvokeOpenSearchMLCommonsRole OpenSearch Hizmeti etki alanı ile SageMaker'da dağıtılan model arasındaki bağlayıcıyı oluşturmak için varsayılan olarak IAM rolü. OpenSearch Hizmeti konsolu entegrasyonlarında özel bir IAM rolü kullanıyorsanız özel rolün, arka uç rolüyle eşlendiğinden emin olun. ml_full_access şablonu dağıtmadan önce izinler.

Modeli AWS CloudFormation'ı kullanarak dağıtın

Aşağıdaki videoda, Amazon SageMaker'da birkaç dakika içinde bir model dağıtmak ve AI bağlayıcıları aracılığıyla model kimliğini oluşturmak için OpenSearch Hizmeti konsolunu kullanma adımları gösterilmektedir. İlk adım seçmektir Entegrasyonlar Mevcut entegrasyonların listesine yönlendiren OpenSearch Hizmeti AWS konsolundaki gezinme bölmesinde. Entegrasyon, sizden gerekli girişleri isteyecek bir kullanıcı arayüzü aracılığıyla kurulur.

Entegrasyonu ayarlamak için yalnızca OpenSearch Hizmeti etki alanı uç noktasını sağlamanız ve model bağlantısını benzersiz şekilde tanımlamak için bir model adı sağlamanız gerekir. Varsayılan olarak şablon, Hugging Face cümle-dönüştürücüleri modelini dağıtır, djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2.

Seçtiğinizde Yığın Oluştur, şuraya yönlendiriliyorsunuz: AWS CloudFormation konsol. CloudFormation şablonu, aşağıdaki diyagramda ayrıntıları verilen mimariyi dağıtır.

CloudFormation yığını bir oluşturur AWS Lambda bir modeli dağıtan uygulama Amazon Basit Depolama Hizmeti (Amazon S3), konektörü oluşturur ve çıktıda model kimliğini oluşturur. Daha sonra bu model kimliğini anlamsal bir dizin oluşturmak için kullanabilirsiniz.

Varsayılan all-MiniLM-L6-v2 modeli amacınıza hizmet etmiyorsa, model yapılarınızı erişilebilir bir S3 nesnesi olarak sağlayarak seçtiğiniz herhangi bir metin yerleştirme modelini seçilen model ana bilgisayarına (SageMaker veya Amazon Bedrock) dağıtabilirsiniz. Alternatif olarak aşağıdakilerden birini seçebilirsiniz önceden eğitilmiş dil modelleri ve bunu SageMaker'a dağıtın. Uç noktanızı ve modellerinizi ayarlama talimatları için bkz. Kullanılabilir Amazon SageMaker Görüntüleri.

SageMaker, her türlü kullanım durumu için yüksek performanslı, düşük maliyetli ML'yi mümkün kılan geniş bir araç kümesini bir araya getiren, sürekli eğitim ve dağıtım için model izleme, sunucusuz barındırma ve iş akışı otomasyonu gibi temel avantajlar sağlayan, tam olarak yönetilen bir hizmettir. SageMaker, metin yerleştirme modellerinin yaşam döngüsünü barındırmanıza ve yönetmenize ve bunları OpenSearch Hizmetinde anlamsal arama sorgularını güçlendirmek için kullanmanıza olanak tanır. Bağlanıldığında SageMaker modellerinizi barındırır ve OpenSearch Hizmeti, SageMaker'dan elde edilen çıkarım sonuçlarına göre sorgulama yapmak için kullanılır.

Dağıtılan modeli OpenSearch Kontrol Panelleri aracılığıyla görüntüleyin

CloudFormation şablonunun modeli OpenSearch Hizmeti alanına başarıyla dağıttığını doğrulamak ve model kimliğini almak için OpenSearch Dashboards Geliştirme Araçları aracılığıyla ML Commons REST GET API'sini kullanabilirsiniz.

GET _plugins REST API artık model durumunu görüntülemek için ek API'ler sağlıyor. Aşağıdaki komut uzak modelin durumunu görmenizi sağlar:

GET _plugins/_ml/models/<modelid>

Aşağıdaki ekran görüntüsünde gösterildiği gibi, bir DEPLOYED yanıttaki durum, modelin OpenSearch Hizmeti kümesine başarıyla konuşlandırıldığını gösterir.

Alternatif olarak, OpenSearch Hizmeti etki alanınıza dağıtılan modeli kullanarak görüntüleyebilirsiniz. Makine öğrenme OpenSearch Kontrol Panellerinin sayfası.

Bu sayfada model bilgileri ve dağıtılan tüm modellerin durumları listelenir.

Model kimliğini kullanarak sinir hattını oluşturun

Modelin durumu şu şekilde gösterildiğinde: DEPLOYED Geliştirici Araçları'nda veya yeşil ve tepki vermek OpenSearch Kontrol Panellerinde, sinir alma işlem hattınızı oluşturmak için model kimliğini kullanabilirsiniz. Aşağıdaki besleme hattı alan adınızın OpenSearch Kontrol Panelleri Geliştirme Araçları'nda çalıştırılır. Model kimliğini, alanınızda dağıtılan model için oluşturulan benzersiz kimlikle değiştirdiğinizden emin olun.

PUT _ingest/pipeline/neural-pipeline
{
  "description": "Semantic Search for retail product catalog ",
  "processors" : [
    {
      "text_embedding": {
        "model_id": "sfG4zosBIsICJFsINo3X",
        "field_map": {
           "description": "desc_v",
           "name": "name_v"
        }
      }
    }
  ]
}

Varsayılan ardışık düzen olarak sinirsel ardışık düzeni kullanarak anlamsal arama dizinini oluşturun

Artık dizin eşlemenizi, önceki adımda oluşturduğunuz yeni sinir hattını kullanacak şekilde yapılandırılmış varsayılan işlem hattıyla tanımlayabilirsiniz. Vektör alanlarının şu şekilde bildirildiğinden emin olun: knn_vector ve boyutların SageMaker'da konuşlandırılan modele uygun olması. All-MiniLM-L6-v2 modelini SageMaker'da dağıtmak için varsayılan yapılandırmayı koruduysanız, aşağıdaki ayarları olduğu gibi bırakın ve komutu Geliştirme Araçları'nda çalıştırın.

PUT semantic_demostore
{
  "settings": {
    "index.knn": true,  
    "default_pipeline": "neural-pipeline",
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "desc_v": {
        "type": "knn_vector",
        "dimension": 384,
        "method": {
          "name": "hnsw",
          "engine": "nmslib",
          "space_type": "cosinesimil"
        }
      },
      "name_v": {
        "type": "knn_vector",
        "dimension": 384,
        "method": {
          "name": "hnsw",
          "engine": "nmslib",
          "space_type": "cosinesimil"
        }
      },
      "description": {
        "type": "text" 
      },
      "name": {
        "type": "text" 
      } 
    }
  }
}

Vektörler oluşturmak için örnek belgeleri alın

Bu demo için şunları alabilirsiniz: örnek perakende demostore ürün kataloğu yeniye semantic_demostore indeks. Kullanıcı adını, şifreyi ve etki alanı uç noktasını etki alanı bilgilerinizle değiştirin ve ham verileri OpenSearch Hizmetine aktarın:

curl -XPOST -u 'username:password' 'https://domain-end-point/_bulk' --data-binary @semantic_demostore.json -H 'Content-Type: application/json'

Yeni semantic_demostore dizinini doğrulayın

Artık veri kümenizi OpenSearch Hizmeti etki alanına aldığınıza göre, tüm alanları getirmek için basit bir arama kullanarak gerekli vektörlerin oluşturulup oluşturulmadığını doğrulayın. Alanların şu şekilde tanımlanıp tanımlanmadığını doğrulayın: knn_vectors Gerekli vektörlere sahip olun.

Arama Sonuçlarını Karşılaştır aracını kullanarak, sinirsel arama tarafından desteklenen sözcüksel arama ile anlamsal aramayı karşılaştırın

The Arama Sonuçlarını Karşılaştır aracı OpenSearch Dashboard'larda üretim iş yükleri için kullanılabilir. Şuraya gidebilirsiniz: Arama sonuçlarını karşılaştırın sayfasını açın ve daha önce oluşturulan model kimliğini kullanacak şekilde yapılandırılmış sözcüksel arama ile sinirsel arama arasındaki sorgu sonuçlarını karşılaştırın.

Temizlemek

Bu gönderideki talimatları izleyerek oluşturduğunuz kaynakları CloudFormation yığınını silerek silebilirsiniz. Bu, SageMaker'a dağıtılan modeli içeren Lambda kaynaklarını ve S3 klasörünü silecektir. Aşağıdaki adımları tamamlayın:

  1. AWS CloudFormation konsolunda yığın ayrıntıları sayfanıza gidin.
  2. Klinik Sil.

  1. Klinik Sil onaylamak.

AWS CloudFormation konsolunda yığın silme işleminin ilerlemesini izleyebilirsiniz.

CloudFormation yığınını silmenin, SageMaker etki alanında dağıtılan modeli ve oluşturulan AI/ML bağlayıcıyı silmediğini unutmayın. Bunun nedeni, bu modellerin ve bağlayıcının etki alanı içindeki birden çok dizinle ilişkilendirilebilmesidir. Bir modeli ve onun ilişkili bağlayıcısını özel olarak silmek için aşağıdaki ekran görüntülerinde gösterildiği gibi model API'lerini kullanın.

İlk olarak, undeploy OpenSearch Hizmeti etki alanı belleğindeki model:

POST /_plugins/_ml/models/<model_id>/_undeploy

Daha sonra modeli model dizininden silebilirsiniz:

DELETE /_plugins/_ml/models/<model_id>

Son olarak bağlayıcıyı bağlayıcı dizininden silin:

DELETE /_plugins/_ml/connectors/<connector_id>

Sonuç

Bu gönderide SageMaker'da bir modeli nasıl dağıtacağınızı, OpenSearch Service konsolunu kullanarak AI/ML bağlayıcısını nasıl oluşturacağınızı ve sinirsel arama dizinini nasıl oluşturacağınızı öğrendiniz. OpenSearch Hizmetinde AI/ML bağlayıcılarını yapılandırma yeteneği, harici modellere entegrasyonları yerel hale getirerek vektör hidrasyon sürecini basitleştirir. Nöral alım ardışık düzenini ve alım ve arama sırasında vektör yerleştirmeyi anında oluşturmak için model kimliğini kullanan nöral aramayı kullanarak dakikalar içinde bir nöral arama dizini oluşturabilirsiniz.

Bu AI/ML bağlayıcıları hakkında daha fazla bilgi edinmek için bkz. AWS hizmetleri için Amazon OpenSearch Service AI bağlayıcıları, Anlamsal arama için AWS CloudFormation şablon entegrasyonları, ve Üçüncü taraf makine öğrenimi platformları için bağlayıcılar oluşturma.


Yazarlar Hakkında

Aruna Govindaraju Amazon OpenSearch Uzman Çözüm Mimarıdır ve birçok ticari ve açık kaynaklı arama motoruyla çalışmıştır. Arama, alaka düzeyi ve kullanıcı deneyimi konusunda tutkulu. Son kullanıcı sinyallerini arama motoru davranışıyla ilişkilendirme konusundaki uzmanlığı, birçok müşterinin arama deneyimlerini geliştirmesine yardımcı oldu.

Dagney Braun AWS'de OpenSearch'e odaklanan Baş Ürün Yöneticisidir.

Zaman Damgası:

Den fazla AWS Büyük Veri