Selam millet! Ben Nataraj ve tıpkı sizin gibi ben de yapay zekanın son zamanlardaki ilerlemelerine hayran kaldım. Olan tüm gelişmelere ayak uydurmam gerektiğini fark ederek kişisel bir öğrenme yolculuğuna çıkmaya karar verdim ve böylece 100 günlük yapay zeka doğdu! Bu seriyle yüksek lisans (LLM) hakkında bilgi edineceğim ve fikirleri, deneyleri, görüşleri, trendleri ve öğrendiklerimi blog yazılarım aracılığıyla paylaşacağım. Yolculuğumuzu HackerNoon'dan buradan veya kişisel web sitemden takip edebilirsiniz. Bugünkü makalemizde GPT-4'ün yardımıyla Semantik Çekirdek oluşturmaya bakacağız.
Semantic Kernel, geliştiricilerin sohbet robotları, RAG'ler, Yardımcı Pilotlar ve aracılar dahil olmak üzere yapay zeka uygulamaları oluşturmasına yardımcı olan Microsoft'un açık kaynaklı bir SDK'sıdır. Langchain'in yaptığına benzer. Muhtemelen buna Microsoft'un langchain'e cevabı diyebiliriz.
Mevcut yazılımın genişletilebilir olmasını ve yapay zeka özelliklerinin kullanıma sunulmasını kolaylaştırmak için tasarlanmıştır. Ayrıca uygulamaların yapay zeka modellerini zaman içinde en yeni ve en iyi sürümlere güncellemek isteyeceği öngörülerek de tasarlanmıştır.
Her ne kadar alan çok hızlı gelişiyor olsa da Semantic Kernel'i keşfederken aklımızda tutmamız gereken bazı tanımlar var.
Anlamsal Çekirdeğin nasıl çalıştığını açıklamak için, bir metin parçasını alıp onu 140 karakterlik tweet'e dönüştürme örneğini ele alalım. Ancak bunu Semantic Kernel kullanarak yapacağız. Benzer bir özetlemeyi önceki yazılarımızda yapmıştık .
Semantic Kernel'in python kütüphanesini kullanacağım ama Semantic Kernel Microsoft tarafından yaratıldığı için bunu C# ile de yapabilirsiniz. Bunun nasıl yapılacağına ilişkin Microsoft'un genel belgelerine bakın.
Aşağıda anlamsal çekirdeği başlatıyoruz ve metin tamamlama için kullanılacak LLM olarak OpenAI'nin gpt-4 modelini kullanmasını söyleyerek metin tamamlama hizmetini kuruyoruz.
import semantic_kernel as sk from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion, OpenAIChatCompletion import os from IPython.display import display, Markdown import asyncio from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) # read local .env file api_key = os.environ['OPENAI_API_KEY'] kernel = sk.Kernel() kernel.add_text_completion_service("openai", OpenAIChatCompletion("gpt-4",api_key)) print("Kernel Initiated")
Anlamsal Çekirdek dünyasında, yerel işlevden farklı bir Anlamsal işlev kavramına sahibiz. Yerel işlev, herhangi bir programlama dilinde yazdığımız normal işlevlerdir. Anlamsal işlevler, Çekirdek tarafından yönetilebilen tekrarlanabilir LLM İstemlerinin kapsüllenmesidir. Bir sonraki adımda anlamsal işlevin ne olduğu hakkında daha iyi bir fikir edineceksiniz.
Burada, bağlantıyı 140 karakterden daha kısa bir sürede özetleyen bir sk_prompt istemi oluşturuyoruz (bu alıştırmadaki amacımız budur). Daha sonra, çekirdek ve depo ile anlamsal bir işlev oluşturmak için istemi bir girdi olarak iletiriz; bu da bize, yarattığımız anlamsal işlevi temsil eden ve çekirdek aracılığıyla tekrar tekrar erişilebilen özet_işlevi nesnesini verir. Anlamsal bir işlev oluşturduğumuzda, bir müşteri istemi kullandığımızı ve ayrıca max_tokens, sıcaklık vb. gibi LLM yapılandırma bilgilerini verdiğimizi unutmayın. Şimdi yerel ve anlamsal işlevlerin önceki görüntüsüne geri dönün ve bu daha anlamlı olacaktır.
sk_prompt = """ {{$input}} Summarize the content above in less than 140 characters. """ summary_function = kernel.create_semantic_function(prompt_template = sk_prompt, description="Summarizes the input to length of an old tweet.", max_tokens=200, temperature=0.1, top_p=0.5) print("A semantic function for summarization has been registered.")
Şimdi özetlemek istediğimiz metni sk_input değişkenini kullanarak oluşturup kernal üzerinden sematic fonksiyonunu çağırıp sonucu görüntülüyoruz.
sk_input = """ Let me illustrate an example. Many weekends, I drive a few minutes from my house to a local pizza store to buy a slice of Hawaiian pizza from the gentleman that owns this pizza store. And his pizza is great, but he always has a lot of cold pizzas sitting around, and every weekend some different flavor of pizza is out of stock. But when I watch him operate his store, I get excited, because by selling pizza, he is generating data. And this is data that he can take advantage of if he had access to AI. AI systems are good at spotting patterns when given access to the right data, and perhaps an AI system could spot if Mediterranean pizzas sell really well on a Friday night, maybe it could suggest to him to make more of it on a Friday afternoon. Now you might say to me, "Hey, Andrew, this is a small pizza store. What's the big deal?" And I say, to the gentleman that owns this pizza store, something that could help him improve his revenues by a few thousand dollars a year, that will be a huge deal to him. """ # using async to run the semantic function async def run_summary_async(): summary_result = await kernel.run_async(summary_function, input_str=sk_input) display(summary_result) asyncio.run(run_summary_async())
İşte elde ettiğim çıktı:
Yapay zeka, küçük bir pizza mağazası sahibinin stokunu optimize etmesine ve potansiyel olarak yıllık gelirini artırmasına yardımcı olmak için satış verilerini analiz edebilir.
Semantic Kernel, Anlamsal İşlevler ve Yerel işlevlerin birlikte kullanılması gibi daha fazla yeteneğe sahiptir ve güçlü yapay zeka uygulamaları oluşturmak için tasarlanmıştır. Gelecek yazılarımda onlar hakkında daha fazla yazacağım.
Yapay Zekanın 100 Günü'nün 8. Günü bu kadar.
Büyük teknolojide olup biten her şeyin ardındaki ikinci dereceden içgörülerden bahsettiğim Ortalamanın Üstünde adlı bir haber bülteni yazıyorum. Teknolojiyle ilgiliyseniz ve ortalama olmak istemiyorsanız abone olun .
Yapay zekanın 100 günüyle ilgili en son güncellemeler için beni Twitter , LinkedIn veya ** HackerNoon ** üzerinden takip edin. Teknolojiyle ilgileniyorsanız, buradaki teknoloji profesyonellerinden oluşan topluluğuma katılmak ilginizi çekebilir.
Önceki 7. Gün: Langchain Kullanarak Verileriniz için Chat-GPT Nasıl Oluşturulur?