Share via


İnce ayar ile modeli özelleştirme

Azure OpenAI Hizmeti, ince ayar olarak bilinen bir işlemi kullanarak modellerimizi kişisel veri kümelerinize uyarlamanıza olanak tanır. Bu özelleştirme adımı şunları sağlayarak hizmetten daha fazla yararlanın:

  • Yalnızca istem mühendisliğinden elde ettiğinizden daha yüksek kaliteli sonuçlar
  • Modelin maksimum istek bağlam sınırına sığabilecekten daha fazla örnek üzerinde eğitebilme özelliği.
  • Daha kısa istemler nedeniyle belirteç tasarrufu
  • Özellikle daha küçük modeller kullanılırken daha düşük gecikme süreli istekler.

İnce ayar, az denemeli öğrenmenin aksine, çok sayıda görevde daha iyi sonuçlar elde etmenizi sağlayarak bir isteme sığabilecekten çok daha fazla örnek üzerinde eğitim vererek modeli geliştirir. hassas ayarlama, belirli bir görevde performansı artırmak için temel modelin ağırlıklarını ayarladığından, isteminize o kadar çok örnek veya yönerge eklemeniz gerekmez. Bu, daha az metin gönderildiği ve her API çağrısında daha az belirteç işlendiği, maliyet tasarrufu sağlandığı ve istek gecikme süresini iyileştirdiği anlamına gelir.

Modellerin performansını önemli ölçüde etkilemeden karmaşıklıklarını azaltacak şekilde ince ayar yapmak için LoRA veya düşük dereceli yaklaşık değer kullanırız. Bu yöntem, özgün yüksek dereceli matrisi daha düşük dereceli bir matrisle tahmin ederek çalışır, böylece denetimli eğitim aşamasında yalnızca "önemli" parametrelerin daha küçük bir alt kümesini ince ayarlayarak modeli daha yönetilebilir ve verimli hale getirir. Kullanıcılar için bu, eğitimi diğer tekniklere göre daha hızlı ve daha uygun fiyatlı hale getirir.

Önkoşullar

Not

Şu anda Azure OpenAI Hizmeti'ne erişmek için bir uygulama göndermeniz gerekir. Erişime başvurmak için bu formu doldurun.

Modeller

Aşağıdaki modeller ince ayarlamayı destekler:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)

Şu anda hangi bölgelerin ince ayarlamayı desteklediğini denetlemek için modeller sayfasına bakın.

Azure OpenAI Studio için iş akışını gözden geçirme

Azure OpenAI Studio'yu kullanmaya yönelik ince ayar iş akışını gözden geçirmek için biraz bekleyin:

  1. Eğitim ve doğrulama verilerinizi hazırlayın.
  2. Özel modelinizi eğitmek için Azure OpenAI Studio'da Özel model oluşturma sihirbazını kullanın.
    1. Bir temel model seçin.
    2. Eğitim verilerinizi seçin.
    3. İsteğe bağlı olarak doğrulama verilerinizi seçin.
    4. İsteğe bağlı olarak, ince ayar işiniz için gelişmiş seçenekleri yapılandırın.
    5. Seçimlerinizi gözden geçirin ve yeni özel modelinizi eğitin.
  3. Özel ince ayarlı modelinizin durumunu denetleyin.
  4. Özel modelinizi kullanmak üzere dağıtın.
  5. Özel modelinizi kullanın.
  6. İsteğe bağlı olarak, performans ve sığdırma için özel modelinizi analiz edin.

Eğitim ve doğrulama verilerinizi hazırlama

Eğitim verileriniz ve doğrulama veri kümeleriniz, modelin nasıl performans göstermesini istediğinize ilişkin giriş ve çıkış örneklerinden oluşur.

Farklı model türleri farklı bir eğitim verileri biçimi gerektirir.

Kullandığınız eğitim ve doğrulama verileri JSON Satırları (JSONL) belgesi olarak biçimlendirilmelidir . İnce gpt-35-turbo-0613 ayar veri kümesinin Sohbet tamamlama api'sinin kullandığı konuşma biçiminde biçimlendirilmesi gerekir.

Modelin ince ayarlarını gpt-35-turbo-0613 adım adım gözden geçirmeyi istiyorsanız lütfen Azure OpenAI ince ayarlama öğreticisine bakın

Örnek dosya biçimi

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

Çok aşamalı sohbet dosyası biçimi

Jsonl eğitim dosyanızın tek bir satırındaki bir konuşmanın birden çok dönüşü de desteklenir. Belirli yardımcı iletilerinde ince ayarlamayı atlamak için isteğe bağlı weight anahtar değer çiftini ekleyin. Şu anda weight 0 veya 1 olarak ayarlanabilir.

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}

JSONL biçimine ek olarak, eğitim ve doğrulama veri dosyalarının UTF-8'de kodlanması ve bayt sırası işareti (BOM) içermesi gerekir. Dosyanın boyutu 512 MB'tan az olmalıdır.

Eğitim ve doğrulama veri kümelerinizi oluşturma

Ne kadar çok eğitim örneğine sahipseniz o kadar iyi. İnce ayarlama işleri en az 10 eğitim örneği olmadan devam etmez, ancak bu kadar küçük bir sayı model yanıtlarını belirgin bir şekilde etkilemek için yeterli değildir. Başarılı olmak için binlerce olmasa da yüzlerce eğitim örneği sağlamak en iyi yöntemdir.

Genel olarak, veri kümesi boyutunun iki katına çıkarılması model kalitesinde doğrusal bir artışa yol açabilir. Ancak düşük kaliteli örneklerin performansı olumsuz etkileyeebileceğini unutmayın. Modeli büyük miktarda iç veri üzerinde eğitirseniz, önce veri kümesini yalnızca en yüksek kaliteli örnekler için ayıklamadan beklenenden çok daha kötü performans gösteren bir modelle sonuçlanabilirsiniz.

Özel model oluşturma sihirbazını kullanma

Azure OpenAI Studio, Azure kaynağınız için ince ayarlı bir modeli etkileşimli olarak oluşturup eğitebilmeniz için Özel model oluşturma sihirbazını sağlar.

  1. adresinde Azure OpenAI Studio'yu https://oai.azure.com/ açın ve Azure OpenAI kaynağınıza erişimi olan kimlik bilgileriyle oturum açın. Oturum açma iş akışı sırasında uygun dizini, Azure aboneliğini ve Azure OpenAI kaynağını seçin.

  2. Azure OpenAI Studio'da Yönetim Modelleri bölmesine gidin ve Özel model oluştur'u seçin.>

    Azure OpenAI Studio'da Özel model oluşturma sihirbazına nasıl erişildiğini gösteren ekran görüntüsü.

Özel model oluşturma sihirbazı açılır.

Temel modeli seçin

Özel model oluşturmanın ilk adımı bir temel model seçmektir. Temel model bölmesi, özel modeliniz için kullanılacak bir temel model seçmenize olanak tanır. Seçiminiz modelinizin hem performansını hem de maliyetini etkiler.

Temel model türü açılan listesinden temel modeli seçin ve ardından devam etmek için İleri'yi seçin.

Aşağıdaki kullanılabilir temel modellerden birinden özel bir model oluşturabilirsiniz:

  • babbage-002

  • davinci-002

  • gpt-35-turbo (0613)

  • gpt-35-turbo (1106)

  • İsterseniz, önceden ince ayarlanmış bir modele ince ayar yapabilirsiniz. Base-model.ft-{jobid} olarak biçimlendirilir.

Özel bir ince ayarlı modele sahip model seçeneklerinin ekran görüntüsü.

İnce ayarlı olabilecek temel modellerimiz hakkında daha fazla bilgi için bkz . Modeller.

Eğitim verilerinizi seçin

Sonraki adım, mevcut hazırlanmış eğitim verilerini seçmek veya modelinizi özelleştirirken kullanmak üzere yeni hazırlanmış eğitim verilerini karşıya yüklemektir. Eğitim verileri bölmesinde mevcut, daha önce karşıya yüklenen tüm veri kümeleri görüntülenir ve ayrıca yeni eğitim verilerini karşıya yükleme seçenekleri sağlanır.

Azure OpenAI Studio'da Özel model oluşturma sihirbazının Eğitim verileri bölmesinin ekran görüntüsü.

  • Eğitim verileriniz hizmete zaten yüklenmişse Veri kümesi seç'i seçin.

    • Eğitim verileri bölmesinde gösterilen listeden dosyayı seçin.
  • Yeni eğitim verilerini karşıya yüklemek için aşağıdaki seçeneklerden birini kullanın:

Büyük veri dosyaları için Azure Blob deposundan içeri aktarmanızı öneririz. İstekler atomik olduğundan ve yeniden denenemediği veya sürdürülemediğinden, çok bölümlü formlar aracılığıyla karşıya yüklendiğinde büyük dosyalar kararsız hale gelebilir. Azure Blob Depolama hakkında daha fazla bilgi için bkz. Azure Blob Depolama nedir?

Not

Eğitim veri dosyaları JSONL dosyaları olarak biçimlendirilmelidir ve UTF-8'de bayt sırası işaretiyle (BOM) kodlanmalıdır. Dosyanın boyutu 512 MB'tan az olmalıdır.

Eğitim verilerini yerel dosyadan karşıya yükleme

Aşağıdaki yöntemlerden birini kullanarak yerel bir dosyadan hizmete yeni bir eğitim veri kümesi yükleyebilirsiniz:

  • Dosyayı Eğitim verileri bölmesinin istemci alanına sürükleyip bırakın ve ardından Dosyayı karşıya yükle'yi seçin.

  • Eğitim verileri bölmesinin istemci alanından Dosyaya gözat'ı seçin, Aç iletişim kutusundan karşıya yüklenecek dosyayı seçin ve ardından Dosyayı karşıya yükle'yi seçin.

Eğitim veri kümesini seçip karşıya yükledikten sonra devam etmek için İleri'yi seçin.

Yerel dosya seçeneklerini içeren Özel model oluşturma sihirbazının Eğitim verileri bölmesinin ekran görüntüsü.

Azure Blob deposundan eğitim verilerini içeri aktarma

Dosyanın adını ve konumunu sağlayarak Azure Blob'dan veya başka bir paylaşılan web konumundan eğitim veri kümesini içeri aktarabilirsiniz.

  1. Dosyanın Dosya adını girin.

  2. Dosya konumu için Azure Blob URL'sini, Azure Depolama paylaşılan erişim imzasını (SAS) veya erişilebilir bir paylaşılan web konumunun diğer bağlantısını sağlayın.

  3. Eğitim veri kümesini hizmete aktarmak için Dosyayı karşıya yükle'yi seçin.

Eğitim veri kümesini seçip karşıya yükledikten sonra devam etmek için İleri'yi seçin.

Azure Blob ve paylaşılan web konumu seçeneklerini içeren Özel model oluşturma sihirbazının Eğitim verileri bölmesinin ekran görüntüsü.

Doğrulama verilerinizi seçin

Sonraki adım, modeli eğitim sürecinde doğrulama verilerini kullanacak şekilde yapılandırma seçenekleri sağlar. Doğrulama verilerini kullanmak istemiyorsanız, modelin gelişmiş seçeneklerine devam etmek için İleri'yi seçebilirsiniz. Aksi takdirde, bir doğrulama veri kümeniz varsa, mevcut hazırlanmış doğrulama verilerini seçebilir veya modelinizi özelleştirirken kullanmak üzere yeni hazırlanmış doğrulama verilerini karşıya yükleyebilirsiniz.

Doğrulama verileri bölmesi, önceden yüklenmiş eğitim ve doğrulama veri kümelerini görüntüler ve yeni doğrulama verilerini karşıya yükleyebileceğiniz seçenekler sağlar.

Azure OpenAI Studio'da Özel model oluşturma sihirbazının Doğrulama verileri bölmesinin ekran görüntüsü.

  • Doğrulama verileriniz hizmete zaten yüklenmişse Veri kümesi seç'i seçin.

    • Doğrulama verileri bölmesinde gösterilen listeden dosyayı seçin.
  • Yeni doğrulama verilerini karşıya yüklemek için aşağıdaki seçeneklerden birini kullanın:

Büyük veri dosyaları için Azure Blob deposundan içeri aktarmanızı öneririz. İstekler atomik olduğundan ve yeniden denenemediği veya sürdürülemediğinden, çok bölümlü formlar aracılığıyla karşıya yüklendiğinde büyük dosyalar kararsız hale gelebilir.

Not

Eğitim veri dosyalarına benzer şekilde doğrulama veri dosyalarının da JSONL dosyaları olarak biçimlendirilmesi ve UTF-8'de bayt sırası işareti (BOM) ile kodlanması gerekir. Dosyanın boyutu 512 MB'tan az olmalıdır.

Doğrulama verilerini yerel dosyadan karşıya yükleme

Aşağıdaki yöntemlerden birini kullanarak yerel bir dosyadan hizmete yeni bir doğrulama veri kümesi yükleyebilirsiniz:

  • Dosyayı Doğrulama verileri bölmesinin istemci alanına sürükleyip bırakın ve ardından Dosyayı karşıya yükle'yi seçin.

  • Doğrulama verileri bölmesinin istemci alanından Dosyaya gözat'ı seçin, Aç iletişim kutusundan karşıya yüklenecek dosyayı seçin ve ardından Dosyayı karşıya yükle'yi seçin.

Doğrulama veri kümesini seçip karşıya yükledikten sonra devam etmek için İleri'yi seçin.

Yerel dosya seçeneklerini içeren Özel model oluşturma sihirbazının Doğrulama verileri bölmesinin ekran görüntüsü.

Azure Blob deposundan doğrulama verilerini içeri aktarma

Dosyanın adını ve konumunu sağlayarak Azure Blob'dan veya başka bir paylaşılan web konumundan doğrulama veri kümesini içeri aktarabilirsiniz.

  1. Dosyanın Dosya adını girin.

  2. Dosya konumu için Azure Blob URL'sini, Azure Depolama paylaşılan erişim imzasını (SAS) veya erişilebilir bir paylaşılan web konumunun diğer bağlantısını sağlayın.

  3. Eğitim veri kümesini hizmete aktarmak için Dosyayı karşıya yükle'yi seçin.

Doğrulama veri kümesini seçip karşıya yükledikten sonra devam etmek için İleri'yi seçin.

Azure Blob ve paylaşılan web konumu seçeneklerinin bulunduğu Özel model oluşturma sihirbazının Doğrulama verileri bölmesinin ekran görüntüsü.

Gelişmiş seçenekleri yapılandırma

Özel model oluşturma sihirbazı, gelişmiş seçenekler bölmesinde ince ayarlı modelinizi eğiten hiper parametreleri gösterir. Aşağıdaki hiper parametreler kullanılabilir:

Ad Tür Açıklama
batch_size integer Eğitim için kullanılacak toplu iş boyutu. Toplu iş boyutu, tek ileri ve geri geçişi eğitmek için kullanılan eğitim örneklerinin sayısıdır. Genel olarak, daha büyük toplu iş boyutlarının daha büyük veri kümeleri için daha iyi çalışma eğiliminde olduğunu bulduk. Bu özelliğin varsayılan değeri ve en büyük değeri bir temel modele özeldir. Daha büyük bir toplu iş boyutu, model parametrelerinin daha az sıklıkta, ancak daha düşük varyansla güncelleştirildiğini gösterir.
learning_rate_multiplier Numara Eğitim için kullanılacak öğrenme oranı çarpanı. İnce ayarlama öğrenme oranı, ön eğitim için kullanılan özgün öğrenme oranıdır ve bu değerle çarpılır. Daha büyük öğrenme oranları, daha büyük toplu iş boyutlarıyla daha iyi performans gösterme eğilimindedir. En iyi sonuçları neyin ürettiğini görmek için 0,02 ile 0,2 aralığındaki değerlerle denemeler yapmanızı öneririz. Fazla uygunluktan kaçınmak için daha düşük bir öğrenme oranı yararlı olabilir.
n_epochs integer Modeli eğitmek için dönem sayısı. Dönem, eğitim veri kümesindeki bir tam döngüyü ifade eder.

Varsayılan seçeneklerin seçili olduğu Özel model oluşturma sihirbazının Gelişmiş seçenekler bölmesinin ekran görüntüsü.

İnce ayar işinin varsayılan değerlerini kullanmak için Varsayılan'ı seçin veya hiper parametre değerlerini görüntülemek ve düzenlemek için Gelişmiş'i seçin. Varsayılanlar seçildiğinde, eğitim verilerinize göre algoritmalı olarak doğru değeri belirleriz.

Gelişmiş seçenekleri yapılandırdıktan sonra, seçeneklerinizi gözden geçirmek ve ince ayarlı modelinizi eğitmek için İleri'yi seçin.

Seçimlerinizi gözden geçirin ve modelinizi eğitin

Sihirbazın Gözden Geçir bölmesinde yapılandırma seçenekleriniz hakkındaki bilgiler görüntülenir.

Azure OpenAI Studio'da Özel model oluşturma sihirbazının Gözden Geçir bölmesinin ekran görüntüsü.

Modelinizi eğitmeye hazırsanız, ince ayarlama işini başlatmak ve Modeller bölmesine dönmek için Eğitimi Başlat işini seçin.

Özel modelinizin durumunu denetleme

Modeller bölmesi, Özelleştirilmiş modeller sekmesinde özel modelinizle ilgili bilgileri görüntüler. Sekme, özel modeliniz için ince ayar işinin durumu ve iş kimliği hakkında bilgi içerir. İş tamamlandığında, sekme sonuç dosyasının dosya kimliğini görüntüler. Model eğitim işinin güncelleştirilmiş durumunu görmek için Yenile'yi seçmeniz gerekebilir.

Azure OpenAI Studio'nun Modeller bölmesinin, özel bir modelin görüntülendiği ekran görüntüsü.

bir ince ayar işi başlattıktan sonra tamamlanması biraz zaman alabilir. İşiniz sistemdeki diğer işlerin arkasında kuyruğa alınmış olabilir. Modelinizin eğitimi, modele ve veri kümesi boyutuna bağlı olarak dakikalar veya saatler sürebilir.

Modeller bölmesinde gerçekleştirebileceğiniz görevlerden bazıları şunlardır:

  • Özelleştirilmiş modeller sekmesinin Durum sütununda özel modeliniz için ince ayar işinin durumunu denetleyin.

  • Model adı sütununda, özel model hakkında daha fazla bilgi görüntülemek için model adını seçin. İşte kullanılan ince ayar işinin, eğitim sonuçlarının, eğitim olaylarının ve hiper parametrelerin durumunu görebilirsiniz.

  • Model için kullandığınız eğitim verilerini indirmek için Eğitim dosyasını indir'i seçin.

  • Modelinizin ince ayar işine eklenen sonuç dosyasını indirmek ve eğitim ve doğrulama performansı için özel modelinizi analiz etmek için Sonuçları indir'i seçin.

  • Sayfadaki bilgileri güncelleştirmek için Yenile'yi seçin.

Azure OpenAI Studio'da özel bir modelin görüntülendiği Modeller bölmesinin ekran görüntüsü.

Özel bir modeli dağıtma

İnce ayar işi başarılı olduğunda, özel modeli Modeller bölmesinden dağıtabilirsiniz. Özel modelinizi tamamlama çağrılarıyla kullanılabilir hale getirmek için dağıtmanız gerekir.

Önemli

Özelleştirilmiş bir modeli dağıttıktan sonra, herhangi bir zamanda dağıtım on beş (15) günden uzun süre etkin değilse dağıtım silinir. Model on beşten (15) gün önce dağıtıldıysa ve sürekli 15 günlük bir süre boyunca buna hiçbir tamamlama veya sohbet tamamlama çağrısı yapılmadıysa, özelleştirilmiş bir modelin dağıtımı devre dışı bırakılır.

Etkin olmayan bir dağıtımın silinmesi, temel alınan özelleştirilmiş modeli silmez veya etkilemez ve özelleştirilmiş model istediğiniz zaman yeniden dağıtılabilir. Azure OpenAI Hizmeti fiyatlandırmasında açıklandığı gibi, dağıtılan her özelleştirilmiş (ince ayarlı) model, modele tamamlama veya sohbet tamamlama çağrıları yapılıp yapılmamasına bakılmaksızın saatlik barındırma maliyetine neden olur. Azure OpenAI ile maliyetleri planlama ve yönetme hakkında daha fazla bilgi edinmek için Azure OpenAI Hizmeti maliyetlerini yönetmeyi planlama konusundaki kılavuza bakın.

Not

Özel model için yalnızca bir dağıtıma izin verilir. Zaten dağıtılmış bir özel modeli seçerseniz bir hata iletisi görüntülenir.

Özel modelinizi dağıtmak için dağıtılacak özel modeli seçin ve ardından Modeli dağıt'ı seçin.

Azure OpenAI Studio'da özel modelin nasıl dağıtıldığını gösteren ekran görüntüsü.

Modeli dağıt iletişim kutusu açılır. İletişim kutusuna Dağıtım adınızı girin ve özel modelinizin dağıtımını başlatmak için Oluştur'u seçin.

Azure OpenAI Studio'da Modeli Dağıt iletişim kutusunun ekran görüntüsü.

Dağıtımınızın ilerleme durumunu Azure OpenAI Studio'daki Dağıtımlar bölmesinden izleyebilirsiniz.

Bölgeler arası dağıtım

İnce ayar, ince ayarlı modelin başlangıçta ince ayarlı olduğundan farklı bir bölgeye dağıtılmasına destek olur. Ayrıca farklı bir aboneliğe/bölgeye de dağıtabilirsiniz.

Tek sınırlamalar, yeni bölgenin ince ayarlamayı da desteklemesi ve abonelikler arası dağıtım yaparken dağıtım için yetkilendirme belirtecini oluşturan hesabın hem kaynak hem de hedef aboneliklere erişimi olması gerektiğidir.

Çapraz abonelik/bölge dağıtımı Python veya REST aracılığıyla gerçekleştirilebilir.

Dağıtılan özel modeli kullanma

Özel modeliniz dağıtıldıktan sonra diğer dağıtılan modellerde olduğu gibi kullanabilirsiniz. Yeni dağıtımınızla denemeler yapmak için Azure OpenAI Studio'daki Playgrounds'ı kullanabilirsiniz. Ve gibi özel modelinizle, dağıtılan diğer modellerle olduğu gibi temperaturemax_tokensaynı parametreleri kullanmaya devam edebilirsiniz. Hassas ayarlı babbage-002 ve davinci-002 modeller için Tamamlamalar oyun alanı ve Tamamlamalar API'sini kullanacaksınız. Hassas ayarlı gpt-35-turbo-0613 modeller için Sohbet oyun alanı ve Sohbet tamamlama API'sini kullanacaksınız.

Azure OpenAI Studio'da bölümlerin vurgulandığı Oyun Alanı bölmesinin ekran görüntüsü.

Özel modelinizi analiz etme

Azure OpenAI, tamamlandıktan sonra her ince ayar işine results.csv adlı bir sonuç dosyası ekler. Sonuç dosyasını kullanarak özel modelinizin eğitim ve doğrulama performansını analiz edebilirsiniz. Sonuç dosyasının dosya kimliği, Azure OpenAI Studio için Modeller bölmesindeki Sonuç dosyası kimliği sütunundaki her özel model için listelenir. Azure OpenAI Studio'nun Veri dosyaları bölmesinden sonuç dosyasını tanımlamak ve indirmek için dosya kimliğini kullanabilirsiniz.

Sonuç dosyası, ince ayarlama işi tarafından gerçekleştirilen her eğitim adımı için bir üst bilgi satırı ve satır içeren bir CSV dosyasıdır. Sonuç dosyası aşağıdaki sütunları içerir:

Sütun adı Açıklama
step Eğitim adımının sayısı. Eğitim adımı, bir grup eğitim verisinde tek bir geçişi, ileri ve geriyi temsil eder.
train_loss Eğitim toplu işleminin kaybı.
training_accuracy Eğitim toplu işleminde modelin tahmin edilen belirteçlerinin gerçek tamamlama belirteçleriyle tam olarak eşleştiğini tamamlama yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,67 (3'ün 2'sinde) olarak ayarlanır.
train_mean_token_accuracy Eğitim toplu işlemindeki belirteçlerin model tarafından doğru tahmin edilen yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,83 (6'nın 5'i) olarak ayarlanır.
valid_loss Doğrulama toplu işleminin kaybı.
valid_accuracy Modelin tahmin edilen belirteçlerinin gerçek tamamlama belirteçleriyle tam olarak eşleşeceği doğrulama toplu işlemindeki tamamlanma yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,67 (3'ün 2'sinde) olarak ayarlanır.
validation_mean_token_accuracy Doğrulama toplu işlemindeki belirteçlerin model tarafından doğru tahmin edilen yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,83 (6'nın 5'i) olarak ayarlanır.

Ayrıca results.csv dosyanızdaki verileri Azure OpenAI Studio'da çizim olarak görüntüleyebilirsiniz. Eğitilen modelinizin bağlantısını seçtiğinizde üç grafik görürsünüz: kayıp, ortalama belirteç doğruluğu ve belirteç doğruluğu. Doğrulama verileri sağladıysanız, her iki veri kümesi de aynı çizimde görünür.

Zaman içinde kaybınızın azalmasını ve doğruluğunuzun artırılmasını arayın. Eğitim ve doğrulama verileriniz arasında bir fark görürseniz, bu fazla uygunluk gösterdiğinizi gösterebilir. Daha az dönemle veya daha küçük bir öğrenme oranı çarpanıyla eğitimi deneyin.

Dağıtımlarınızı, özel modellerinizi ve eğitim dosyalarınızı temizleme

Özel modelinizle işiniz bittiğinde dağıtımı ve modeli silebilirsiniz. Gerekirse hizmete yüklediğiniz eğitim ve doğrulama dosyalarını da silebilirsiniz.

Model dağıtımınızı silme

Önemli

Özelleştirilmiş bir modeli dağıttıktan sonra, herhangi bir zamanda dağıtım on beş (15) günden uzun süre etkin değilse dağıtım silinir. Model on beşten (15) gün önce dağıtıldıysa ve sürekli 15 günlük bir süre boyunca buna hiçbir tamamlama veya sohbet tamamlama çağrısı yapılmadıysa, özelleştirilmiş bir modelin dağıtımı devre dışı bırakılır.

Etkin olmayan bir dağıtımın silinmesi, temel alınan özelleştirilmiş modeli silmez veya etkilemez ve özelleştirilmiş model istediğiniz zaman yeniden dağıtılabilir. Azure OpenAI Hizmeti fiyatlandırmasında açıklandığı gibi, dağıtılan her özelleştirilmiş (ince ayarlı) model, modele tamamlama veya sohbet tamamlama çağrıları yapılıp yapılmamasına bakılmaksızın saatlik barındırma maliyetine neden olur. Azure OpenAI ile maliyetleri planlama ve yönetme hakkında daha fazla bilgi edinmek için Azure OpenAI Hizmeti maliyetlerini yönetmeyi planlama konusundaki kılavuza bakın.

Özel modelinizin dağıtımını Azure OpenAI Studio'daki Dağıtımlar bölmesinde silebilirsiniz. Silinecek dağıtımı seçin ve ardından sil'i seçerek dağıtımı silin.

Özel modelinizi silme

Özel modeli Azure OpenAI Studio'daki Modeller bölmesinde silebilirsiniz. Özelleştirilmiş modeller sekmesinden silinecek özel modeli seçin ve ardından sil'i seçerek özel modeli silin.

Not

Mevcut bir dağıtımı varsa özel modeli silemezsiniz. Özel modelinizi silebilmeniz için önce model dağıtımınızı silmeniz gerekir.

Eğitim dosyalarınızı silme

İsteğe bağlı olarak, eğitim için karşıya yüklediğiniz eğitim ve doğrulama dosyalarını ve eğitim sırasında oluşturulan sonuç dosyalarını Azure OpenAI Studio'daki Yönetim>Verileri dosyaları bölmesinde silebilirsiniz. Silinecek dosyayı seçin ve ardından sil'i seçerek dosyayı silin.

Sürekli ince ayar

İnce ayarlı bir model oluşturduktan sonra, daha fazla ince ayar yapmak için modeli zaman içinde iyileştirmeye devam etmek isteyebilirsiniz. Sürekli ince ayarlama, temel model olarak önceden ayarlanmış bir modeli seçme ve yeni eğitim örnekleri kümesinde daha fazla ince ayar yapma yinelemeli bir işlemdir.

Daha önce ince ayar yaptığınız bir modelde ince ayarlama yapmak için özelleştirilmiş bir model oluşturma başlığı altında açıklandığı gibi aynı işlemi kullanırsınız, ancak genel bir temel modelin adını belirtmek yerine zaten hassas ayarlanmış modelinizi belirtirsiniz. Özel bir ince ayarlı model şöyle görünür: gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7

Hassas ayarlanmış bir model vurgulanmış özel model oluşturma kullanıcı arabiriminin ekran görüntüsü.

Ayrıca, ince ayarlı modelinizin farklı yinelemelerini ayırt etmek için parametresini de eklemenizi suffix öneririz. suffix bir dize alır ve ince ayarlı modeli tanımlamak için ayarlanır. OpenAI Python API'siyle, ince ayarlı model adınıza eklenecek en fazla 18 karakterlik bir dize desteklenir.

Not

Azure AI Studio şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Önkoşullar

Not

Şu anda Azure OpenAI Hizmeti'ne erişmek için bir uygulama göndermeniz gerekir. Erişime başvurmak için bu formu doldurun.

Modeller

Aşağıdaki modeller ince ayarlamayı destekler:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)

Şu anda hangi bölgelerin ince ayarlamayı desteklediğini denetlemek için modeller sayfasına bakın.

Azure AI Studio için iş akışını gözden geçirme

Azure AI Studio'yu kullanmaya yönelik ince ayar iş akışını gözden geçirmek için biraz zaman ayırın:

  1. Eğitim ve doğrulama verilerinizi hazırlayın.
  2. Özel modelinizi eğitmek için Azure AI Studio'daki model ince ayar sihirbazını kullanın.
    1. Bir model seçin.
    2. Eğitim verilerinizi seçin.
    3. İsteğe bağlı olarak doğrulama verilerinizi seçin.
    4. İsteğe bağlı olarak, ince ayarlama işiniz için parametrelerinizi yapılandırın.
    5. Seçimlerinizi gözden geçirin ve yeni özel modelinizi eğitin.
  3. hassas ayarlı modelinizin durumunu denetleyin.
  4. İsteğe bağlı olarak, performans ve sığdırma için ince ayarlı modelinizi analiz edin.
  5. Hassas ayarlı modelinizi kullanmak üzere dağıtın.
  6. hassas modelinizi kullanın.

Eğitim ve doğrulama verilerinizi hazırlama

Eğitim verileriniz ve doğrulama veri kümeleriniz, modelin nasıl performans göstermesini istediğinize ilişkin giriş ve çıkış örneklerinden oluşur.

Farklı model türleri farklı bir eğitim verileri biçimi gerektirir.

Kullandığınız eğitim ve doğrulama verileri JSON Satırları (JSONL) belgesi olarak biçimlendirilmelidir . İnce gpt-35-turbo-0613 ayar veri kümesinin Sohbet tamamlama api'sinin kullandığı konuşma biçiminde biçimlendirilmesi gerekir.

Modelde ince ayarlamanın gpt-35-turbo-0613 adım adım izlenerek gözden geçirilip incelenmek istiyorsanız lütfen Azure OpenAI ince ayarlama öğreticisine bakın.

Örnek dosya biçimi

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

Çok aşamalı sohbet dosyası biçimi

Jsonl eğitim dosyanızın tek bir satırındaki bir konuşmanın birden çok dönüşü de desteklenir. Belirli yardımcı iletilerinde ince ayarlamayı atlamak için isteğe bağlı weight anahtar değer çiftini ekleyin. Şu anda weight 0 veya 1 olarak ayarlanabilir.

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}

JSONL biçimine ek olarak, eğitim ve doğrulama veri dosyalarının UTF-8'de kodlanması ve bayt sırası işareti (BOM) içermesi gerekir. Dosyanın boyutu 512 MB'tan az olmalıdır.

Eğitim ve doğrulama veri kümelerinizi oluşturma

Ne kadar çok eğitim örneğine sahipseniz o kadar iyi. İnce ayarlama işleri en az 10 eğitim örneği olmadan devam etmez, ancak bu kadar küçük bir sayı model yanıtlarını belirgin bir şekilde etkilemek için yeterli değildir. Başarılı olmak için binlerce olmasa da yüzlerce eğitim örneği sağlamak en iyi yöntemdir.

Genel olarak, veri kümesi boyutunun iki katına çıkarılması model kalitesinde doğrusal bir artışa yol açabilir. Ancak düşük kaliteli örneklerin performansı olumsuz etkileyeebileceğini unutmayın. Modeli büyük miktarda iç veri üzerinde eğitirseniz, önce veri kümesini yalnızca en yüksek kaliteli örnekler için ayıklamadan beklenenden çok daha kötü performans gösteren bir modelle sonuçlanabilirsiniz.

hassas modelinizi oluşturma

Mevcut bir Azure AI Studio projesinde Azure OpenAI modeline ince ayar yapmak için şu adımları izleyin:

  1. Azure AI Studio'da oturum açın ve Derleme sayfasından projenizi seçin. Henüz bir projeniz yoksa, önce bir proje oluşturun.

  2. Daraltılabilir sol menüden İnce ayar>+ Modele ince ayar'ı seçin.

    Yeni bir ince ayarlı model oluşturmaya başlama seçeneğinin ekran görüntüsü.

Temel modeli seçin

  1. İnce ayar yapmak için bir temel model seçin. Seçiminiz modelinizin hem performansını hem de maliyetini etkiler. Bu örnekte modeli seçiyoruz gpt-35-turbo . Ardından Onayla'yı seçin.

    İnce ayar yapmak için bir model seçme seçeneğinin ekran görüntüsü.

  2. hassas gpt-35-turbo ayarlama için kullanabileceğimiz farklı sürümler olduğundan lütfen hangi sürümde ince ayar yapmak istediğinizi seçin. (0125) seçeneğini belirleyeceğiz.

  3. Ayrıca, ince ayarlı modelinizin farklı yinelemelerini ayırt etmek için parametresini de eklemenizi suffix öneririz. suffix bir dize alır ve ince ayarlı modeli tanımlamak için ayarlanır. OpenAI Python API'siyle, ince ayarlı model adınıza eklenecek en fazla 18 karakterlik bir dize desteklenir.

hassas ayarlama için etkinleştirilmiş birden fazla Azure OpenAI bağlantınız varsa, kullanmak istediğiniz kaynağı seçin. Azure OpenAI kaynağınıza erişimi olan tüm kullanıcıların bu hassas modele erişebildiğini lütfen unutmayın.

  1. Sonra İleri'yi seçin.

    Modelde ince ayar yapmak için temel ayarların ekran görüntüsü.

Eğitim verilerinizi seçin

Sonraki adım, mevcut hazırlanmış eğitim verilerini seçmek veya modelinizi özelleştirirken kullanmak üzere yeni hazırlanmış eğitim verilerini karşıya yüklemektir. Eğitim verileri bölmesinde mevcut, daha önce karşıya yüklenen tüm veri kümeleri görüntülenir ve ayrıca yeni eğitim verilerini karşıya yükleme seçenekleri sağlanır.

Azure AI Studio'da model ince ayar sihirbazı için Eğitim verileri bölmesinin ekran görüntüsü.

  • Eğitim verileriniz zaten projenizdeyse Azure AI Studio'daki veriler'i seçin.

    • Eğitim verileri bölmesinde gösterilen listeden dosyayı seçin.
  • Eğitim verileriniz Zaten Azure OpenAI hizmetine yüklenmişse, Azure OpenAI Bağlan ion altında Azure OpenAI bağlantınızı seçin.

  • Modelinizde ince ayar yapmak üzere eğitim verilerini karşıya yüklemek için Verileri karşıya yükle'yi ve ardından Dosyayı karşıya yükle'yi seçin.

    • Tüm eğitim örneklerinizin çıkarım için beklenen biçimi izlediğinden emin olun. Modelleri etkili bir şekilde ayarlamak için dengeli ve farklı bir veri kümesi olduğundan emin olun. Bu, çeşitli senaryolar da dahil olmak üzere veri dengesini korumayı ve eğitim verilerini gerçek dünya beklentileriyle uyumlu olacak şekilde düzenli aralıklarla iyileştirmeyi ve sonuçta daha doğru ve dengeli model yanıtlarına yol açmayı içerir. Daha fazla bilgi için bkz . veri hazırlama .
    • Büyük veri dosyaları için Azure Blob deposundan içeri aktarmanızı öneririz. İstekler atomik olduğundan ve yeniden denenemediği veya sürdürülemediğinden, çok bölümlü formlar aracılığıyla karşıya yüklendiğinde büyük dosyalar kararsız hale gelebilir. Azure Blob Depolama hakkında daha fazla bilgi için bkz. Azure Blob Depolama nedir?

Not

Eğitim veri dosyaları JSONL dosyaları olarak biçimlendirilmelidir ve UTF-8'de bayt sırası işaretiyle (BOM) kodlanmalıdır. Dosyanın boyutu 512 MB'tan az olmalıdır.

Eğitim verilerini yerel olarak karşıya yükleme seçeneğinin ekran görüntüsü.

Dosyaları karşıya yükledikten sonra eğitim verilerinizin önizlemesini görürsünüz. Devam etmek için İleri'yi seçin.

Eğitim verileri önizlemesinin ekran görüntüsü.

Doğrulama verilerinizi seçin

İsteğe bağlı olarak, modelinize ince ayar yapmak için doğrulama verileri sağlamayı seçebilirsiniz. Doğrulama verilerini kullanmak istemiyorsanız Yok'a ve İleri'ye seçerek modelin gelişmiş seçeneklerine devam edebilirsiniz.

Aksi takdirde, bir doğrulama veri kümeniz varsa, modelinizde ince ayar yapmak için kullanmak üzere önceden yüklenmiş veriler arasından seçim yapabilir veya yeni hazırlanmış doğrulama verilerini karşıya yükleyebilirsiniz.

Not

Eğitim veri dosyalarına benzer şekilde doğrulama veri dosyalarının da JSONL dosyaları olarak biçimlendirilmesi ve UTF-8'de bayt sırası işareti (BOM) ile kodlanması gerekir. Dosyanın boyutu 512 MB'tan az olmalıdır.

Parametrelerinizi yapılandırma

İsteğe bağlı olarak, ince ayarlama işiniz için parametreleri yapılandırın. Şunlar kullanılabilir:

Ad Tür Açıklama
batch_size integer Eğitim için kullanılacak toplu iş boyutu. Toplu iş boyutu, tek ileri ve geri geçişi eğitmek için kullanılan eğitim örneklerinin sayısıdır. Genel olarak, daha büyük toplu iş boyutlarının daha büyük veri kümeleri için daha iyi çalışma eğiliminde olduğunu bulduk. Bu özelliğin varsayılan değeri ve en büyük değeri bir temel modele özeldir. Daha büyük bir toplu iş boyutu, model parametrelerinin daha az sıklıkta, ancak daha düşük varyansla güncelleştirildiğini gösterir. -1 olarak ayarlandığında, batch_size eğitim kümesindeki örneklerin %0,2'sini ve en yüksek değer 256 olarak hesaplanır.
learning_rate_multiplier Numara Eğitim için kullanılacak öğrenme oranı çarpanı. İnce ayarlama öğrenme oranı, ön eğitim için kullanılan özgün öğrenme oranıdır ve bu değerle çarpılır. Daha büyük öğrenme oranları, daha büyük toplu iş boyutlarıyla daha iyi performans gösterme eğilimindedir. En iyi sonuçları neyin ürettiğini görmek için 0,02 ile 0,2 aralığındaki değerlerle denemeler yapmanızı öneririz. Fazla uygunluktan kaçınmak için daha düşük bir öğrenme oranı yararlı olabilir.
n_epochs integer Modeli eğitmek için dönem sayısı. Dönem, eğitim veri kümesindeki bir tam döngüyü ifade eder. -1 olarak ayarlanırsa, dönem sayısı giriş verilerine göre dinamik olarak belirlenir.

Varsayılan yapılandırmadan ayrılmayı veya değerleri tercihinize göre özelleştirmeyi seçebilirsiniz. Yapılandırmalarınızı yapmayı bitirdikten sonra İleri'yi seçin.

Seçimlerinizi gözden geçirin ve modelinizi eğitin

Yeni ince ayarlı modelinizi eğitmeye başlamak için seçimlerinizi gözden geçirin ve Gönder'i seçin.

hassas ayarlı modelinizin durumunu denetleme

İnce ayarlama işinizi gönderdikten sonra, ince ayarlı modelinizle ilgili ayrıntıları içeren bir sayfa görürsünüz. Azure AI Studio'daki Modellerde İnce Ayarlama>Oluşturma> sayfasında ince ayarlı modeliniz hakkındaki durumu ve daha fazla bilgiyi bulabilirsiniz.

Hassas model durumunu ve diğer bilgileri içeren sayfanın ekran görüntüsü.

İşiniz sistemdeki diğer işlerin arkasında kuyruğa alınmış olabilir. Modelinizin eğitimi, modele ve veri kümesi boyutuna bağlı olarak dakikalar veya saatler sürebilir.

hassas modelinizi analiz etme

hassas ayarlama başarıyla tamamlandıktan sonra, Ayrıntılar sekmesinin altındaki ince ayarlı model sayfasından results.csv adlı bir sonuç dosyası indirebilirsiniz. Sonuç dosyasını kullanarak özel modelinizin eğitim ve doğrulama performansını analiz edebilirsiniz.

Sonuç dosyası, ince ayarlama işi tarafından gerçekleştirilen her eğitim adımı için bir üst bilgi satırı ve satır içeren bir CSV dosyasıdır. Sonuç dosyası aşağıdaki sütunları içerir:

Sütun adı Açıklama
step Eğitim adımının sayısı. Eğitim adımı, bir grup eğitim verisinde tek bir geçişi, ileri ve geriyi temsil eder.
train_loss Eğitim toplu işleminin kaybı.
training_accuracy Eğitim toplu işleminde modelin tahmin edilen belirteçlerinin gerçek tamamlama belirteçleriyle tam olarak eşleştiğini tamamlama yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,67 (3'ün 2'sinde) olarak ayarlanır.
train_mean_token_accuracy Eğitim toplu işlemindeki belirteçlerin model tarafından doğru tahmin edilen yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,83 (6'nın 5'i) olarak ayarlanır.
valid_loss Doğrulama toplu işleminin kaybı.
valid_accuracy Modelin tahmin edilen belirteçlerinin gerçek tamamlama belirteçleriyle tam olarak eşleşeceği doğrulama toplu işlemindeki tamamlanma yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,67 (3'ün 2'sinde) olarak ayarlanır.
validation_mean_token_accuracy Doğrulama toplu işlemindeki belirteçlerin model tarafından doğru tahmin edilen yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,83 (6'nın 5'i) olarak ayarlanır.

Ayrıca results.csv dosyanızdaki verileri, ince ayarlı modelinizin Ölçümler sekmesinin altında Azure AI Studio'da çizim olarak görüntüleyebilirsiniz. Eğitilen modelinizin bağlantısını seçtiğinizde üç grafik görürsünüz: kayıp, ortalama belirteç doğruluğu ve belirteç doğruluğu. Doğrulama verileri sağladıysanız, her iki veri kümesi de aynı çizimde görünür.

Zaman içinde kaybınızın azalmasını ve doğruluğunuzun artırılmasını arayın. Eğitim ve doğrulama verileriniz arasında fazla uygunluk gösterdiğiniz anlamına gelebilecek bir fark görürseniz. Daha az dönemle veya daha küçük bir öğrenme oranı çarpanıyla eğitimi deneyin.

hassas bir model dağıtma

Modeliniz hassas bir şekilde ayarlandıktan sonra modeli dağıtabilir ve kendi uygulamanızda kullanabilirsiniz. Azure AI Studio'daki dağıtımlar sayfasından veya oyun alanı sayfasından ince ayarlı bir model dağıtamazsınız. Şu anda ince ayarlanmış bir modeli dağıtmanın tek yolu bu modelin model ayrıntıları sayfasındandır.

Modeli dağıttığınızda modeli çıkarım için kullanılabilir hale getirirsiniz ve bu da saatlik barındırma ücretine neden olabilir. Bununla birlikte, hassas ayarlanmış modeller, kullanmaya hazır olana kadar Azure AI Studio'da hiçbir ücret ödemeden depolanabilir.

Önemli

Özelleştirilmiş bir modeli dağıttıktan sonra, herhangi bir zamanda dağıtım on beş (15) günden uzun süre etkin değilse dağıtım silinir. Model on beşten (15) gün önce dağıtıldıysa ve sürekli 15 günlük bir süre boyunca buna hiçbir tamamlama veya sohbet tamamlama çağrısı yapılmadıysa, özelleştirilmiş bir modelin dağıtımı devre dışı bırakılır.

Etkin olmayan bir dağıtımın silinmesi, temel alınan özelleştirilmiş modeli silmez veya etkilemez ve özelleştirilmiş model istediğiniz zaman yeniden dağıtılabilir. Azure OpenAI Hizmeti fiyatlandırmasında açıklandığı gibi, dağıtılan her özelleştirilmiş (ince ayarlı) model, modele tamamlama veya sohbet tamamlama çağrıları yapılıp yapılmamasına bakılmaksızın saatlik barındırma maliyetine neden olur. Azure OpenAI ile maliyetleri planlama ve yönetme hakkında daha fazla bilgi edinmek için Azure OpenAI Hizmeti maliyetlerini yönetmeyi planlama konusundaki kılavuza bakın.

Not

Hassas ayarlanmış bir model için yalnızca bir dağıtıma izin verilir. Zaten dağıtılmış ince ayarlı bir model seçerseniz bir hata iletisi görüntülenir.

Dağıtımınızın ilerleme durumunu Azure AI Studio'daki Dağıtımlar sayfasından izleyebilirsiniz.

Dağıtılan ince ayarlı modeli kullanma

Hassas ayarlı modeliniz dağıtıldıktan sonra, diğer dağıtılan modellerde olduğu gibi kullanabilirsiniz. Yeni dağıtımınızla denemeler yapmak için Azure AI Studio'daki Playground'ı kullanabilirsiniz. Ayrıca, kendi uygulamanızdan hassas ayarlı modelinizi çağırmak için REST API'yi de kullanabilirsiniz. Üretken yapay zeka uygulamanızı oluşturmak için istem akışınızda bu yeni ince ayarlı modeli kullanmaya bile başlayabilirsiniz.

Not

Sohbet modellerinde, ince ayarlı modelinize yol göstermek için kullandığınız sistem iletisi (oyun alanında dağıtılmış veya test için kullanılabilir) eğitim için kullandığınız sistem iletisiyle aynı olmalıdır. Farklı bir sistem iletisi kullanıyorsanız model beklendiği gibi performans göstermeyebilir.

Dağıtımlarınızı, hassas modellerinizi ve eğitim dosyalarınızı temizleyin

Hassas ayarlı modelinizle işiniz bittiğinde dağıtımı ve modeli silebilirsiniz. Gerekirse hizmete yüklediğiniz eğitim ve doğrulama dosyalarını da silebilirsiniz.

Hassas model dağıtımınızı silme

Önemli

Özelleştirilmiş bir modeli dağıttıktan sonra, herhangi bir zamanda dağıtım on beş (15) günden uzun süre etkin değilse dağıtım silinir. Model on beşten (15) gün önce dağıtıldıysa ve sürekli 15 günlük bir süre boyunca buna hiçbir tamamlama veya sohbet tamamlama çağrısı yapılmadıysa, özelleştirilmiş bir modelin dağıtımı devre dışı bırakılır.

Etkin olmayan bir dağıtımın silinmesi, temel alınan özelleştirilmiş modeli silmez veya etkilemez ve özelleştirilmiş model istediğiniz zaman yeniden dağıtılabilir. Azure OpenAI Hizmeti fiyatlandırmasında açıklandığı gibi, dağıtılan her özelleştirilmiş (ince ayarlı) model, modele tamamlama veya sohbet tamamlama çağrıları yapılıp yapılmamasına bakılmaksızın saatlik barındırma maliyetine neden olur. Azure OpenAI ile maliyetleri planlama ve yönetme hakkında daha fazla bilgi edinmek için Azure OpenAI Hizmeti maliyetlerini yönetmeyi planlama konusundaki kılavuza bakın.

Azure AI Studio'daki Dağıtımlar sayfasında ince ayarlı modelinizin dağıtımını silebilirsiniz. Silinecek dağıtımı seçin ve ardından sil'i seçerek dağıtımı silin.

hassas modelinizi silme

Azure AI Studio'daki hassas ayarlama sayfasında ince ayarlı bir modeli silebilirsiniz. Silinecek ince ayarlı modeli seçin ve ardından sil'i seçerek hassas ayarlanmış modeli silin.

Not

Mevcut bir dağıtımı varsa ince ayarlanmış bir modeli silemezsiniz. Hassas ayarlı modelinizi silebilmeniz için önce model dağıtımınızı silmeniz gerekir.

Eğitim dosyalarınızı silme

İsteğe bağlı olarak eğitim için yüklediğiniz eğitim ve doğrulama dosyalarını ve eğitim sırasında oluşturulan sonuç dosyalarını silebilirsiniz. Bunun için Azure OpenAI Studio'ya gitmeniz ve Yönetim>Verileri dosyaları bölmesine gitmeniz gerekir. Silinecek dosyayı seçin ve ardından sil'i seçerek dosyayı silin.

Önkoşullar

  • Azure OpenAI'nin ne zaman kullanılacağına ilişkin ince ayarlama kılavuzunu okuyun.
  • Azure aboneliği. Ücretsiz bir tane oluşturun.
  • İstenen Azure aboneliğinde Azure OpenAI'ya erişim verilir.
  • Azure OpenAI kaynağı. Daha fazla bilgi için bkz . Azure OpenAI ile kaynak oluşturma ve model dağıtma.
  • Aşağıdaki Python kitaplıkları: os, json, requests, openai.
  • OpenAI Python kitaplığı en az 0.28.1 sürümü olmalıdır.
  • Erişimde ince ayar yapmak için Bilişsel Hizmetler OpenAI Katkıda Bulunanı gerekir.
  • Kotayı görüntüleme ve Azure OpenAI Studio'da modelleri dağıtma erişiminiz yoksa ek izinlere ihtiyacınız olacaktır.

Not

Şu anda Azure OpenAI Hizmeti'ne erişmek için bir uygulama göndermeniz gerekir. Erişime başvurmak için bu formu doldurun.

Modeller

Aşağıdaki modeller ince ayarlamayı destekler:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)

İsterseniz, önceden ince ayarlanmış bir modele ince ayar yapabilirsiniz. Base-model.ft-{jobid} olarak biçimlendirilir.

Özel bir ince ayarlı modele sahip model seçeneklerinin ekran görüntüsü.

Şu anda hangi bölgelerin ince ayarlamayı desteklediğini denetlemek için modeller sayfasına bakın.

Python SDK'sı için iş akışını gözden geçirin

Python SDK'sını Azure OpenAI ile kullanmaya yönelik ince ayar iş akışını gözden geçirmek için biraz zaman ayırın:

  1. Eğitim ve doğrulama verilerinizi hazırlayın.
  2. Bir temel model seçin.
  3. Eğitim verilerinizi karşıya yükleyin.
  4. Yeni özelleştirilmiş modelinizi eğitin.
  5. Özelleştirilmiş modelinizin durumunu denetleyin.
  6. Özelleştirilmiş modelinizi kullanmak üzere dağıtın.
  7. Özelleştirilmiş modelinizi kullanın.
  8. İsteğe bağlı olarak, performans ve uyum için özelleştirilmiş modelinizi analiz edin.

Eğitim ve doğrulama verilerinizi hazırlama

Eğitim verileriniz ve doğrulama veri kümeleriniz, modelin nasıl performans göstermesini istediğinize ilişkin giriş ve çıkış örneklerinden oluşur.

Farklı model türleri farklı bir eğitim verileri biçimi gerektirir.

Kullandığınız eğitim ve doğrulama verileri JSON Satırları (JSONL) belgesi olarak biçimlendirilmelidir . İnce gpt-35-turbo-0613 ayar veri kümesinin Sohbet tamamlama api'sinin kullandığı konuşma biçiminde biçimlendirilmesi gerekir.

bir ince ayar gpt-35-turbo-0613 için adım adım bir adım kılavuz isterseniz lütfen Azure OpenAI ince ayarlama öğreticisine bakın

Örnek dosya biçimi

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

Çok aşamalı sohbet dosyası biçimi

Jsonl eğitim dosyanızın tek bir satırındaki bir konuşmanın birden çok dönüşü de desteklenir. Belirli yardımcı iletilerinde ince ayarlamayı atlamak için isteğe bağlı weight anahtar değer çiftini ekleyin. Şu anda weight 0 veya 1 olarak ayarlanabilir.

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}

JSONL biçimine ek olarak, eğitim ve doğrulama veri dosyalarının UTF-8'de kodlanması ve bayt sırası işareti (BOM) içermesi gerekir. Dosyanın boyutu 512 MB'tan az olmalıdır.

Eğitim ve doğrulama veri kümelerinizi oluşturma

Ne kadar çok eğitim örneğine sahipseniz o kadar iyi. İnce ayarlama işleri en az 10 eğitim örneği olmadan devam etmez, ancak bu kadar küçük bir sayı model yanıtlarını belirgin bir şekilde etkilemek için yeterli değildir. Başarılı olmak için binlerce olmasa da yüzlerce eğitim örneği sağlamak en iyi yöntemdir.

Genel olarak, veri kümesi boyutunun iki katına çıkarılması model kalitesinde doğrusal bir artışa yol açabilir. Ancak düşük kaliteli örneklerin performansı olumsuz etkileyeebileceğini unutmayın. Modeli büyük miktarda iç veri üzerinde eğitirseniz, önce veri kümesini yalnızca en yüksek kaliteli örnekler için ayıklamadan beklenenden çok daha kötü performans gösteren bir modelle sonuçlanabilirsiniz.

Eğitim verilerinizi karşıya yükleme

Sonraki adım, mevcut hazırlanmış eğitim verilerini seçmek veya modelinizi özelleştirirken kullanmak üzere yeni hazırlanmış eğitim verilerini karşıya yüklemektir. Eğitim verilerinizi hazırladıktan sonra dosyalarınızı hizmete yükleyebilirsiniz. Eğitim verilerini karşıya yüklemenin iki yolu vardır:

Büyük veri dosyaları için Azure Blob deposundan içeri aktarmanızı öneririz. İstekler atomik olduğundan ve yeniden denenemediği veya sürdürülemediğinden, çok bölümlü formlar aracılığıyla karşıya yüklendiğinde büyük dosyalar kararsız hale gelebilir. Azure Blob depolama hakkında daha fazla bilgi için bkz. Azure Blob depolama nedir?

Not

Eğitim veri dosyaları JSONL dosyaları olarak biçimlendirilmelidir ve UTF-8'de bayt sırası işaretiyle (BOM) kodlanmalıdır. Dosyanın boyutu 512 MB'tan az olmalıdır.

Aşağıdaki Python örneği, Python SDK'sını kullanarak yerel eğitim ve doğrulama dosyalarını karşıya yükler ve döndürülen dosya kimliklerini alır.

# Upload fine-tuning files

import os
from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-02-01"  # This API version or later is required to access fine-tuning for turbo/babbage-002/davinci-002
)

training_file_name = 'training_set.jsonl'
validation_file_name = 'validation_set.jsonl'

# Upload the training and validation dataset files to Azure OpenAI with the SDK.

training_response = client.files.create(
    file=open(training_file_name, "rb"), purpose="fine-tune"
)
training_file_id = training_response.id

validation_response = client.files.create(
    file=open(validation_file_name, "rb"), purpose="fine-tune"
)
validation_file_id = validation_response.id

print("Training file ID:", training_file_id)
print("Validation file ID:", validation_file_id)

Özelleştirilmiş model oluşturma

Eğitim ve doğrulama dosyalarınızı karşıya yükledikten sonra ince ayar işini başlatmaya hazır olursunuz.

Aşağıdaki Python kodu, Python SDK'sı ile yeni bir ince ayar işi oluşturma işleminin bir örneğini gösterir:

response = client.fine_tuning.jobs.create(
    training_file=training_file_id,
    validation_file=validation_file_id,
    model="gpt-35-turbo-0613" # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters. 
)

job_id = response.id

# You can use the job ID to monitor the status of the fine-tuning job.
# The fine-tuning job will take some time to start and complete.

print("Job ID:", response.id)
print("Status:", response.id)
print(response.model_dump_json(indent=2))

Ayrıca, ince ayar işleminin daha fazla denetimini almak için hiper parametreler gibi ek isteğe bağlı parametreler geçirebilirsiniz. İlk eğitim için bu parametreleri belirtmeden mevcut olan otomatik varsayılan değerleri kullanmanızı öneririz.

İnce ayar için desteklenen geçerli hiper parametreler şunlardır:

Ad Tür Açıklama
batch_size integer Eğitim için kullanılacak toplu iş boyutu. Toplu iş boyutu, tek ileri ve geri geçişi eğitmek için kullanılan eğitim örneklerinin sayısıdır. Genel olarak, daha büyük toplu iş boyutlarının daha büyük veri kümeleri için daha iyi çalışma eğiliminde olduğunu bulduk. Bu özelliğin varsayılan değeri ve en büyük değeri bir temel modele özeldir. Daha büyük bir toplu iş boyutu, model parametrelerinin daha az sıklıkta, ancak daha düşük varyansla güncelleştirildiğini gösterir.
learning_rate_multiplier Numara Eğitim için kullanılacak öğrenme oranı çarpanı. İnce ayarlama öğrenme oranı, ön eğitim için kullanılan özgün öğrenme oranıdır ve bu değerle çarpılır. Daha büyük öğrenme oranları, daha büyük toplu iş boyutlarıyla daha iyi performans gösterme eğilimindedir. En iyi sonuçları neyin ürettiğini görmek için 0,02 ile 0,2 aralığındaki değerlerle denemeler yapmanızı öneririz. Fazla uygunluktan kaçınmak için daha küçük bir öğrenme oranı yararlı olabilir.
n_epochs integer Modeli eğitmek için dönem sayısı. Dönem, eğitim veri kümesindeki bir tam döngüyü ifade eder.

OpenAI Python API'sinin 1.x sürümüyle özel hiper parametreler ayarlamak için:

from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-02-01"  # This API version or later is required to access fine-tuning for turbo/babbage-002/davinci-002
)

client.fine_tuning.jobs.create(
  training_file="file-abc123", 
  model="gpt-35-turbo-0613", # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters. 
  hyperparameters={
    "n_epochs":2
  }
)

İş durumunu ince ayarlamayı denetleme

response = client.fine_tuning.jobs.retrieve(job_id)

print("Job ID:", response.id)
print("Status:", response.status)
print(response.model_dump_json(indent=2))

Özelleştirilmiş model dağıtma

İnce ayar işi başarılı olduğunda, yanıt gövdesindeki değişkenin fine_tuned_model değeri özelleştirilmiş modelinizin adına ayarlanır. Modeliniz artık Modeller API'sinden de bulunabilir. Ancak, özelleştirilmiş modeliniz dağıtılana kadar özelleştirilmiş modelinize tamamlama çağrıları yapamazsınız. Özelleştirilmiş modelinizi tamamlama çağrılarıyla kullanılabilir hale getirmek için dağıtmanız gerekir.

Önemli

Özelleştirilmiş bir modeli dağıttıktan sonra, herhangi bir zamanda dağıtım on beş (15) günden uzun süre etkin değilse dağıtım silinir. Model on beşten (15) gün önce dağıtıldıysa ve sürekli 15 günlük bir süre boyunca buna hiçbir tamamlama veya sohbet tamamlama çağrısı yapılmadıysa, özelleştirilmiş bir modelin dağıtımı devre dışı bırakılır.

Etkin olmayan bir dağıtımın silinmesi, temel alınan özelleştirilmiş modeli silmez veya etkilemez ve özelleştirilmiş model istediğiniz zaman yeniden dağıtılabilir. Azure OpenAI Hizmeti fiyatlandırmasında açıklandığı gibi, dağıtılan her özelleştirilmiş (ince ayarlı) model, modele tamamlama veya sohbet tamamlama çağrıları yapılıp yapılmamasına bakılmaksızın saatlik barındırma maliyetine neden olur. Azure OpenAI ile maliyetleri planlama ve yönetme hakkında daha fazla bilgi edinmek için Azure OpenAI Hizmeti maliyetlerini yönetmeyi planlama konusundaki kılavuza bakın.

Özelleştirilmiş modelinizi dağıtmak için Azure OpenAI veya Azure CLI kullanabilirsiniz.

Not

Özelleştirilmiş model için yalnızca bir dağıtıma izin verilir. Zaten dağıtılmış özelleştirilmiş bir modeli seçerseniz bir hata oluşur.

Hassas ayarlı modeli dağıtma

Önceki SDK komutlarından farklı olarak dağıtım, ayrı yetkilendirme, farklı bir API yolu ve farklı bir API sürümü gerektiren denetim düzlemi API'sini kullanarak yapılmalıdır.

değişken Tanım
token Yetkilendirme belirteci oluşturmanın birden çok yolu vardır. İlk test için en kolay yöntem, Cloud Shell'i Azure portalından başlatmaktır. Ardından az account get-access-token komutunu çalıştırın. Bu belirteci API testi için geçici yetkilendirme belirteciniz olarak kullanabilirsiniz. Bunu yeni bir ortam değişkeninde depolamanızı öneririz
aboneliği İlişkili Azure OpenAI kaynağının abonelik kimliği
resource_group Azure OpenAI kaynağınızın kaynak grubu adı
resource_name Azure OpenAI kaynak adı
model_deployment_name Yeni hassas model dağıtımınız için özel ad. Bu, sohbet tamamlama çağrıları yapılırken kodunuzda başvurulacak addır.
fine_tuned_model Önceki adımda ince ayar iş sonuçlarınızdan bu değeri alın. gibi gpt-35-turbo-0613.ft-b044a9d3cf9c4228b5d393567f693b83görünecektir. Bu değeri deploy_data json'a eklemeniz gerekir.
import json
import os
import requests

token= os.getenv("<TOKEN>") 
subscription = "<YOUR_SUBSCRIPTION_ID>"  
resource_group = "<YOUR_RESOURCE_GROUP_NAME>"
resource_name = "<YOUR_AZURE_OPENAI_RESOURCE_NAME>"
model_deployment_name ="gpt-35-turbo-ft" # custom deployment name that you will use to reference the model when making inference calls.

deploy_params = {'api-version': "2023-05-01"} 
deploy_headers = {'Authorization': 'Bearer {}'.format(token), 'Content-Type': 'application/json'}

deploy_data = {
    "sku": {"name": "standard", "capacity": 1}, 
    "properties": {
        "model": {
            "format": "OpenAI",
            "name": <"fine_tuned_model">, #retrieve this value from the previous call, it will look like gpt-35-turbo-0613.ft-b044a9d3cf9c4228b5d393567f693b83
            "version": "1"
        }
    }
}
deploy_data = json.dumps(deploy_data)

request_url = f'https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}'

print('Creating a new deployment...')

r = requests.put(request_url, params=deploy_params, headers=deploy_headers, data=deploy_data)

print(r)
print(r.reason)
print(r.json())

Bölgeler arası dağıtım

İnce ayar, ince ayarlı modelin başlangıçta ince ayarlı olduğundan farklı bir bölgeye dağıtılmasına destek olur. Ayrıca farklı bir aboneliğe/bölgeye de dağıtabilirsiniz.

Tek sınırlamalar, yeni bölgenin ince ayarlamayı da desteklemesi ve abonelikler arası dağıtım yaparken dağıtım için yetkilendirme belirtecini oluşturan hesabın hem kaynak hem de hedef aboneliklere erişimi olması gerektiğidir.

Aşağıda, bir abonelikte/bölgede ince ayarlı bir modeli başka bir aboneliğe dağıtma örneği verilmiştir.

import json
import os
import requests

token= os.getenv("<TOKEN>") 

subscription = "<DESTINATION_SUBSCRIPTION_ID>"  
resource_group = "<DESTINATION_RESOURCE_GROUP_NAME>"
resource_name = "<DESTINATION_AZURE_OPENAI_RESOURCE_NAME>"

source_subscription = "<SOURCE_SUBSCRIPTION_ID>"
source_resource_group = "<SOURCE_RESOURCE_GROUP>"
source_resource = "<SOURCE_RESOURCE>"


source = f'/subscriptions/{source_subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.CognitiveServices/accounts/{source_resource}'

model_deployment_name ="gpt-35-turbo-ft" # custom deployment name that you will use to reference the model when making inference calls.

deploy_params = {'api-version': "2023-05-01"} 
deploy_headers = {'Authorization': 'Bearer {}'.format(token), 'Content-Type': 'application/json'}



deploy_data = {
    "sku": {"name": "standard", "capacity": 1}, 
    "properties": {
        "model": {
            "format": "OpenAI",
            "name": <"FINE_TUNED_MODEL_NAME">, # This value will look like gpt-35-turbo-0613.ft-0ab3f80e4f2242929258fff45b56a9ce 
            "version": "1",
            "source": source
        }
    }
}
deploy_data = json.dumps(deploy_data)

request_url = f'https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}'

print('Creating a new deployment...')

r = requests.put(request_url, params=deploy_params, headers=deploy_headers, data=deploy_data)

print(r)
print(r.reason)
print(r.json())

Aynı abonelikle farklı bölgeler arasında dağıtım yapmak için hem kaynak hem de hedef değişkenler için yalnızca aboneliğiniz ve kaynak gruplarınız aynı olur ve yalnızca kaynak ve hedef kaynak adlarının benzersiz olması gerekir.

Azure CLI ile model dağıtma

Aşağıdaki örnekte, özelleştirilmiş modelinizi dağıtmak için Azure CLI'nin nasıl kullanılacağı gösterilmektedir. Azure CLI ile, özelleştirilmiş modelinizin dağıtımı için bir ad belirtmeniz gerekir. Özelleştirilmiş modelleri dağıtmak için Azure CLI'yi kullanma hakkında daha fazla bilgi için bkz az cognitiveservices account deployment. .

Bu Azure CLI komutunu bir konsol penceresinde çalıştırmak için aşağıdaki <yer tutucuları> özelleştirilmiş modelinize karşılık gelen değerlerle değiştirmeniz gerekir:

Yer tutucu Değer
<YOUR_AZURE_SUBSCRIPTION> Azure aboneliğinizin adı veya kimliği.
<YOUR_RESOURCE_GROUP> Azure kaynak grubunuzun adı.
<YOUR_RESOURCE_NAME> Azure OpenAI kaynağınızın adı.
<YOUR_DEPLOYMENT_NAME> Model dağıtımınız için kullanmak istediğiniz ad.
<YOUR_FINE_TUNED_MODEL_ID> Özelleştirilmiş modelinizin adı.
az cognitiveservices account deployment create 
    --resource-group <YOUR_RESOURCE_GROUP>
    --name <YOUR_RESOURCE_NAME>  
    --deployment-name <YOUR_DEPLOYMENT_NAME>
    --model-name <YOUR_FINE_TUNED_MODEL_ID>
    --model-version "1" 
    --model-format OpenAI 
    --sku-capacity "1" 
    --sku-name "Standard"

Dağıtılan özelleştirilmiş modeli kullanma

Özel modeliniz dağıtıldıktan sonra diğer dağıtılan modellerde olduğu gibi kullanabilirsiniz. Yeni dağıtımınızla denemeler yapmak için Azure OpenAI Studio'daki Playgrounds'ı kullanabilirsiniz. Ve gibi özel modelinizle, dağıtılan diğer modellerle olduğu gibi temperaturemax_tokensaynı parametreleri kullanmaya devam edebilirsiniz. Hassas ayarlı babbage-002 ve davinci-002 modeller için Tamamlamalar oyun alanı ve Tamamlamalar API'sini kullanacaksınız. Hassas ayarlı gpt-35-turbo-0613 modeller için Sohbet oyun alanı ve Sohbet tamamlama API'sini kullanacaksınız.

import os
from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-02-01"
)

response = client.chat.completions.create(
    model="gpt-35-turbo-ft", # model = "Custom deployment name you chose for your fine-tuning model"
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

print(response.choices[0].message.content)

Özelleştirilmiş modelinizi analiz etme

Azure OpenAI, tamamlandıktan sonra her ince ayar işine results.csv adlı bir sonuç dosyası ekler. Sonuç dosyasını kullanarak özelleştirilmiş modelinizin eğitim ve doğrulama performansını analiz edebilirsiniz. Sonuç dosyasının dosya kimliği her özelleştirilmiş model için listelenir ve Python SDK'sını kullanarak dosya kimliğini alabilir ve analiz için sonuç dosyasını indirebilirsiniz.

Aşağıdaki Python örneği, özelleştirilmiş modelinizin ince ayar işine eklenen ilk sonuç dosyasının dosya kimliğini alır ve ardından python SDK'sını kullanarak dosyayı analiz için çalışma dizininize indirir.

# Retrieve the file ID of the first result file from the fine-tuning job
# for the customized model.
response = client.fine_tuning.jobs.retrieve(job_id)
if response.status == 'succeeded':
    result_file_id = response.result_files[0]

retrieve = client.files.retrieve(result_file_id)

# Download the result file.
print(f'Downloading result file: {result_file_id}')

with open(retrieve.filename, "wb") as file:
    result = client.files.content(result_file_id).read()
    file.write(result)

Sonuç dosyası, ince ayarlama işi tarafından gerçekleştirilen her eğitim adımı için bir üst bilgi satırı ve satır içeren bir CSV dosyasıdır. Sonuç dosyası aşağıdaki sütunları içerir:

Sütun adı Açıklama
step Eğitim adımının sayısı. Eğitim adımı, bir grup eğitim verisinde tek bir geçişi, ileri ve geriyi temsil eder.
train_loss Eğitim toplu işleminin kaybı.
training_accuracy Eğitim toplu işleminde modelin tahmin edilen belirteçlerinin gerçek tamamlama belirteçleriyle tam olarak eşleştiğini tamamlama yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,67 (3'ün 2'sinde) olarak ayarlanır.
train_mean_token_accuracy Eğitim toplu işlemindeki belirteçlerin model tarafından doğru tahmin edilen yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,83 (6'nın 5'i) olarak ayarlanır.
valid_loss Doğrulama toplu işleminin kaybı.
valid_accuracy Modelin tahmin edilen belirteçlerinin gerçek tamamlama belirteçleriyle tam olarak eşleşeceği doğrulama toplu işlemindeki tamamlanma yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,67 (3'ün 2'sinde) olarak ayarlanır.
validation_mean_token_accuracy Doğrulama toplu işlemindeki belirteçlerin model tarafından doğru tahmin edilen yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,83 (6'nın 5'i) olarak ayarlanır.

Ayrıca results.csv dosyanızdaki verileri Azure OpenAI Studio'da çizim olarak görüntüleyebilirsiniz. Eğitilen modelinizin bağlantısını seçtiğinizde üç grafik görürsünüz: kayıp, ortalama belirteç doğruluğu ve belirteç doğruluğu. Doğrulama verileri sağladıysanız, her iki veri kümesi de aynı çizimde görünür.

Zaman içinde kaybınızın azalmasını ve doğruluğunuzun artırılmasını arayın. Eğitim ve doğrulama verileriniz arasında bir fark görürseniz, bu fazla uygunluk gösterdiğinizi gösterebilir. Daha az dönemle veya daha küçük bir öğrenme oranı çarpanıyla eğitimi deneyin.

Dağıtımlarınızı, özelleştirilmiş modellerinizi ve eğitim dosyalarınızı temizleme

Özelleştirilmiş modelinizle işiniz bittiğinde dağıtımı ve modeli silebilirsiniz. Gerekirse hizmete yüklediğiniz eğitim ve doğrulama dosyalarını da silebilirsiniz.

Model dağıtımınızı silme

Önemli

Özelleştirilmiş bir modeli dağıttıktan sonra, herhangi bir zamanda dağıtım on beş (15) günden uzun süre etkin değilse dağıtım silinir. Model on beşten (15) gün önce dağıtıldıysa ve sürekli 15 günlük bir süre boyunca buna hiçbir tamamlama veya sohbet tamamlama çağrısı yapılmadıysa, özelleştirilmiş bir modelin dağıtımı devre dışı bırakılır.

Etkin olmayan bir dağıtımın silinmesi, temel alınan özelleştirilmiş modeli silmez veya etkilemez ve özelleştirilmiş model istediğiniz zaman yeniden dağıtılabilir. Azure OpenAI Hizmeti fiyatlandırmasında açıklandığı gibi, dağıtılan her özelleştirilmiş (ince ayarlı) model, modele tamamlama veya sohbet tamamlama çağrıları yapılıp yapılmamasına bakılmaksızın saatlik barındırma maliyetine neden olur. Azure OpenAI ile maliyetleri planlama ve yönetme hakkında daha fazla bilgi edinmek için Azure OpenAI Hizmeti maliyetlerini yönetmeyi planlama konusundaki kılavuza bakın.

Özelleştirilmiş modelinizin dağıtımını silmek için çeşitli yöntemler kullanabilirsiniz:

Özelleştirilmiş modelinizi silme

Benzer şekilde, özelleştirilmiş modelinizi silmek için çeşitli yöntemler kullanabilirsiniz:

Not

Özelleştirilmiş bir modelin var olan bir dağıtımı varsa bu modeli silemezsiniz. Özelleştirilmiş modelinizi silebilmeniz için önce model dağıtımınızı silmeniz gerekir.

Eğitim dosyalarınızı silme

İsteğe bağlı olarak, eğitim için karşıya yüklediğiniz eğitim ve doğrulama dosyalarını ve eğitim sırasında oluşturulan sonuç dosyalarını Azure OpenAI aboneliğinizden silebilirsiniz. Eğitim, doğrulama ve sonuç dosyalarınızı silmek için aşağıdaki yöntemleri kullanabilirsiniz:

Aşağıdaki Python örneği, özelleştirilmiş modelinizin eğitim, doğrulama ve sonuç dosyalarını silmek için Python SDK'sını kullanır:

print('Checking for existing uploaded files.')
results = []

# Get the complete list of uploaded files in our subscription.
files = openai.File.list().data
print(f'Found {len(files)} total uploaded files in the subscription.')

# Enumerate all uploaded files, extracting the file IDs for the
# files with file names that match your training dataset file and
# validation dataset file names.
for item in files:
    if item["filename"] in [training_file_name, validation_file_name, result_file_name]:
        results.append(item["id"])
print(f'Found {len(results)} already uploaded files that match our files')

# Enumerate the file IDs for our files and delete each file.
print(f'Deleting already uploaded files.')
for id in results:
    openai.File.delete(sid = id)

Sürekli ince ayar

İnce ayarlı bir model oluşturduktan sonra, daha fazla ince ayar yapmak için modeli zaman içinde iyileştirmeye devam etmek isteyebilirsiniz. Sürekli ince ayarlama, temel model olarak önceden ayarlanmış bir modeli seçme ve yeni eğitim örnekleri kümesinde daha fazla ince ayar yapma yinelemeli bir işlemdir.

Daha önce ince ayar yaptığınız bir modelde ince ayarlama yapmak için özelleştirilmiş bir model oluşturma başlığı altında açıklanan işlemle aynı işlemi kullanırsınız, ancak genel bir temel modelin adını belirtmek yerine zaten hassas ayarlanmış modelinizin kimliğini belirtirsiniz. Hassas ayarlanmış model kimliği şuna benzer: gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7

from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-02-01"  
)

response = client.fine_tuning.jobs.create(
    training_file=training_file_id,
    validation_file=validation_file_id,
    model="gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7" # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters. 
)

job_id = response.id

# You can use the job ID to monitor the status of the fine-tuning job.
# The fine-tuning job will take some time to start and complete.

print("Job ID:", response.id)
print("Status:", response.id)
print(response.model_dump_json(indent=2))

Ayrıca, ince ayarlı modelinizin farklı yinelemelerini ayırt etmek için parametresini de eklemenizi suffix öneririz. suffix bir dize alır ve ince ayarlı modeli tanımlamak için ayarlanır. OpenAI Python API'siyle, ince ayarlı model adınıza eklenecek en fazla 18 karakterlik bir dize desteklenir.

Mevcut hassas modelinizin kimliğinden emin değilseniz bu bilgiler Azure OpenAI Studio'nun Modeller sayfasında bulunabilir veya REST API kullanarak belirli bir Azure OpenAI kaynağı için model listesi oluşturabilirsiniz.

Önkoşullar

  • Azure OpenAI'nin ne zaman kullanılacağına ilişkin ince ayarlama kılavuzunu okuyun.
  • Azure aboneliği. Ücretsiz bir tane oluşturun.
  • İstenen Azure aboneliğinde Azure OpenAI'ya erişim verilir.
  • Azure OpenAI kaynağı. Daha fazla bilgi için bkz . Azure OpenAI ile kaynak oluşturma ve model dağıtma.
  • Erişimde ince ayar yapmak için Bilişsel Hizmetler OpenAI Katkıda Bulunanı gerekir.
  • Kotayı görüntüleme ve Azure OpenAI Studio'da modelleri dağıtma erişiminiz yoksa ek izinler gerekir.

Not

Şu anda Azure OpenAI Hizmeti'ne erişmek için bir uygulama göndermeniz gerekir. Erişime başvurmak için bu formu doldurun.

Modeller

Aşağıdaki modeller ince ayarlamayı destekler:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)

Şu anda hangi bölgelerin ince ayarlamayı desteklediğini denetlemek için modeller sayfasına bakın.

REST API için iş akışını gözden geçirme

Rest APIS ve Python'ı Azure OpenAI ile kullanmak için ince ayar iş akışını gözden geçirmek için biraz bekleyin:

  1. Eğitim ve doğrulama verilerinizi hazırlayın.
  2. Bir temel model seçin.
  3. Eğitim verilerinizi karşıya yükleyin.
  4. Yeni özelleştirilmiş modelinizi eğitin.
  5. Özelleştirilmiş modelinizin durumunu denetleyin.
  6. Özelleştirilmiş modelinizi kullanmak üzere dağıtın.
  7. Özelleştirilmiş modelinizi kullanın.
  8. İsteğe bağlı olarak, performans ve uyum için özelleştirilmiş modelinizi analiz edin.

Eğitim ve doğrulama verilerinizi hazırlama

Eğitim verileriniz ve doğrulama veri kümeleriniz, modelin nasıl performans göstermesini istediğinize ilişkin giriş ve çıkış örneklerinden oluşur.

Farklı model türleri farklı bir eğitim verileri biçimi gerektirir.

Kullandığınız eğitim ve doğrulama verileri JSON Satırları (JSONL) belgesi olarak biçimlendirilmelidir . ve diğer ilgili modeller için gpt-35-turbo-0613 ince ayar veri kümesinin Sohbet tamamlama API'sinin kullandığı konuşma biçiminde biçimlendirilmesi gerekir.

bir ince ayar gpt-35-turbo-0613 için adım adım bir adım kılavuz isterseniz lütfen Azure OpenAI ince ayarlama öğreticisine bakın

Örnek dosya biçimi

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

Çok aşamalı sohbet dosyası biçimi

Jsonl eğitim dosyanızın tek bir satırındaki bir konuşmanın birden çok dönüşü de desteklenir. Belirli yardımcı iletilerinde ince ayarlamayı atlamak için isteğe bağlı weight anahtar değer çiftini ekleyin. Şu anda weight 0 veya 1 olarak ayarlanabilir.

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}

JSONL biçimine ek olarak, eğitim ve doğrulama veri dosyalarının UTF-8'de kodlanması ve bayt sırası işareti (BOM) içermesi gerekir. Dosyanın boyutu 512 MB'tan az olmalıdır.

Eğitim ve doğrulama veri kümelerinizi oluşturma

Ne kadar çok eğitim örneğine sahipseniz o kadar iyi. İnce ayarlama işleri en az 10 eğitim örneği olmadan devam etmez, ancak bu kadar küçük bir sayı model yanıtlarını belirgin bir şekilde etkilemek için yeterli değildir. Başarılı olmak için binlerce olmasa da yüzlerce eğitim örneği sağlamak en iyi yöntemdir.

Genel olarak, veri kümesi boyutunun iki katına çıkarılması model kalitesinde doğrusal bir artışa yol açabilir. Ancak düşük kaliteli örneklerin performansı olumsuz etkileyeebileceğini unutmayın. Yalnızca en yüksek kaliteli örnekler için veri kümesini ayıklamadan modeli büyük miktarda iç veri üzerinde eğitirseniz, beklenenden çok daha kötü performans gösteren bir modelle sonuçlanabilirsiniz.

Temel modeli seçin

Özel model oluşturmanın ilk adımı bir temel model seçmektir. Temel model bölmesi, özel modeliniz için kullanılacak bir temel model seçmenize olanak tanır. Seçiminiz modelinizin hem performansını hem de maliyetini etkiler.

Temel model türü açılan listesinden temel modeli seçin ve ardından devam etmek için İleri'yi seçin.

Aşağıdaki kullanılabilir temel modellerden birinden özel bir model oluşturabilirsiniz:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)

İsterseniz, önceden ince ayarlanmış bir modele ince ayar yapabilirsiniz. Base-model.ft-{jobid} olarak biçimlendirilir.

Özel bir ince ayarlı modele sahip model seçeneklerinin ekran görüntüsü.

İnce ayarlı olabilecek temel modellerimiz hakkında daha fazla bilgi için bkz . Modeller.

Eğitim verilerinizi karşıya yükleme

Sonraki adım, mevcut hazırlanmış eğitim verilerini seçmek veya modelinizde ince ayarlama yaparken kullanmak üzere yeni hazırlanmış eğitim verilerini karşıya yüklemektir. Eğitim verilerinizi hazırladıktan sonra dosyalarınızı hizmete yükleyebilirsiniz. Eğitim verilerini karşıya yüklemenin iki yolu vardır:

Büyük veri dosyaları için Azure Blob deposundan içeri aktarmanızı öneririz. İstekler atomik olduğundan ve yeniden denenemediği veya sürdürülemediğinden, çok bölümlü formlar aracılığıyla karşıya yüklendiğinde büyük dosyalar kararsız hale gelebilir. Azure Blob depolama hakkında daha fazla bilgi için bkz. Azure Blob depolama nedir?

Not

Eğitim veri dosyaları JSONL dosyaları olarak biçimlendirilmelidir ve UTF-8'de bayt sırası işaretiyle (BOM) kodlanmalıdır. Dosyanın boyutu 512 MB'tan az olmalıdır.

Eğitim verilerini karşıya yükleme

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/files?api-version=2023-12-01-preview \
  -H "Content-Type: multipart/form-data" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -F "purpose=fine-tune" \
  -F "file=@C:\\fine-tuning\\training_set.jsonl;type=application/json"

Doğrulama verilerini karşıya yükleme

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/files?api-version=2023-12-01-preview \
  -H "Content-Type: multipart/form-data" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -F "purpose=fine-tune" \
  -F "file=@C:\\fine-tuning\\validation_set.jsonl;type=application/json"

Özelleştirilmiş model oluşturma

Eğitim ve doğrulama dosyalarınızı karşıya yükledikten sonra ince ayar işini başlatmaya hazırsınız demektir. Aşağıdaki kodda REST API ile yeni bir ince ayar işi oluşturma örneği gösterilmektedir:

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{
    "model": "gpt-35-turbo-0613", 
    "training_file": "<TRAINING_FILE_ID>", 
    "validation_file": "'<VALIDATION_FILE_ID>"
}'

Ayrıca, ince ayar işleminin daha fazla denetimini almak için hiper parametreler gibi ek isteğe bağlı parametreler geçirebilirsiniz. İlk eğitim için bu parametreleri belirtmeden mevcut olan otomatik varsayılan değerleri kullanmanızı öneririz.

İnce ayar için desteklenen geçerli hiper parametreler şunlardır:

Ad Tür Açıklama
batch_size integer Eğitim için kullanılacak toplu iş boyutu. Toplu iş boyutu, tek ileri ve geri geçişi eğitmek için kullanılan eğitim örneklerinin sayısıdır. Genel olarak, daha büyük toplu iş boyutlarının daha büyük veri kümeleri için daha iyi çalışma eğiliminde olduğunu bulduk. Bu özelliğin varsayılan değeri ve en büyük değeri bir temel modele özeldir. Daha büyük bir toplu iş boyutu, model parametrelerinin daha az sıklıkta, ancak daha düşük varyansla güncelleştirildiğini gösterir.
learning_rate_multiplier Numara Eğitim için kullanılacak öğrenme oranı çarpanı. İnce ayarlama öğrenme oranı, ön eğitim için kullanılan özgün öğrenme oranıdır ve bu değerle çarpılır. Daha büyük öğrenme oranları, daha büyük toplu iş boyutlarıyla daha iyi performans gösterme eğilimindedir. En iyi sonuçları neyin ürettiğini görmek için 0,02 ile 0,2 aralığındaki değerlerle denemeler yapmanızı öneririz. Fazla uygunluktan kaçınmak için daha küçük bir öğrenme oranı yararlı olabilir.
n_epochs integer Modeli eğitmek için dönem sayısı. Dönem, eğitim veri kümesindeki bir tam döngüyü ifade eder.

Özelleştirilmiş modelinizin durumunu denetleme

bir ince ayar işi başlattıktan sonra tamamlanması biraz zaman alabilir. İşiniz sistemdeki diğer işlerin arkasında kuyruğa alınmış olabilir. Modelinizin eğitimi, modele ve veri kümesi boyutuna bağlı olarak dakikalar veya saatler sürebilir. Aşağıdaki örnek, ince ayarlama işinizin durumunu denetlemek için REST API'sini kullanır. Örnek, önceki örnekten döndürülen iş kimliğini kullanarak işinizle ilgili bilgileri alır:

curl -X GET $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/<YOUR-JOB-ID>?api-version=2023-12-01-preview \
  -H "api-key: $AZURE_OPENAI_API_KEY"

Özelleştirilmiş model dağıtma

Önemli

Özelleştirilmiş bir modeli dağıttıktan sonra, herhangi bir zamanda dağıtım on beş (15) günden uzun süre etkin değilse dağıtım silinir. Model on beşten (15) gün önce dağıtıldıysa ve sürekli 15 günlük bir süre boyunca buna hiçbir tamamlama veya sohbet tamamlama çağrısı yapılmadıysa, özelleştirilmiş bir modelin dağıtımı devre dışı bırakılır.

Etkin olmayan bir dağıtımın silinmesi, temel alınan özelleştirilmiş modeli silmez veya etkilemez ve özelleştirilmiş model istediğiniz zaman yeniden dağıtılabilir. Azure OpenAI Hizmeti fiyatlandırmasında açıklandığı gibi, dağıtılan her özelleştirilmiş (ince ayarlı) model, modele tamamlama veya sohbet tamamlama çağrıları yapılıp yapılmamasına bakılmaksızın saatlik barındırma maliyetine neden olur. Azure OpenAI ile maliyetleri planlama ve yönetme hakkında daha fazla bilgi edinmek için Azure OpenAI Hizmeti maliyetlerini yönetmeyi planlama konusundaki kılavuza bakın.

Aşağıdaki Python örneği, özelleştirilmiş modeliniz için model dağıtımı oluşturmak üzere REST API'nin nasıl kullanılacağını gösterir. REST API, özelleştirilmiş modelinizin dağıtımı için bir ad oluşturur.

değişken Tanım
token Yetkilendirme belirteci oluşturmanın birden çok yolu vardır. İlk test için en kolay yöntem, Cloud Shell'i Azure portalından başlatmaktır. Ardından az account get-access-token komutunu çalıştırın. Bu belirteci API testi için geçici yetkilendirme belirteciniz olarak kullanabilirsiniz. Bunu yeni bir ortam değişkeninde depolamanızı öneririz
aboneliği İlişkili Azure OpenAI kaynağının abonelik kimliği
resource_group Azure OpenAI kaynağınızın kaynak grubu adı
resource_name Azure OpenAI kaynak adı
model_deployment_name Yeni hassas model dağıtımınız için özel ad. Bu, sohbet tamamlama çağrıları yapılırken kodunuzda başvurulacak addır.
fine_tuned_model Önceki adımda ince ayar iş sonuçlarınızdan bu değeri alın. gibi gpt-35-turbo-0613.ft-b044a9d3cf9c4228b5d393567f693b83görünecektir. Bu değeri deploy_data json'a eklemeniz gerekir.
curl -X POST "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2023-05-01" \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "sku": {"name": "standard", "capacity": 1},
    "properties": {
        "model": {
            "format": "OpenAI",
            "name": "<FINE_TUNED_MODEL>",
            "version": "1"
        }
    }
}'

Bölgeler arası dağıtım

İnce ayar, ince ayarlı modelin başlangıçta ince ayarlı olduğundan farklı bir bölgeye dağıtılmasına destek olur. Ayrıca farklı bir aboneliğe/bölgeye de dağıtabilirsiniz.

Tek sınırlamalar, yeni bölgenin ince ayarlamayı da desteklemesi ve abonelikler arası dağıtım yaparken dağıtım için yetkilendirme belirtecini oluşturan hesabın hem kaynak hem de hedef aboneliklere erişimi olması gerektiğidir.

Aşağıda, bir abonelikte/bölgede ince ayarlı bir modeli başka bir aboneliğe dağıtma örneği verilmiştir.

curl -X PUT "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2023-05-01" \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "sku": {"name": "standard", "capacity": 1},
    "properties": {
        "model": {
            "format": "OpenAI",
            "name": "<FINE_TUNED_MODEL>", 
            "version": "1",
            "source": "/subscriptions/{sourceSubscriptionID}/resourceGroups/{sourceResourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{sourceAccount}" 
        }
    }
}'

Aynı abonelikle farklı bölgeler arasında dağıtım yapmak için hem kaynak hem de hedef değişkenler için abonelik ve kaynak gruplarının aynı olması ve yalnızca kaynak ve hedef kaynak adlarının benzersiz olması gerekir.

Azure CLI ile model dağıtma

Aşağıdaki örnekte, özelleştirilmiş modelinizi dağıtmak için Azure CLI'nin nasıl kullanılacağı gösterilmektedir. Azure CLI ile, özelleştirilmiş modelinizin dağıtımı için bir ad belirtmeniz gerekir. Özelleştirilmiş modelleri dağıtmak için Azure CLI'yi kullanma hakkında daha fazla bilgi için bkz az cognitiveservices account deployment. .

Bu Azure CLI komutunu bir konsol penceresinde çalıştırmak için aşağıdaki <yer tutucuları> özelleştirilmiş modelinize karşılık gelen değerlerle değiştirmeniz gerekir:

Yer tutucu Değer
<YOUR_AZURE_SUBSCRIPTION> Azure aboneliğinizin adı veya kimliği.
<YOUR_RESOURCE_GROUP> Azure kaynak grubunuzun adı.
<YOUR_RESOURCE_NAME> Azure OpenAI kaynağınızın adı.
<YOUR_DEPLOYMENT_NAME> Model dağıtımınız için kullanmak istediğiniz ad.
<YOUR_FINE_TUNED_MODEL_ID> Özelleştirilmiş modelinizin adı.
az cognitiveservices account deployment create 
    --resource-group <YOUR_RESOURCE_GROUP>
    --name <YOUR_RESOURCE_NAME>  
    --deployment-name <YOUR_DEPLOYMENT_NAME>
    --model-name <YOUR_FINE_TUNED_MODEL_ID>
    --model-version "1" 
    --model-format OpenAI 
    --sku-capacity "1" 
    --sku-name "Standard"

Dağıtılan özelleştirilmiş modeli kullanma

Özel modeliniz dağıtıldıktan sonra diğer dağıtılan modellerde olduğu gibi kullanabilirsiniz. Yeni dağıtımınızla denemeler yapmak için Azure OpenAI Studio'daki Playgrounds'ı kullanabilirsiniz. Ve gibi özel modelinizle, dağıtılan diğer modellerle olduğu gibi temperaturemax_tokensaynı parametreleri kullanmaya devam edebilirsiniz. Hassas ayarlı babbage-002 ve davinci-002 modeller için Tamamlamalar oyun alanı ve Tamamlamalar API'sini kullanacaksınız. Hassas ayarlı gpt-35-turbo-0613 modeller için Sohbet oyun alanı ve Sohbet tamamlama API'sini kullanacaksınız.

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/<deployment_name>/chat/completions?api-version=2023-05-15 \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]}'

Özelleştirilmiş modelinizi analiz etme

Azure OpenAI, tamamlandıktan sonra her ince ayar işine results.csv adlı bir sonuç dosyası ekler. Sonuç dosyasını kullanarak özelleştirilmiş modelinizin eğitim ve doğrulama performansını analiz edebilirsiniz. Sonuç dosyasının dosya kimliği her özelleştirilmiş model için listelenir ve REST API'yi kullanarak dosya kimliğini alabilir ve analiz için sonuç dosyasını indirebilirsiniz.

Aşağıdaki Python örneği REST API'sini kullanarak özelleştirilmiş modelinizin ince ayar işine eklenen ilk sonuç dosyasının dosya kimliğini alır ve ardından dosyayı analiz için çalışma dizininize indirir.

curl -X GET "$AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/<JOB_ID>?api-version=2023-12-01-preview" \
  -H "api-key: $AZURE_OPENAI_API_KEY")
curl -X GET "$AZURE_OPENAI_ENDPOINT/openai/files/<RESULT_FILE_ID>/content?api-version=2023-12-01-preview" \
    -H "api-key: $AZURE_OPENAI_API_KEY" > <RESULT_FILENAME>

Sonuç dosyası, ince ayarlama işi tarafından gerçekleştirilen her eğitim adımı için bir üst bilgi satırı ve satır içeren bir CSV dosyasıdır. Sonuç dosyası aşağıdaki sütunları içerir:

Sütun adı Açıklama
step Eğitim adımının sayısı. Eğitim adımı, bir grup eğitim verisinde tek bir geçişi, ileri ve geriyi temsil eder.
train_loss Eğitim toplu işleminin kaybı.
training_accuracy Eğitim toplu işleminde modelin tahmin edilen belirteçlerinin gerçek tamamlama belirteçleriyle tam olarak eşleştiğini tamamlama yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,67 (3'ün 2'sinde) olarak ayarlanır.
train_mean_token_accuracy Eğitim toplu işlemindeki belirteçlerin model tarafından doğru tahmin edilen yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,83 (6'nın 5'i) olarak ayarlanır.
valid_loss Doğrulama toplu işleminin kaybı.
valid_accuracy Modelin tahmin edilen belirteçlerinin gerçek tamamlama belirteçleriyle tam olarak eşleşeceği doğrulama toplu işlemindeki tamamlanma yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,67 (3'ün 2'sinde) olarak ayarlanır.
validation_mean_token_accuracy Doğrulama toplu işlemindeki belirteçlerin model tarafından doğru tahmin edilen yüzdesi.
Örneğin, toplu iş boyutu 3 olarak ayarlanırsa ve verileriniz tamamlanmaları [[1, 2], [0, 5], [4, 2]]içeriyorsa, model tahmin ettiyse [[1, 1], [0, 5], [4, 2]]bu değer 0,83 (6'nın 5'i) olarak ayarlanır.

Ayrıca results.csv dosyanızdaki verileri Azure OpenAI Studio'da çizim olarak görüntüleyebilirsiniz. Eğitilen modelinizin bağlantısını seçtiğinizde üç grafik görürsünüz: kayıp, ortalama belirteç doğruluğu ve belirteç doğruluğu. Doğrulama verileri sağladıysanız, her iki veri kümesi de aynı çizimde görünür.

Zaman içinde kaybınızın azalmasını ve doğruluğunuzun artırılmasını arayın. Eğitim ve doğrulama verileriniz arasında bir fark görürseniz, bu fazla uygunluk gösterdiğinizi gösterebilir. Daha az dönemle veya daha küçük bir öğrenme oranı çarpanıyla eğitimi deneyin.

Dağıtımlarınızı, özelleştirilmiş modellerinizi ve eğitim dosyalarınızı temizleme

Özelleştirilmiş modelinizle işiniz bittiğinde dağıtımı ve modeli silebilirsiniz. Gerekirse hizmete yüklediğiniz eğitim ve doğrulama dosyalarını da silebilirsiniz.

Model dağıtımınızı silme

Özelleştirilmiş modelinizin dağıtımını silmek için çeşitli yöntemler kullanabilirsiniz:

Özelleştirilmiş modelinizi silme

Benzer şekilde, özelleştirilmiş modelinizi silmek için çeşitli yöntemler kullanabilirsiniz:

Not

Özelleştirilmiş bir modelin var olan bir dağıtımı varsa bu modeli silemezsiniz. Özelleştirilmiş modelinizi silebilmeniz için önce model dağıtımınızı silmeniz gerekir.

Eğitim dosyalarınızı silme

İsteğe bağlı olarak, eğitim için karşıya yüklediğiniz eğitim ve doğrulama dosyalarını ve eğitim sırasında oluşturulan sonuç dosyalarını Azure OpenAI aboneliğinizden silebilirsiniz. Eğitim, doğrulama ve sonuç dosyalarınızı silmek için aşağıdaki yöntemleri kullanabilirsiniz:

Sürekli ince ayar

İnce ayarlı bir model oluşturduktan sonra, daha fazla ince ayar yapmak için modeli zaman içinde iyileştirmeye devam etmek isteyebilirsiniz. Sürekli ince ayarlama, temel model olarak önceden ayarlanmış bir modeli seçme ve yeni eğitim örnekleri kümesinde daha fazla ince ayar yapma yinelemeli bir işlemdir.

Daha önce ince ayar yaptığınız bir modelde ince ayarlama yapmak için özelleştirilmiş bir model oluşturma bölümünde açıklandığı gibi aynı işlemi kullanırsınız, ancak genel bir temel modelin adını belirtmek yerine zaten hassas ayarlanmış modelinizin kimliğini belirtirsiniz. Hassas ayarlanmış model kimliği şuna benzer: gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{
    "model": "gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7", 
    "training_file": "<TRAINING_FILE_ID>", 
    "validation_file": "<VALIDATION_FILE_ID>",
    "suffix": "<additional text used to help identify fine-tuned models>"
}'

Ayrıca, ince ayarlı modelinizin farklı yinelemelerini ayırt etmek için parametresini de eklemenizi suffix öneririz. suffix bir dize alır ve ince ayarlı modeli tanımlamak için ayarlanır. Sonek, ince ayarlı model adınıza eklenecek en fazla 40 karakter (a-z, A-Z, 0-9,- ve _) içerebilir.

Hassas modelinizin kimliğinden emin değilseniz bu bilgiler Azure OpenAI Studio'nun Modeller sayfasında bulunabilir veya REST API kullanarak belirli bir Azure OpenAI kaynağı için model listesi oluşturabilirsiniz.

Sorun giderme

İnce ayarlamayı Nasıl yaparım? etkinleştirebilirsiniz? Azure OpenAI Studio'da özel model oluşturma işlemi gri mi?

İnce ayarlamaya başarıyla erişmek için Bilişsel Hizmetler OpenAI Katkıda Bulunanı'nın atanması gerekir. Üst düzey Hizmet Yönetici istrator izinlerine sahip birinin bile ince ayara erişmek için bu hesabın açıkça ayarlanması gerekir. Daha fazla bilgi için lütfen rol tabanlı erişim denetimi kılavuzunu gözden geçirin.

Karşıya yüklemem neden başarısız oldu?

Azure OpenAI Studio'da dosya karşıya yüklemeniz başarısız olursa, Azure OpenAI Studio'da "veri dosyaları" altında hata iletisini görüntüleyebilirsiniz. Farenizi "hata" (durum sütununun altında) yazan yere getirin ve hatanın açıklaması görüntülenir.

Hata iletisinde ince ayarlamanın ekran görüntüsü.

Hassas ayarlanmış modelim iyileştirilmiş gibi görünmüyor

  • Eksik sistem iletisi: İnce ayar yaparken bir sistem iletisi sağlamanız gerekir; hassas ayarlı modeli kullandığınızda aynı sistem iletisini sağlamak istersiniz. Farklı bir sistem iletisi sağlarsanız, ince ayar yaptığınız iletiden farklı sonuçlar görebilirsiniz.

  • Yeterli veri yok: İşlem hattının çalışması için en düşük değer 10 olsa da, modele yeni bir beceri öğretmek için yüzlerce ile binlerce veri noktasına ihtiyacınız vardır. Çok az veri noktası fazla uygunluk ve kötü genelleştirme riski taşır. İnce ayarlı modeliniz eğitim verileri üzerinde iyi performans gösterebilir, ancak öğrenme desenleri yerine eğitim örneklerini ezberlediğinden diğer verilerde kötü performans gösterebilir. En iyi sonuçları elde etmek için yüzlerce veya binlerce veri noktası içeren bir veri kümesi hazırlamayı planlayın.

  • Hatalı veriler: Kötü seçilmiş veya tanıtılmayan bir veri kümesi düşük kaliteli bir model oluşturur. Modeliniz veri kümenizden hatalı veya taraflı desenler öğrenebilir. Örneğin, müşteri hizmetleri için bir sohbet botu eğitiyorsanız ancak yalnızca bir senaryo için eğitim verileri sağlıyorsanız (örn. öğe iadeleri) diğer senaryolara nasıl yanıt verileceğini bilemez. Ya da eğitim verileriniz hatalıysa (yanlış yanıtlar içeriyorsa), modeliniz yanlış sonuçlar sağlamayı öğrenir.

Sonraki adımlar

  • Azure OpenAI ince ayarlama öğreticisindeki ince ayarlama özelliklerini keşfedin.
  • Model bölgesel kullanılabilirliğini ince ayarlamayı gözden geçirin
  • Azure OpenAI kotaları hakkında daha fazla bilgi edinin