Ana içeriğe geç

Azure OpenAI: Adım Adım Başlangıç Kılavuzu

Microsoft Azure platformunun sunduğu OpenAI hizmetlerine giriş. Azure’da OpenAI’yi yapılandırmayı, basit görevler gerçekleştirmeyi ve hizmeti izlemeyi öğrenin.
· 15 dk. oku

Yapay Zeka ile Keşfedin

Azure OpenAI, Azure bulut hizmetleri platformunu kullanarak GPT-4 gibi OpenAI modellerine erişim sağlar. 

Bu eğitimde Azure OpenAI’yi tanıtıyor ve nasıl başlayacağınızı gösteriyorum. Bir hesap oluşturmayı, bir yapay zeka modelini devreye almayı ve API kullanarak çeşitli basit görevleri yapmayı ele alacağız.

Azure OpenAI nedir?

Azure, SQL veritabanlarından Azure Synapse gibi veri ambarı ve analitik çözümlerine kadar tam kapsamlı web hizmetleri sunar. Bu hizmetleri kullanan pek çok kullanıcı, OpenAI’nin modellerini iş akışlarına entegre etme ihtiyacı duyar. 

OpenAI modellerine erişmenin geleneksel yolu OpenAI API’si üzerinden olur. Azure OpenAI ise Microsoft’un, OpenAI’nin modellerini Azure platformu aracılığıyla sunduğu hizmetidir. Azure kullanıcılarının OpenAI’nin doğal dil işleme, kod üretimi, görsel üretimi ve daha birçok hizmetini Azure tabanlı altyapılarına entegre etmelerine olanak tanır.

Böylece geliştiricilerin yeni bir web hizmetleri platformu öğrenip iş akışlarına entegre etmesine gerek kalmaz. Azure platformuna dayandığı için ölçeklemek ve yoğun iş yüklerini karşılamak kolaydır. Azure platformunu kullanan geliştiriciler ve kuruluşlar, yapay zeka tabanlı hizmetleri sağlamak, yönetmek, izlemek ve bütçelemek için aynı tanıdık arayüzü kullanabilir. Uyumluluk ve ödemeye ilişkin iş akışlarını yönetmeyi de kolaylaştırır.

Azure OpenAI’yi Kurma

Bu bölümde Azure OpenAI’yi nasıl kuracağınızı gösteriyorum. Azure kullanımı konusunda bir miktar deneyiminiz olduğunu varsayıyorum. 

Kullanıcı arayüzlerinin sık değiştiğini unutmayın. Bu nedenle, talimatlar ve ekran görüntülerindeki çeşitli bölüm yerleşimleri ve metinler zamanla veya bölgeden bölgeye değişebilir.

Adım 1: Bir Azure hesabı oluşturun

Şuraya gidin: Azure OpenAI ana sayfası ve sağ üstten Oturum açın seçeneğini belirleyin. Microsoft hesabınızla giriş yapın. Microsoft hesabınız yoksa, Oturum açma sayfasında yeni bir hesap oluşturma seçeneğini belirleyip bir Microsoft hesabı oluşturun. 

Ardından, aşağıdaki adımları izleyerek bir Azure hesabı oluşturun:

  1. Microsoft hesabınızı kullanarak Azure Portalına oturum açın. Şu seçeneği belirleyin: Ücretsiz Azure denemesiyle başlayın. 

Azure Portal

Microsoft Azure Portalı.

  1. Sonraki sayfada, 200 $ ücretsiz bakiyeli bir ücretsiz Azure hesabı oluşturma seçeneğini belirleyin.

Choose an Azure account

Bir Azure hesap türü seçin.

  1. Formdaki kişisel bilgilerinizi doldurun.

Create free Azure account

Ücretsiz bir Azure hesabı oluşturun.

  1. Kimliğinizi kredi veya banka kartıyla doğrulayın. Hesabınızdan geçici bir provizyon (genellikle birkaç sent veya muadili) çekilebileceğini unutmayın. 

Verify your Azure account

Azure hesabınızı doğrulayın (ekran görüntüsü: yazar) 

  1. Ödeme bilginizi doğruladıktan sonra Azure Portalı’na giti seçin. Hızlı Başlangıç Merkezi’ne yönlendirilirsiniz.
  2. Ücretsiz 200 $ bakiyenin Azure OpenAI hizmetleri için kullanılamadığını unutmayın. Azure OpenAI modellere yalnızca ücretli bir hesapla erişilebilir. Hesabınızı kullandıkça öde aboneliğine yükseltmek için Azure portalına geri dönün ve üst çubuktan Yükselt seçeneğini belirleyin. 

Upgrade your Azure account

Azure hesabınızı yükseltin.

  1. Yükseltme sayfasındaki ayrıntıları doldurun ve Kullandıkça öde’ye yükselt seçeneğini belirleyin.

Ücretli hesaba yükselttikten sonra OpenAI modellere erişebilirsiniz. 

Adım 2: Azure portalında Azure OpenAI’ye erişin

  1. Azure portalına geri dönün; burada yapay zeka hizmetleri, sanal makineler, depolama hesapları ve daha fazlası gibi çeşitli hizmetler gösterilir. 

Azure portal

Azure portalında mevcut hizmetler.

  1. Azure AI services seçeneğini belirleyin ve yapay zeka hizmetlerinin ana sayfasına gidin. Azure; yüz tanıma, anomali tespiti, konuşma, bilgisayarlı görü, OpenAI ve daha fazlası gibi çeşitli yapay zekâ tabanlı hizmetler sunar. 

Azure AI services

Azure AI hizmetleri.

  1. Azure OpenAI account sekmesinde View seçeneğini belirleyin. 
  2. Bu adım sizi hesabınızdaki OpenAI örneklerinin listesini gösteren Azure OpenAI sayfasına götürür. Yeni bir örnek oluşturmak için Create Azure OpenAI öğesini seçin. Önceki sayfada da Create seçeneğini belirleyebilirsiniz. 
  3. Aşağıdaki ayrıntıları girin:
    • Subscription altında ücretli aboneliğinizin adını seçin.
    • Resource group altında Create new seçeneğini belirleyin:
      • Yeni kaynak grubu için bir ad girin. 

Create new Azure OpenAI instance

Yeni bir Azure OpenAI örneği oluşturun.

      • Region altında size en yakın bölgeyi seçin.
      • Name alanına benzersiz bir ad girin. 
      • Pricing tier altında Standard S0 seçin.
      • Devam etmek için Next seçin.
  1. Network bölümünde "All networks, including the Internet, can access this resource." seçeneğini işaretleyin. Sonra sonraki adıma geçin.
  2. Tags bölümünde bu örneği kategorize etmek için ad-değer çiftleri girin. Bu, birleştirilmiş faturalandırmada yardımcı olur. Bu adım isteğe bağlıdır. 
  3. Sonraki bölümde Review + submit seçeneğini belirleyin, değerleri tekrar kontrol edin ve Create seçin. Bu işlem yeni bir OpenAI örneği devreye alır. 
  4. Kısa bir süre sonra "Your deployment is complete." mesajını görürsünüz. Bu sayfada Kaynağa git seçeneğini belirleyin. 
  5. Kaynak sayfasında, Resources sekmesi altından kaynağın adını seçin. 

Adım 3: API erişimini ayarlayın

Kaynak sayfası örneğin ayrıntılarını gösterir. 

Develop sekmesi bu örnek için API anahtarlarını ve API uç nokta URL’lerini gösterir. Anahtarlar sizin için otomatik olarak oluşturulmuştur. 

  • Anahtarları ve uç noktayı bir metin dosyasına kopyalayın.

İki API anahtarı elde edersiniz. Bu sayede ilk anahtar ele geçirilirse ikinci anahtarı kullanabilirsiniz. Ayrıca ilkini yeniden üretirken ikinci anahtarı kullanabilirsiniz. Böylece kesinti yaşamadan periyodik anahtar döndürme yapabilirsiniz. 

Azure OpenAI instance API keys

Azure OpenAI örneği API anahtarları

  • Monitor sekmesinde bu örneğin kullanım metriklerini kontrol edin. 
  • Get Started sekmesinde, yapay zeka oyun alanını yeni bir sayfada açmak için Explore Azure AI Foundry portal seçeneğini belirleyin. 

Azure OpenAI chat playground

Azure OpenAI sohbet oyun alanı.

  • Sol menüden Chat playground seçeneğini belirleyin. 
  • Deployment altında Create new dep seçeneğini belirleyin.
    • Yeni dağıtım açılır penceresinde From base models seçeneğini belirleyin
  • Bu, model seçmenizi sağlayan bir açılır pencere gösterir. 
    • Arama çubuğuna “gpt-3” yazın. 
    • Listeden gpt-35-turboyu seçin. Bu, sohbet tamamlamaları için optimize edilmiş, ekonomik bir modeldir. Çalışan bir yapılandırma elde ettikten sonra gerekirse daha gelişmiş (ve daha pahalı) bir modele geçin.
    • Confirm seçin. 
  • Deploy model açılır penceresinde Customize seçeneğini belirleyin.
    • Tokens per Minute Rate Limit değerini manuel testler için düşük bir değere indirin (örneğin, dakika başına 12 istek). Modeli üretime alırken bunu artırın. 
    • dynamic quota özelliğini devre dışı bırakın. Dağıtım yoğun trafik alana kadar buna ihtiyacınız olmayacak. 
    • Deploy seçin.

Deploy new model in the chat playground

Sohbet oyun alanında yeni bir model dağıtın.

Hepsi bu! Bir sonraki bölümde OpenAI’nın gpt-35-turbo modelinin bu dağıtımına nasıl erişileceğini göreceğiz. 

API anahtarlarını yeniden oluşturma

API erişim anahtarlarını periyodik olarak yeniden oluşturmanız önerilir. Bu, eski anahtarlar yanlışlıkla sızdırılırsa hesabın ele geçirilmesini önlemeye yardımcı olur. Aşağıdaki adımlar, anahtarların nasıl yeniden oluşturulacağını açıklar:

  • Sol menüden Kaynak Yönetimi altında Keys and Endpoint’i seçin.
  • Her bir anahtarı ayrı ayrı yeniden oluşturun. 

Azure OpenAI instance API keys

Azure OpenAI örneği API anahtarları.

Azure OpenAI’yi Uygulamalarda Kullanma

Azure OpenAI’yi kurup bir model dağıttıktan sonra ona programatik olarak nasıl erişileceğine bakalım. 

Adım 1: Geliştirme ortamınızı ayarlayın

Azure OpenAI’ye bağlanmak için Python kullanımını göstereceğim. Gerekli kütüphaneleri kurun:

$ pip install openai

Bir notebook kullanıyorsanız aşağıdaki komutu çalıştırın. Not: DataLab notebook kullanıyorum.

!pip install openai

Gerekli paketleri Python kabuğu içinde veya notebook’ta içe aktarın:

import os
from openai import AzureOpenAI

AzureOpenAI modülü Azure içindeki OpenAI hizmetlerine erişim sağlar. Bu, bağımsız OpenAI API’sine erişmek için kullanılan OpenAI modülünden farklıdır. 

Azure OpenAI’yi kullanmadan önce, API anahtarını ve uç noktayı ortamınızda ayarlayın. Önceki bölüm bu değerlerin nasıl bulunacağını gösterdi. İlke olarak bunları programlama ortamı içinde de ayarlayabilirsiniz; ancak bunu asla yapmamanızı tavsiye ederim. API anahtarlarını asla programda ifşa etmeyin. 

API anahtarlarını terminal üzerinden ayarlama

Python’ı yerel olarak çalıştırmak için kabuk yapılandırma dosyasında ortam değişkenlerini ayarlayın. Bash kabuğu için nasıl kurulacağını göstereceğim. 

  • .bashrc dosyasını bir metin düzenleyicide düzenleyin. 
  • Dosyanın sonuna şu iki satırı ekleyin:
    • export AZURE_OPENAI_API_KEY=MY_API_KEY'
    • export AZURE_OPENAI_ENDPOINT=MY_ENDPOINT'
  • Dosyayı kaydedip kapatın.
  • Terminalde source ~/.bashrc komutunu kullanarak değişiklikleri yeniden yükleyin. 
  • Diğer kabuklar (sh veya zsh gibi) için süreç biraz farklı olabilir. 
  • Aynı terminal oturumunda Python kabuğunu açın (veya yeniden açın). 

Python terminalinde API anahtarı ve uç nokta değerlerini içe aktarın:

azure_openai_api_key = os.getenv["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.getenv["AZURE_OPENAI_ENDPOINT"]

API anahtarlarını çevrimiçi notebook’larda (DataLab) ayarlama

DataLab, bir notebook için ortam değişkenlerini doğrudan ayarlamanıza olanak tanır.

  • Üst menü çubuğundan Environment’ı, açılır menüden Environment variables’ı seçin. 
  • Ortam değişkenleri ekleme seçeneğini belirleyin. 
  • AZURE_OPENAI_API_KEY ve AZURE_OPENAI_ENDPOINT olmak üzere iki değişken ve ilgili değerlerini ekleyin. 
  • Bu ortam değerleri kümesine bir ad verin ve değişiklikleri kaydedin. 

Notebook’ta bu değerleri aşağıda gösterildiği gibi alın:

azure_openai_api_key = os.environ["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"]

Adım 2: Azure OpenAI’ye ilk API çağrınızı yapın

Artık AzureOpenAI() fonksiyonunu kullanarak istekleri kabul edecek bir client nesnesi oluşturabilirsiniz. Bu fonksiyon şu parametreleri kullanır:

  • api_version: Azure OpenAI API’sinin sürümü. En son sürümü Azure belgelerinden kontrol edin. 
  • api_key: Azure OpenAI API anahtarı. Bunu daha önce ayarladığınız ortam değişkenlerinden alın. Burada elle ayarlamayın. 
  • azure_endpoint: Azure OpenAI API uç noktasının URL’si (bu değeri ortamdan alın). 
client = AzureOpenAI(
    api_version="2024-06-01",
    api_key=azure_openai_api_key,
    azure_endpoint=azure_openai_endpoint
)

Bu client nesnesini, .chat.completions.create() fonksiyonu ile sohbet tamamlaması gibi görevler için kullanın. Bu fonksiyon şu parametreleri kabul eder:

  • model: Model adı. OpenAI API’sinin eski sürümlerinde bu, engine parametresiydi. model parametresinin, (Azure AI Foundry portalında) dağıtım sırasında belirtilen modelle eşleşmesi gerektiğini unutmayın. Dağıtılan modelden farklı bir modeli kullanmaya çalışırsanız, aşağıda gösterildiği gibi bir hata fırlatır: 
NotFoundError: Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}
  • messages: Bu parametre, kullanıcı ile model arasındaki konuşmayı belirtir. Bir dizi ileti nesnesinden oluşur. Her ileti nesnesi, role (system, user veya assistant) ve content(ileti metni) anahtar-değer çiftinden oluşur. Bu ileti nesneleri etkileşime bağlam sağlar ve modelin yanıtlarını yönlendirir. 

Aşağıda, farklı role değerleri için temel (role, content) anahtar-değer örnekleri veriyorum: 

  • user: Son kullanıcının girdiği istem. 

Örnek: {“role”: “user”, “content”: “rasyonel ve irrasyonel sayılar arasındaki farkı açıklayın”}

  • system: OpenAI’nin etkileşimde oynaması beklenen rolün tanımı. 

Örnek: {“role”: “system”, “content”: “ilkokul matematik öğrencilerine rehberlik eden yardımcı bir öğretmensiniz”}

  • assistant: OpenAI’den beklenen yanıt. 

Örnek: {“role”: “assistant”, “content”: “rasyonel ve irrasyonel sayılar arasındaki fark … örnek bir açıklama …”}

assistant rolü yalnızca modele ince ayar yapılırken eğitim verisi sağlandığında gereklidir. client ile sohbet tamamlaması gibi görevlerde yalnızca user ve system rolleri yeterlidir. Birçok basit görev için sadece user rolü de yeterli olabilir. 

  • max_tokens: Bu parametre, API çağrısının işlenmesinde (girdi ve çıktı birlikte) kullanılabilecek azami belirteç sayısını belirler. Kullandığınız belirteçler üzerinden doğrudan ücretlendirilirsiniz. Varsayılan değer 16’dır. Basit kullanım senaryoları için bu değer yeterlidir; bu nedenle bu parametre atlanabilir. 
simple_completion = client.chat.completions.create(
    model="gpt-35-turbo",  
    messages=[
        {
            "role": "user",
            "content": "Explain the difference between OpenAI and Azure OpenAI in 20 words",
        },
    ],
)

Sohbet tamamlama görevinin çıktısını yazdırın:

print(simple_completion.to_json())

Çıktı, çeşitli anahtar-değer çiftleri içeren bir JSON nesnesidir. Aşağıdaki örnekte gösterildiği gibi modelin çıktısını içerir. assistantın model için varsayılan rol olduğunu unutmayın. 

"message": {
   "content": "OpenAI is a research organization focused on advancing AI, while Azure OpenAI is a collaboration between Microsoft and OpenAI.",
   "role": "assistant"
},

Adım 3: Farklı görevler için OpenAI modellerini kullanma

Azure OpenAI ile herhangi bir modele erişmek için önce modeli dağıtmanız gerekir. Önceki bölümde gpt-35-turbo modelini dağıttınız. Farklı bir model kullanmak için:

  • Azure AI Foundryye geri dönün ve önceki bölümde açıklandığı gibi farklı bir model dağıtın. GPT-3.5, GPT-4o, o1 ve o1-mini, o3 ve o3-mini gibi çeşitli modeller arasından seçim yapın. 
  • Yukarıdaki istemleri (chat.completions.create() fonksiyonunda) yeni modelin adını kullanacak şekilde yeniden yazın. 

OpenAI’nın eski sürümlerinde farklı görevler için farklı modeller kullanmak yaygındı. Kod üretimi, NLP ve daha fazlası için özel modeller vardı. Modern modeller (GPT-3.5 ve GPT-4 gibi) tüm metin tabanlı üretken görevleri yerine getirebilir. Bu nedenle, birçok eski görev-özel model (örneğin, kod üretimi için davinci modelleri) kullanım dışı bırakılmıştır. 

Şimdi API’yi soru yanıtlama ve metin özetleme gibi çeşitli basit görevler için nasıl kullanacağımızı inceleyelim. Aşağıdaki örnek görevlerde aynı modeli—GPT-3.5’i kullanıyoruz. İsterseniz GPT-4 modellerinden birini de seçebilirsiniz. 

İkisi de metin tabanlı görev olduğundan, önce üzerinde çalışacağımız bir metin bloğu tanımlayalım. Rastgele olarak bir e-ticaret sitesinden bir çift botla ilgili bir değerlendirme kopyaladım. Bu yorumun metnini text değişkenine atayın. Metin içinde geçen tek veya çift tırnak karakterlerini kaçışladığınızdan emin olun. 

text = 'Comfort and Quality wise the boots are absolutely excellent. A 10 miles hike along the city Streets and the alps nearby felt like a smooth sail. The most plus it was quite well ventilated cause of the heavy duty Gore-tex material. After 12 hours when I removed it, there was just very little bit of perspiration (My foot sweats a lot) and absolutely no foul smell. Speaking of the Gore-Tex I would say, I sported this on a heavy rainy day after buying it in India, I was fearing the boot, though not very much like normal boots, would still be drenching with water, instead it was very little soaked. And some 5-6 hours later it was completely dry (Kept inside a closed room in the night). The only disadvantage I think is, that it fits my foot perfectly according to the size I chose, and there is no slight pain from 7 AM till 8 PM due to the shoe weight (of course its 1.2 KG, even though it doesn\'t feel like)' 

Metin özetleme 

Yukarıdaki metni özetlemek için:

  • client nesnesini kullanın. 
  • Aşağıdaki örnekte gösterildiği gibi messages parametresi içinde uygun rolleri iletin: 
summary_completion = client.chat.completions.create(
    model="gpt-35-turbo", 
    messages=[
        {
         "role": "system",
         "content": "You are a helpful assistant for summarizing text"
        },
        {
            "role": "user",
            "content": f"Summarize this text in 10 words: {text}",
        },
    ],
)

Yukarıdaki parçacıkta metni isteme bir değişken olarak nasıl aktardığımıza dikkat edin.

print(summary_completion.to_json())

Çıktı, aşağıdaki alıntıda gösterildiği gibi, uzun metnin asistan tarafından yapılmış özetini içerir: 

"message": {
   "content": "Excellent comfort and quality, well-ventilated, quick-drying, lightweight boots, minimal perspiration, no foul smell.",
   "role": "assistant"
},

Soru yanıtlama

Soruları (yukarıdaki girdi metnine dayanarak) yanıtlamak için, istemi soruyu bir dize değişkeni olarak iletecek şekilde değiştiriyoruz. Daha önce olduğu gibi, istemde metin de bir değişken olarak yer alır. Model, verilen metne dayanarak soruyu yanıtlar. 

question = 'Are these shoes heavy?'

qna_completion = client.chat.completions.create(
    model="gpt-35-turbo", 
    messages=[
        {"role": "system",
         "content": "You are a helpful assistant for answering questions"
        },
        {
            "role": "user",
            "content": f"Answer this question: {question} in 10 words based on this text: {text}",
        },
    ],
)

Çıktıyı JSON’a dönüştürüp yazdırın:

print(qna_completion.to_json())

Çıktı, soruya verilen asistan yanıtını içerir:

"message": {
   "content": "Lightweight. Not heavy. Comfortable for long hikes. Well-ventilated Gore-tex material.",
   "role": "assistant"
},

Azure OpenAI için Kullanım Senaryaları

Şimdi Azure OpenAI hizmetinin farklı kullanım senaryalarına bakalım.

Doğal dil işleme (NLP)

Temelde bir dil modeli olduğundan, GPT-3 ve GPT-4 gibi OpenAI’nin genel amaçlı modelleri, şu tür NLP görevlerinde mükemmeldir:

  • Metin özetleme: API’ye büyük bir metin parçasını girdi olarak verin ve ihtiyaçlarınıza göre özetlemesini isteyin. Önceki örnekte, uzun müşteri yorumunu 10 kelimelik bir özete indirdik.
  • Metin sınıflandırma: Belirli etiketler kümesi olan bir belgeyi (veya belge kümesini) OpenAI en uygun etikete sınıflandırabilir. 
  • Duygu analizi: API, bir girdi metninin duygusunu analiz edebilir. Örneğin, bir müşteri yorumunu olumlu, olumsuz veya nötr olarak sınıflandırabilir.

Aşağıdaki örnekte, (daha önce tanımlanan) müşteri yorumu metnini sınıflandırmak için duygu analizi yapıyoruz.

sentiment_classification = client.chat.completions.create(
    model="gpt-35-turbo", 
    messages=[
        {"role": "system",
         "content": "You are a helpful assistant for classifying customer reviews into one of the following categories: very positive, positive, neutral, negative, very negative"
        },
        {
            "role": "user",
            "content": f"Classify this review: {text}",
        },
    ],
    #max_tokens=16
)

print(sentiment_classification.to_json())

Çıktı, aşağıdaki alıntıya benzeyen bir parçayı içerir. İncelemenin asistan tarafından yapılan sınıflandırmasını içerir:

"message": {
   "content": "This review can be classified as very positive.",
   "role": "assistant"
},

Kod üretimi

OpenAI modelleri çeşitli programlama dillerinde kod üretebilir. OpenAI’nın önceki sürümlerinde, kod üretimi için ince ayar yapılmış Codex ve code-davinci gibi özel kod modelleri vardı. 

Ancak daha yeni OpenAI sürümlerinde, GPT-3.5 ve GPT-4 gibi modeller, ince ayar olmadan da kod üretiyor. Temel modeller kodlama tabanlı veri kümeleriyle ön-eğitimlidir. Bu nedenle Codex, code-davinci ve birçok eski model kullanımdan kaldırılmıştır ve yeni dağıtımlar için artık mevcut değildir. 

OpenAI modelleri, yaygın programlama dillerinde kod yazmaya yardımcı olabilir. Doğal dilde etkileşerek şu tür programlama görevleri için talimat verin: 

  • Kod üretme: Bir metin istemi veya yorum verildiğinde model, bir kod parçacığı üretebilir. Programcı bu parçacıkları birleştirerek çalışan bir program oluşturabilir. Bu, şablon/iskelet kodu yazma gibi tekrarlı görevleri otomatikleştirmeye yardımcı olur. 
  • Hata ayıklama: Model, hata ve uyarı iletilerini analiz edip sorunu doğal dilde açıklayabilir ve nasıl düzeltileceğine dair öneriler sunabilir. 
  • Optimize etme: OpenAI modelleri, kodu daha temiz yapılara dönüştürmeye ve sıralama gibi yaygın görevler için daha verimli algoritmalar kullanmaya yardımcı olabilir. 
  • Açıklama: OpenAI modelleri ürettikleri kod parçacıklarını da açıklayabilir. Bu açıklamalar, geliştirici ihtiyaçlarına göre üretilen kodu özelleştirmeye yardımcı olur; yeni başlayanların programlama kavramlarını anlamasına da destek olur. 

Basit bir örnek olarak bir dosyayı açıp okuyan bir Python fonksiyonu yazmayı düşünün. Yeterince yaygın olduğundan kolayca otomatikleştirilebilir. OpenAI’dan kodu yazmasını ve açıklamasını istiyoruz. Daha önce oluşturulan client nesnesini kullanın. 

code_completion = client.chat.completions.create(
    model="gpt-35-turbo", 
    messages=[
        {"role": "system",
         "content": "You are a helpful assistant for generating programming code"
        },
        {
            "role": "user",
            "content": "Write and explain a Python function to open and read a file",
        },
    ],
)

Çıktıyı yazdırın: 

print(code_completion.to_json())

Çıktı JSON nesnesinin, aşağıdaki örnek alıntıya benzeyen asistan çıktısını içerdiğine dikkat edin: 

"content": "Below is a Python function that opens a file, reads its contents, and returns the content as a string:\n\n```python\ndef read_file(file_path):\n    try:\n        with open(file_path, 'r') as file:\n …

DALL·E ile görsel üretimi

Önceki örneklerin tümü metin tabanlıydı. Bunlar genellikle dönüştürücü (transformer) mimarisiyle inşa edilen büyük dil modelleri (LLM) olarak OpenAI’yi kullandı. LLM’lere ek olarak, DALL·E gibi, verilen bir isteme göre görsel üreten dağıtıcı (diffuser) tabanlı modeller de bulunur. 

DALL·E’yi kullanmak için, görmek istediğiniz görselin ayrıntılı açıklamasını içeren bir metin istemi verin. Bu açıklamaya dayanarak DALL·E yüksek kaliteli bir görsel üretir. Bu, illüstrasyon oluşturma, ürün konsepti tasarlama, pazarlama kampanyaları için eskizler hazırlama ve daha fazlası gibi görevler için faydalıdır. 

DALL·E şu anda tüm coğrafi bölgelerde mevcut değildir. Bölgenizde mevcutsa, bu eğitimde daha önce açıklandığı gibi yeni bir dağıtım oluşturun; ancak GPT-3 yerine DALL·E-3 modelini kullanın. DALL·E modeline, daha önce açıklanan aynı client nesnesiyle erişin. Görsel üretmek için client.images.generate() metodunu kullanın: 

  • Model adını dalle3 olarak model parametresiyle ayarlayın. 
  • İstediğiniz görseli prompt parametresiyle tanımlayın. 
  • n ile üretilecek görsel sayısını da belirtebilirsiniz. 
result = client.images.generate(
    model="dalle3", 
    prompt="An owl wearing a Christmas hat",
    n=1
)

Modelin yanıtından JSON yanıt nesnesini çıkarın: 

import json
json_response = json.loads(result.model_dump_json())

Görsel dizinini tanımlayın. images dizininin, (Python kabuğunu başlattığınız) geçerli çalışma dizini altında mevcut olması gerektiğini unutmayın. 

image_dir = os.path.join(os.curdir, 'images')

Bu dizin altında görsel yolunu belirtin:

image_path = os.path.join(image_dir, 'generated_image.png')

Üretilen görselin URL’sini JSON yanıt nesnesinden çıkarın, görseli (akış olarak) indirin ve dosyaya yazın:

image_url = json_response["data"][0]["url"]  
generated_image = requests.get(image_url).content  
with open(image_path, "wb") as image_file:
    image_file.write(generated_image)

Görseli görüntüleyin:

from PIL import Image

image = Image.open(image_path)
image.show()

Azure OpenAI Kullanımı için En İyi Uygulamalar

Azure OpenAI hizmetini kullanmak basittir; ancak her teknolojide olduğu gibi, ondan en iyi şekilde yararlanmak için izlenmesi gereken bazı en iyi uygulamalar vardır. Bu bölümde bunları gözden geçirelim.

API kullanımını izleme ve yönetme

Azure OpenAI, Azure’un daha pahalı hizmetlerinden biridir. Yeni hesaplara sunulan ücretsiz bakiyeler bile OpenAI API’sinde kullanılamaz. Bu nedenle, yeni kullanıcılar için bile kullanımı izlemek önemlidir. Kontrolsüz API kullanımı beklenmedik derecede yüksek faturalara yol açabilir.

OpenAI ücretleri belirteç (token) kullanımı ve tüketimine dayanır. Belirteçler, model tarafından işlenen metin birimlerini temsil eder — hem girdi hem çıktı için. Büyük bir metin belgesini işlemek, uzun bir yanıt üretmekten daha fazla belirteç tüketebilir. Ne kadar çok belirteç kullanırsanız o kadar çok ödersiniz. Bu nedenle, modele verdiğiniz bilgi veya ondan üretmesini istediğiniz içerik konusunda ekonomik davranın. 

İlgili istekte tüketilen belirteç sayısını sınırlamak için max_tokens parametresini kullanın. Üretim modellerinde, isteklerinizin veya kullanıcılarınızın tipik olarak kaç belirtece ihtiyaç duyduğunu belirlemek için deneyler yapın ve kullanımı buna göre sınırlayın. Duruma göre limiti artırın. 

Temel metrikleri izlemek için:

  • Azure AI Services | Azure OpenAI ana sayfasından izlenecek kaynağı seçin. 
  • Kaynak sayfasında Monitor sekmesini seçerek model ve dağıtım başına HTTP istek sayısı ve işlenen belirteç sayısı gibi çeşitli metrikleri görüntüleyin. 

Azure OpenAI metrics dashboard

Azure OpenAI metrik panosu.

Daha ayrıntılı metrikleri de görüntüleyebilirsiniz:

  • Sol menüdeki Monitoring seçeneğinden Metrics öğesini seçin. 

Azure OpenAI detailed metrics

Azure OpenAI ayrıntılı metrikler.

  • Select a scope açılır penceresinde OpenAI örneğini seçin (onay kutusunu işaretleyin)
  • Apply seçin.

Metrics sayfasında:

  • Sağ üstten zaman aralığını seçin. 
  • (Başlangıçta boş olan) grafiğin üst menü çubuğundan, Metric açılırından uygun metriği seçin. Şunlar arasından seçim yapın:
    • Azure OpenAI istekleri, 
    • Belirteç kullanımı istatistikleri (aktif belirteçler, oluşturulan belirteçler vb.)
    • API çağrılarının performansı (ilk bayta kadar geçen süre vb.) ve daha fazlası. 

Azure OpenAI monitoring example

Azure OpenAI izleme örneği.

Son olarak, API hesaplarında her zaman bütçe limitleri belirleyin ve bir bütçe eşiğini aştığınızda e-posta uyarıları alacak şekilde ayarları yapılandırın. 

Modellere ince ayar (fine-tuning) yapma

OpenAI’nın temel modelleri, birçok farklı alanı kapsayan çok büyük veri kümeleri üzerinde eğitilir. Genel olarak, LLM modellerinden istenen çıktıyı almanın üç yolu vardır: 

  • İstem mühendisliği (prompt engineering): Çoğu kullanım senaryosunda, isteme spesifik talimatlar eklemek yeterlidir. Buna istem mühendisliği denir. 
  • Az örnekle öğrenme (few-shot): İstem mühendisliğinin yetersiz kaldığı durumlarda, modele kullanıcının beklediği yanıtları anlaması için isteme birkaç örnek ekleyin. Buna few-shot öğrenme denir; model az sayıda örneğe dayanarak öğrenir. 
  • İnce ayar (fine-tuning): Bazen modelle çok niş bir alan hakkında sohbet etmek istersiniz; örneğin, özel ekipman tamir kılavuzuna dayalı. Bu konuda metin üretmek, genel veri kümelerinde (temel modellerin eğitildiği) yer almamış olabilecek alan-özel jargon ve dil kalıplarını gerektirir. 

Few-shot öğrenme ve istem mühendisliği doğru yanıtları getirmiyorsa, bir temel modele ince ayar yapabilirsiniz. 

İnce ayar, önceden eğitilmiş bir temel modelin özel bir veri kümesi üzerinde yeniden eğitilmesini ifade eder. Pratikte, temel modelin yalnızca birkaç katmanı (tüm model değil) yeni veri üzerinde yeniden eğitilir. Azure ince ayar eğitimi, popüler bir OpenAI modeline ince ayar yapmanın adımlarını açıklar. 

Başarılı bir şekilde ince ayar yapmak için, binlerce eğitim örneği içeren, ilgili ve yüksek kaliteli büyük hacimli verilere ihtiyacınız olduğunu unutmayın. Ayrıca, ince ayar kaçınılmaz olarak modeli eğitmek için yüksek ön maliyetler içerir. Ek olarak, ince ayar yapılan model devreye alınmadan önce kendi masrafınızla barındırılmalıdır. 

API anahtarlarınızı güvenceye alma

Genel olarak ifşa edilen API anahtarları, hassas bilgilere erişmek, güvensiz ve/veya yasa dışı görevler yürütmek ya da yetkisiz istekler göndermek için kötüye kullanılabilir; bu da hesap sahibi için büyük bir faturayla sonuçlanabilir. Bu nedenle, anahtarları kaynak koda gömmek yerine güvenli bir şekilde yönetmek kritik önemdedir. Bunu yapmak için çeşitli yaklaşımlar kullanılabilir: 

  • Bulut hizmetlerinde AWS Secrets Manager ve Azure Key Vault gibi anahtar yönetim araçlarını kullanın.
  • .env dosyalarını anahtarları anahtar-değer formatında saklamak için kullanın. Bu dosyayı kod deposuna gönderilmediğinden emin olmak için .gitignore listesine ekleyin. 
  • Jupyter notebook tabanlı hizmetlerde anahtarları ortamın bir parçası olarak saklama seçeneğini kullanın. Bu yöntem bu eğitimde daha önce açıklanmıştır. 

Anahtarların hangi görevlerde kullanılabileceğine dair izinleri kısıtlamanızı tavsiye ederim. Ayrıca, anahtarların periyodik olarak döndürülmesi veya yeniden üretilmesi, sızmaları halinde eski anahtarların kötüye kullanılmasını engellemek açısından faydalıdır.

Sonuç 

Bu eğitimde, bir Azure hesabıyla başlamayı, OpenAI hizmetlerini kurmayı, yeni bir OpenAI örneği oluşturmayı ve bir model dağıtmayı ele aldık. Ardından, OpenAI modellerini pratik görevler için kullanma örneklerini gördük. Ayrıca Azure OpenAI kaynaklarının kullanımını ve performansını nasıl izleyeceğimizi de kapsadık. 

Microsoft Azure’u daha derinlemesine anlamak için DataCamp Azure Fundamentals öğretim yolunu takip edin. OpenAI’nın temel kavramları hakkında daha fazla bilgi edinmek için DataCamp OpenAI Fundamentals öğretim yolunu izleyin. 

FAQs

Azure OpenAI, OpenAI’den nasıl farklıdır?

Azure OpenAI, Azure kullanıcılarının OpenAI modellerine Azure platformu içinden erişmesini sağlar. Böylece Azure kullanıcıları başka bir yazılım platformunu yapılandırıp yönetmek zorunda kalmaz. Diğer Azure tabanlı hizmetlerle entegrasyonu da kolaylaştırır.

Azure OpenAI modellerde ince ayara izin veriyor mu?

Evet, belirli kullanım senaryonuza uygun eğitim ve doğrulama veri kümeleri sağlayabilir ve bir temel modele ince ayar yapmak için kullanabilirsiniz. 

Ancak, ince ayar yapılan modelin performansının eğitim verisinin kalitesine büyük ölçüde bağlı olduğunu unutmayın. Düşük kaliteli veya alakasız veriler, temel modele kıyasla performansın düşmesine yol açar.

Azure OpenAI’ye erişmek için hangi yöntemleri kullanabilirim?

Azure OpenAI hizmetlerine iki yolla erişirsiniz: Azure web uygulaması veya API. Web uygulaması, ChatGPT web arayüzü gibi çalışır. API’yı kullanarak modellere programatik olarak etkileşimde bulunabilirsiniz. API, yapay zeka araçlarının diğer uygulamalarla entegrasyonuna olanak tanır.

Azure OpenAI API’siyle hangi dilleri kullanabilirim?

Azure OpenAI; C#, Go, Java, JavaScript, Python ve REST (HTTP istekleri) gibi çeşitli dilleri destekler. Veri bilimi ve AI/ML alanındaki popülerliği nedeniyle Python en yaygın kullanılan dillerden biridir. Daha da önemlisi, Python ekosistemi büyük veri kümeleriyle çalışmak için birçok araç içerir. 

Sunucu tarafı uygulamalarla entegrasyon için uygulamanızın geri kalanıyla aynı dili kullanın.

Azure OpenAI ile hangi modellere erişebilirim?

Azure OpenAI, GPT-4, GPT-4o, GPT-3.5, DALL-E (metinden görsele), Whisper (konuştan metne) ve daha birçok modele erişim sağlar. Hâlihazırda mevcut modellerin listesi Azure belgelerinde bulunabilir.

Arun Nanda

Yazar

Arun Nanda

Arun, yeni şeyler inşa etmekten keyif alan, eski bir girişim kurucusudur. Şu anda Yapay Zekânın teknik ve matematiksel temellerini keşfediyor. Öğrendiklerini paylaşmayı sevdiği için bu konuda yazılar yazıyor.

DataCamp’in yanı sıra, yazılarını Medium, Airbyte ve Vultr üzerinde okuyabilirsiniz.

Konular