AWS Türkçe Blog
Startup’ınız için üretken yapay zeka uygulamaları oluşturun, bölüm 2
Orijinal makale : Link (Hrushikesh Gangur)
İki bölümden oluşan bu blog serisinde, yeni içerik üretebilen yapay zeka (artificial intelligence – AI) sistemlerinin nasıl oluşturulacağı ele alınmaktadır. İlk bölümde bir giriş sunulmakta, üretken AI uygulamaları oluşturmaya yönelik çeşitli yaklaşımlar açıklanmakta ve bunların temel bileşenleri gözden geçirilmektedir. İkinci bölüm, bu bileşenleri doğru AWS hizmetleriyle eşleştirerek, yeni başlayanların zaman ve para kaybı yaşamadan hızlı bir şekilde üretken AI ürünleri veya çözümleri geliştirmelerine ve kullanıma sunmalarına yardımcı olabilir.
Bu blog serisini devam ettirelim ve maliyet verimliliği ve performansı temel hedefler olarak tutarken ürününüzü mümkün olan en kısa sürede pazara sunmak için startup’ınızın yararlanabileceği Amazon Web Services (AWS) özelliklerini derinlemesine inceleyelim.
Üretken yapay zeka uygulamamı oluşturmak için hangi AWS servislerini kullanmalıyım?
Kullanılabilecek servisler, bu blog serisinin 1. bölümündeki üretken yapay zeka bileşenlerine ilişkin gösterimle daha iyi açıklanabilir. Aşağıdaki diyagram, Şekil 1, her bir bileşeni ilgili AWS hizmet(ler)iyle eşleştirmektedir. Bunların, girişimlerin faydalanabileceğini düşündüğüm bir dizi AWS hizmeti olduğunu unutmayın; bununla birlikte, kullanılabilecek başka AWS servisleri de vardır.
Detaylandırmak için, AWS servislerini üretken bir yapay zeka uygulamasının ortak bileşenleriyle eşleştirerek başlayacağım. Ardından, uygulamanızı hayata geçirmek için kullandığınız yaklaşımlara bağlı olarak Şekil 1’de kalan bileşenlerle eşleşen AWS servislerini açıklayacağım.
Ortak bileşenler
Üretken bir yapay zeka uygulamasının ortak bileşenleri; temel model (foundation model – FM), arayüz ve isteğe bağlı olarak makine öğrenimi (machine learning – ML) platformu ve hızlandırılmış bilgi işlemdir. Bu bileşenler AWS’in sunduğu yönetilen hizmetler kullanılarak karşılanabilir:
Amazon Bedrock (temel model ve arayüz bileşenleri)
Amazon Bedrock, önde gelen yapay zeka girişimlerinin (AI21 Jurassic, Anthropic Claude, Cohere Command and Embedding, Stability SDXL modelleri) ve Amazon’un (Titan Text ve Embeddings modelleri) temel modellerini API aracılığıyla kullanılabilir hale getiren tümüyle yönetilen bir hizmettir, böylece kullanım durumunuza en uygun modeli bulmak için çok çeşitli FM’ler arasından seçim yapabilirsiniz. Amazon Bedrock, üç özellik sağlamak için bir dizi temel modele API veya sunucusuz erişim sağlar: metin yerleştirme, komut istemi / yanıt ve hassas ayarlama (belirli modellerde).
Amazon Bedrock, kendi seçtikleri bir temel model etrafında katma değerli hizmetler – komut istemi mühendisliği, bilgi erişimiyle artırılmış üretim ve daha fazlası – oluşturan uygulama veya model tüketici startup’ları için çok uygundur. Fiyatlandırma modeli, tipik olarak işlenen milyonlarca token biriminde, kullanıma göre ödeme şeklindedir. Bu blogun yayın tarihi itibariyle, bu hizmet özel önizleme aşamasındadır. AWS Konsolu’nu kullanarak bekleme listesine katılabilirsiniz.
Amazon SageMaker JumpStart (temel model ve arayüz bileşenleri)
AWS, Amazon SageMaker Jumpstart için üretken yapay zeka özellikleri sunar: hem genel kullanıma açık hem de tescilli modelleri, hızlı başlangıç çözümlerini ve modelleri dağıtmak ve ince ayar yapmak için örnek not defterlerini içeren bir temel model merkezidir. Bu modelleri dağıttığınızda, doğrudan SageMaker SDK/API kullanarak erişebileceğiniz gerçek zamanlı bir analiz uç noktası oluşturur. Veya SageMaker’ın temel model uç noktasını AWS API Gateway ve bir AWS Lambda fonksiyonunda basit bir hesaplama mantığı ile ön uç olarak kullanabilirsiniz. Metin yerleştirme için bu modellerden bazılarından da yararlanabilirsiniz.
Hem analiz uç noktası hem de hassas düzenleme eğitim işleri, ML platformu olarak SageMaker’ı (bkz. Şekil 1’deki “ML Platformu”) kullanarak seçtiğiniz yönetilen ML sunucularında (bkz. Şekil 1’deki “Hızlandırılmış Hesaplama”) çalışır. SageMaker Jumpstart, altyapıları üzerinde daha fazla kontrol sahibi olmak isteyen ve orta düzeyde makine öğrenimi becerilerine ve altyapı bilgisine sahip olan uygulama veya model tüketici startup’ları için çok uygundur. Fiyatlandırma modeli, tipik olarak örnek-saat biriminde, kullanıma göre ödeme şeklindedir. Bu teklifte yer alan tüm modeller ve çözümler genel kullanıma açıktır.
Amazon SageMaker eğitim ve sonuç çıkarma (ML platformu)
Startup’lar, dağıtık eğitim, dağıtık çıkarım, çoklu model uç noktaları ve daha fazlası gibi gelişmiş yetenekler için Amazon SageMaker’ın eğitim ve sonuç çıkarma özelliklerinden yararlanabilir. SageMaker JumpStart veya Hugging Face ya da AWS Marketplace gibi seçtiğiniz model merkezinden temel modelleri getirebilir veya sıfırdan kendi temel modelinizi oluşturabilirsiniz.
SageMaker, tüm ölçekte üretken yapay zeka uygulama geliştiricileri (model sağlayıcılardan model tüketicilerine kadar) veya gelişmiş makine öğrenimi ve veri ön işleme becerilerine sahip ekiplere sahip model sağlayıcılar için çok uygundur. SageMaker ayrıca, tipik olarak örnek-saat biriminde, kullanıma göre ödeme fiyatlandırma modeli sunar.
AWS Trainium ve AWS Inferentia (hızlandırılmış bilgi işlem)
Nisan 2023’te AWS, AWS Trainium tarafından desteklenen Amazon EC2 Trn1n Sunucularının ve AWS Inferentia2 tarafından desteklenen Amazon EC2 Inf2 Sunucularının genel kullanıma sunulduğunu duyurdu. ML platformu olarak SageMaker’ı kullanarak AWS’in amaca yönelik hızlandırıcılarından (AWS Trainium ve AWS Inferentia) yararlanabilirsiniz.
Sonuç çıkarımı iş yükleri için yapılan kıyaslama testleri, Inf2 sunucularının sonuç çıkarımı için optimize edilmiş benzer bir Amazon EC2 sunucusuna kıyasla %52 daha düşük maliyetle çalıştığını bildirmektedir. AWS’in yaklaşık her ay hem eğitim hem de çıkarım için destek matrisine yeni model mimarisi eklediği AWS Neuron SDK‘nın hızlı geliştirme döngülerini takip etmenizi öneririm.
Üretken yapay zeka uygulamaları oluşturmak için yaklaşımlar
Şimdi Şekil 1’deki bileşenlerin her birini uygulamaya yönelik bir bakış açısıyla ele alalım.
Zero-shot veya few-shot öğrenme çıkarımı yaklaşımı
Bölüm 1‘de tartıştığımız gibi, zero-shot veya few-shot öğrenme, üretken bir yapay zeka uygulaması oluşturmak için en basit yaklaşımdır. Bu yaklaşıma dayalı uygulamalar oluşturmak için ihtiyacınız olan tek şey dört ortak bileşene (temel model, arayüz, makine öğrenimi platformu ve işleme) yönelik hizmetler, komut istemi oluşturmak için özel kodunuz ve bir ön uç web/mobil uygulamasıdır.
Amazon Bedrock veya Amazon SageMaker JumpStart aracılığıyla bir temel model seçme hakkında daha fazla bilgi edinmek için buradaki model seçim yönergelerine bakın.
Özelleştirilmiş kod, istem şablonları ve oluşturma için LangChain gibi geliştirici araçlarından yararlanabilir. LangChain topluluğu şimdiden Amazon Bedrock, Amazon API Gateway ve SageMaker uç noktaları için destek eklemiştir. Hatırlatmak gerekirse, geliştiricilerin verimliliğini artırmaya yardımcı olmak için bir kodlama yardımcı aracı olan AWS Amazon CodeWhisperer‘dan da yararlanmak isteyebilirsiniz.
Bir ön uç web uygulaması veya mobil uygulama geliştiren girişimler, AWS Amplify’ı kullanarak kolayca başlayıp ölçeklendirebilir ve bu web uygulamalarını AWS Amplify Hosting kullanarak hızlı, güvenli ve güvenilir bir şekilde barındırabilir.
SageMaker Jumpstart ile oluşturulan bu sıfırdan öğrenme örneğine göz atın.
Bilgi edinme yaklaşımı
Bölüm 1‘de tartışıldığı gibi, startup’ınızın temel modellerini özelleştirebilmesinin yollarından biri, en yaygın olarak erişimle artırılmış üretim (retrieval-augmented generation – RAG) olarak bilinen bir bilgi erişim sistemiyle zenginleştirmektir. Bu yaklaşım, zero-shot ve few-shot öğrenmede bahsedilen tüm bileşenlerin yanı sıra metin yerleştirme uç noktası ve vektör veritabanını da içerir.
Metin yerleştirmeleri uç noktası için seçenekler, seçtiğiniz AWS yönetilen hizmetine bağlı olarak değişir:
- Amazon Bedrock, metin girdilerini (kelimeler, ifadeler veya muhtemel büyük metin birimleri) metnin anlamsal anlamını içeren sayısal temsillere (yerleştirmeler olarak bilinir) çeviren bir yerleştirmeler büyük dil modeli (large language model – LLM) sunar.
- SageMaker JumpStart kullanıyorsanız, GPT-J 6B gibi bir yerleştirme modelini veya model hub’ından seçtiğiniz herhangi bir LLM’yi sunabilirsiniz. SageMaker uç noktası, metin girdilerini yerleştirmelere çevirmek için SageMaker SDK veya Boto3 tarafından çağrılabilir.
Yerleştirmeler daha sonra PostgreSQL İçin Amazon RDS‘in pgvector uzantısı ya da Amazon OpenSearch Hizmeti‘nin k-NN eklentisi kullanılarak anlamsal aramalar yapmak için bir vektör veri deposunda saklanabilir. Startup’lar, genellikle hangi hizmeti daha rahat kullandıklarına bağlı olarak birini ya da diğerini tercih etmektedir. Bazı durumlarda, startup’lar AWS iş ortaklarından veya açık kaynaktan yapay zeka yerel vektör veritabanları kullanmaktadır. Vektör veri deposu seçimi konusunda rehberlik için Üretken Yapay Zeka Uygulamalarında Vektör Veri Depolarının Rolü başlıklı makaleye bakmanızı öneririm.
Bu yaklaşımda da geliştirici araçları çok önemli bir rol oynamaktadır. Kolay bir tak ve çalıştır altyapısı, hızlı şablonlar ve entegrasyonlar için geniş destek sağlarlar.
İleriye dönük olarak, geliştiriciler için şirket sistemlerinize yapılan API çağrılarını yönetebilen yeni bir özellik olan da yararlanabilirsiniz.
Amazon SageMaker’da temel modellerle erişimle artırılmış üretimin kullanımına ilişkin bu örneğe göz atın
Hassas ayar veya ileri ön eğitim yaklaşımı
Şimdi, üretken bir yapay zeka uygulamasını hayata geçirmeye yönelik son yaklaşım için gereken bileşenleri AWS servisleriyle eşleştirelim: bir temel modele hassas ayar yapma veya ileri ön eğitim verme. Bu yaklaşım, zero-shot veya few-shot öğrenmede tartışılan tüm bileşenlerin yanı sıra veri ön işleme ve model eğitimini de içerir.
Veri hazırlama (bazen ön işleme veya yorumlama olarak da adlandırılır), daha küçük ve etiketli veri setlerine ihtiyaç duyduğunuz hassas ayarlama sırasında özellikle önemlidir. Startup’lar Amazon SageMaker Data Wrangler‘ı kullanmaya kolayca başlayabilir. Bu hizmet, makine öğrenimi için tablo ve görüntü verilerini bir araya getirmek ve hazırlamak için gereken süreyi haftalardan dakikalara indirmeye yardımcı olur. Ön işleme iş akışını eğitim veya hassas ayar işlerine zincirlemek için bu hizmetin çıkarım işlem hattı özelliğinden de yararlanabilirsiniz.
Girişiminizin Amazon S3‘teki veri gölünüzde yapılandırılmamış ve etiketlenmemiş veri kümelerinden oluşan büyük bir derlemi önceden işlemesi gerekiyorsa birkaç seçeneğiniz var:
- Python ve popüler Python kütüphaneleri kullanıyorsanız, Ray için AWS Glue‘dan yararlanmanız faydalı olacaktır. AWS Glue, Python iş yüklerini ölçeklendirmek için kullanılan açık kaynaklı bir birleşik bilgi işlem çerçevesi olan Ray’i kullanır
- Alternatif olarak Amazon EMR; Apache Spark, Apache Hive, Apache HBase, Apache Flink, Apache Hudi ve Presto gibi açık kaynak araçları kullanarak büyük miktarda verinin işlenmesine yardımcı olabilir.
Bu yaklaşımın model eğitimi bileşeni için Amazon Bedrock, FM’leri kendi verilerinizle özel olarak özelleştirmenize olanak tanır. Herhangi bir altyapıyı yönetmek zorunda kalmadan FM’lerinizi büyük ölçekte yönetir (bu, hassas ayar yapmanın API yoludur). Alternatif olarak, SageMaker Jumpstart yaklaşımı, kendi verilerinizi kullanarak talimat veya alan uyarlaması için özel olarak hassas ayar yapmak için (belirli modellerde) hızlı bir başlangıç çözümü sunar. SageMaker JumpStart ile birlikte gelen eğitim komut dosyasını ihtiyaçlarınıza göre değiştirebilir veya açık kaynaklı modeller için kendi eğitim komut dosyalarınızı oluşturabilir ve bunları SageMaker’ın eğitim işi olarak gönderebilirsiniz. Modeli daha önceden eğitmeniz gerekiyorsa (genellikle açık kaynaklı modeller için), bir ML sunucusunun tüm GPU’larını hızlandırmak ve verimli bir şekilde kullanmak için SageMaker’ın dağıtık eğitim kitaplıklarından yararlanabilirsiniz.
Buna ek olarak, Amazon SageMaker Ground Truth Plus kullanarak İnsan Geri Bildiriminden Güçlendirilmiş Öğrenme tekniği ile tam olarak yönetilen veri oluşturma, veri açıklama hizmetleri ve model geliştirmeyi de düşünebilirsiniz.
Örnek bir mimari
Peki, üretken bir yapay zeka kullanım senaryosu gerçekleştirilirken tüm bu bileşenler nasıl görünür? Her startup’ın farklı bir kullanım alanı ve gerçek dünya sorunlarını çözmeye yönelik özgün yaklaşımları olsa da, üretken yapay zeka uygulamaları oluştururken gördüğüm ortak bir tema ya da başlangıç noktası, erişimle artırılmış üretim yaklaşımıdır. Yukarıda bahsedilen tüm AWS hizmetlerini ekledikten sonra mimari şu şekilde görünür:
Veri aktarma işlem hattı – Alana özel veya özelleştirilmiş veriler metin verisi olarak önceden işlenir. Yerleştirme süreci boyunca oluşturulduğu veya güncellendiği için ya toplu olarak işlenir (Amazon S3’te saklanır) ya da akış halinde aktarılır (Amazon Kinesis kullanılarak) ve yoğun vektör gösteriminde saklanır.
Veri alma işlem hattı – Bir kullanıcı, vektör gösteriminde saklanan özel verileri sorguladığında, k en yakın komşu (kNN) veya anlamsal arama kullanarak ilgili belgeleri alır. Daha sonra açık metne geri dönüştürülür. Çıktı, sorgu için zengin ve yoğun bir bağlam görevi görür.
Özetleme oluşturma işlem hattı – Bağlam, alınan belgeden anlam veya özetleme elde etmek için özgün kullanıcı sorgusu ile komut istemine eklenir.
Tüm bu katmanlar LangChain gibi geliştirici araçları kullanılarak birkaç satır kodla oluşturulabilir.
Sonuç
Bu, AWS hizmetlerini kullanarak uçtan uca üretken bir yapay zeka uygulaması oluşturmanın bir yoludur. Seçeceğiniz AWS hizmetleri, kullanım durumunuza veya özelleştirme yaklaşımınıza göre değişiklik gösterecektir. Bu bağlantıyı yer imlerine ekleyerek AWS’nin üretken yapay zeka alanındaki en son sürümlerini, çözümlerini ve bloglarını takip etmeye devam edin.
Şimdi AWS’de üretken yapay zeka uygulamaları oluşturalım! AWS’de çalışmaya başlamak için gereken kaynakları sunan, özellikle startup’lar ve erken aşama girişimciler için tasarlanmış ücretsiz bir program olan AWS Activate ile üretken yapay zeka yolculuğunuza başlayın.