Azure OpenAI सेट अप करना
इस सेक्शन में, मैं Azure OpenAI सेट अप करने का तरीका दिखाऊँगा। मान लेता हूँ कि आपको Azure का कुछ अनुभव है।
ध्यान दें कि यूज़र इंटरफ़ेस अक्सर बदलते रहते हैं। इसलिए, समय के साथ या क्षेत्र के अनुसार निर्देशों और स्क्रीनशॉट्स में विभिन्न सेक्शनों और शीर्षकों का लेआउट और टेक्स्ट बदल सकता है।
चरण 1: एक Azure अकाउंट बनाएं
जाइए Azure OpenAI होमपेज पर और Sign in चुनें (ऊपर दाईं ओर)। अपने Microsoft अकाउंट से लॉगिन करें। यदि आपका Microsoft अकाउंट नहीं है, तो Sign-in पेज पर नया अकाउंट बनाने का विकल्प चुनकर Microsoft अकाउंट बनाएँ।
इसके बाद, नीचे दिए गए चरणों का पालन करते हुए Azure अकाउंट बनाएं:
- अपने Microsoft अकाउंट का उपयोग करके Azure पोर्टल में साइन इन करें। विकल्प चुनें Start with an Azure free trial.

Microsoft Azure पोर्टल।
- अगले पृष्ठ पर, $200 फ्री क्रेडिट्स के साथ Azure free account बनाने का विकल्प चुनें।

Azure अकाउंट प्रकार चुनें।
- फ़ॉर्म में अपनी व्यक्तिगत जानकारी भरें।

निःशुल्क Azure अकाउंट बनाएं।
- क्रेडिट या डेबिट कार्ड का उपयोग करके अपनी पहचान सत्यापित करें। ध्यान दें कि आपके अकाउंट से अस्थायी होल्डिंग चार्ज (आमतौर पर कुछ सेंट या समकक्ष) डेबिट हो सकता है।

अपना Azure अकाउंट सत्यापित करें (स्क्रीनशॉट लेखक द्वारा)
- पेमेंट जानकारी सत्यापित करने के बाद Go to Azure Portal चुनें। यह आपको Quickstart Center पर रीडायरेक्ट करता है।
- ध्यान दें कि $200 के फ्री क्रेडिट्स Azure OpenAI सेवाओं के लिए उपयोग नहीं किए जा सकते। Azure OpenAI मॉडल केवल पेड अकाउंट के साथ एक्सेस किए जा सकते हैं। अपने अकाउंट को पे-एज़-यू-गो सब्सक्रिप्शन में अपग्रेड करने के लिए, Azure पोर्टल पर वापस जाएँ और शीर्ष बार में Upgrade चुनें।

अपना Azure अकाउंट अपग्रेड करें।
- अपग्रेड पेज पर विवरण भरें और Upgrade to pay as you go चुनें।
पेड अकाउंट में अपग्रेड करने के बाद, आप OpenAI मॉडलों तक पहुँच सकते हैं।
चरण 2: Azure पोर्टल में Azure OpenAI तक पहुँचें
- Azure पोर्टल पर वापस जाएँ, जो AI सेवाओं, वर्चुअल मशीनों, स्टोरेज अकाउंट्स, आदि जैसी विभिन्न सेवाएँ दिखाता है।

Azure पोर्टल उपलब्ध सेवाएँ दिखाता हुआ।
- Azure AI services चुनें और AI सेवाओं के होम पेज पर जाएँ। Azure विभिन्न AI-आधारित सेवाएँ ऑफर करता है, जैसे फेस रिकॉग्निशन, एनोमली डिटेक्शन, स्पीच, कंप्यूटर विज़न, OpenAI, आदि।

Azure AI सेवाएँ।
- Azure OpenAI account टैब में, View विकल्प चुनें।
- यह Azure OpenAI पेज पर ले जाता है, जहाँ आपके अकाउंट के OpenAI इंस्टेंसेज़ की सूची दिखती है। नया इंस्टेंस बनाने के लिए Create Azure OpenAI चुनें। आप पिछले पेज पर Create भी चुन सकते हैं।
- निम्न विवरण भरें:
- Subscription के तहत, अपनी पेड सब्सक्रिप्शन का नाम चुनें।
- Resource group के तहत, Create new चुनें:
- नए रिसोर्स ग्रुप के लिए एक नाम दर्ज करें।

नया Azure OpenAI इंस्टेंस बनाएं।
-
-
- Region के अंतर्गत, निकटतम क्षेत्र चुनें।
- Name के अंतर्गत, एक यूनिक नाम दर्ज करें।
- Pricing tier के अंतर्गत, Standard S0 चुनें।
- आगे बढ़ने के लिए Next चुनें।
-
- Network सेक्शन में, "All networks, including the Internet, can access this resource." चुनें। फिर, अगले चरण पर जाएँ।
- Tags सेक्शन में, इस इंस्टेंस को कैटेगराइज़ करने के लिए name-value पेयर्स दर्ज करें। इससे समेकित बिलिंग में मदद मिलती है। यह चरण वैकल्पिक है।
- अगले सेक्शन में, Review + submit चुनें, मानों की दोबारा जाँच करें, और Create चुनें। यह नया OpenAI इंस्टेंस डिप्लॉय करता है।
- थोड़ी देर बाद, यह संदेश दिखाता है "Your deployment is complete." इस पेज पर, Go to resource चुनें।
- रिसोर्स पेज पर, Resources टैब के तहत रिसोर्स का नाम चुनें।
चरण 3: API एक्सेस सेट अप करें
रिसोर्स पेज इंस्टेंस का विवरण दिखाता है।
Develop टैब इस इंस्टेंस के लिए API keys और API endpoint URLs दिखाता है। Keys आपके लिए स्वतः जेनरेट की गई हैं।
- keys और endpoint को किसी टेक्स्ट फ़ाइल में कॉपी करें।
आपको दो API keys मिलती हैं। इससे, यदि पहली key से समझौता हो जाए तो आप दूसरी key का उपयोग कर सकते हैं। आप पहली key को फिर से जनरेट करते समय भी दूसरी key का उपयोग कर सकते हैं। इससे आप बिना डाउनटाइम के समय-समय पर keys रोटेट कर सकते हैं।

Azure OpenAI इंस्टेंस API keys
- Monitor टैब में, इस इंस्टेंस के उपयोग मेट्रिक्स जाँचें।
- Get Started टैब में, Explore Azure AI Foundry portal चुनें ताकि AI playground नए पेज पर खुले।

Azure OpenAI चैट playground।
- बाएँ मेनू से Chat playground चुनें।
- Deployment के तहत, Create new dep चुनें।
- नए डिप्लॉयमेंट पॉप-अप में From base models चुनें
- यह एक पॉपअप दिखाता है, जिसमें आप मॉडल चुन सकते हैं।
- सर्च बार में “gpt-3” टाइप करें।
- सूची से gpt-35-turbo चुनें। यह चैट कंप्लीशन के लिए अनुकूलित एक किफायती मॉडल है। काम करने वाला कॉन्फ़िगरेशन मिलने के बाद, आवश्यकता हो तो अधिक उन्नत (और महँगा) मॉडल चुनें।
- Confirm चुनें।
- Deploy model पॉपअप में, Customize. चुनें
- Tokens per Minute Rate Limit को मैनुअल टेस्टिंग के लिए कम मान (उदाहरण, 12 रिक्वेस्ट प्रति मिनट) पर घटाएँ। मॉडल को प्रोडक्शन में डालने पर बाद में इसे बढ़ाएँ।
- dynamic quota को निष्क्रिय करें। इसकी ज़रूरत तब तक नहीं है जब तक डिप्लॉयमेंट पर भारी ट्रैफ़िक न हो।
- Deploy चुनें।

चैट playground में नया मॉडल डिप्लॉय करें।
बस इतना ही! अगले सेक्शन में, हम OpenAI के gpt-35-turbo मॉडल के इस डिप्लॉयमेंट तक पहुँचने का तरीका देखेंगे।
API keys को फिर से जनरेट करना
API एक्सेस keys को समय-समय पर फिर से जनरेट करना उचित होता है। इससे यह सुनिश्चित होता है कि यदि पुरानी keys अनजाने में लीक हो जाएँ तो अकाउंट से समझौता न हो। नीचे दिए गए चरण keys को फिर से जनरेट करने का तरीका बताते हैं:
- बाएँ मेनू में Resource Management के अंतर्गत, Keys and Endpoint चुनें।
- प्रत्येक key को अलग-अलग फिर से जनरेट करें।

Azure OpenAI इंस्टेंस API keys।
एप्लिकेशनों में Azure OpenAI का उपयोग
Azure OpenAI सेट अप करने और मॉडल डिप्लॉय करने के बाद, देखते हैं कि इसे प्रोग्राम के जरिए कैसे एक्सेस करें।
चरण 1: अपना डेवलपमेंट एनवायरनमेंट सेट करें
मैं Python का उपयोग करके Azure OpenAI से कनेक्ट करना दिखाऊँगा। आवश्यक लाइब्रेरी इंस्टॉल करें:
$ pip install openai
यदि आप नोटबुक का उपयोग कर रहे हैं, तो निम्न कमांड चलाएँ। नोट: मैं DataLab नोटबुक का उपयोग कर रहा हूँ।
!pip install openai
Python शेल या नोटबुक में आवश्यक पैकेज इम्पोर्ट करें:
import os
from openai import AzureOpenAI
AzureOpenAI मॉड्यूल Azure के भीतर OpenAI सेवाओं तक पहुँच की अनुमति देता है। यह स्टैंडअलोन OpenAI API तक पहुँच के लिए उपयोग किए जाने वाले OpenAI मॉड्यूल से अलग है।
Azure OpenAI का उपयोग करने से पहले, अपने वातावरण में API key और endpoint सेट करें। पिछले सेक्शन में इन मानों को ढूँढने का तरीका बताया गया था। सैद्धांतिक रूप से, आप इन्हें प्रोग्रामिंग एनवायरनमेंट के भीतर सेट कर सकते हैं, लेकिन मैं ऐसा कभी न करने की सलाह देता हूँ। प्रोग्राम में कभी भी API keys को एक्सपोज़ न करें।
टर्मिनल का उपयोग करके API keys सेट करें
Python को लोकली चलाने के लिए, शेल कॉन्फ़िगरेशन फ़ाइल में environment variable सेट करें। मैं Bash शेल के लिए सेट अप दिखाऊँगा।
-
.bashrcफ़ाइल को किसी टेक्स्ट एडिटर में संपादित करें। - फ़ाइल के अंत में ये दो पंक्तियाँ जोड़ें:
export AZURE_OPENAI_API_KEY=MY_API_KEY'export AZURE_OPENAI_ENDPOINT=MY_ENDPOINT'- फ़ाइल को सहेजें और बंद करें।
- टर्मिनल में
source ~/.bashrcकमांड का उपयोग करके बदलाव रीलोड करें। - अन्य शेल (जैसे
shयाzsh) के लिए प्रक्रिया थोड़ी अलग हो सकती है। - उसी टर्मिनल सत्र में Python शेल खोलें (या पुनः खोलें)।
Python टर्मिनल में API key और endpoint मान इम्पोर्ट करें:
azure_openai_api_key = os.getenv["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.getenv["AZURE_OPENAI_ENDPOINT"]
ऑनलाइन नोटबुक (DataLab) का उपयोग करके API keys सेट करें
DataLab आपको किसी नोटबुक के लिए सीधे environment variables सेट करने देता है।
- ऊपर के मेन्यूबार से Environment चुनें और ड्रॉपडाउन से Environment variables चुनें।
- Environment variables जोड़ने का विकल्प चुनें।
- दो वेरिएबल्स
AZURE_OPENAI_API_KEYऔरAZURE_OPENAI_ENDPOINTतथा उनके मान जोड़ें। - इस सेट के लिए एक नाम दें और बदलाव सहेजें।
नोटबुक में, इन मानों को नीचे दिखाए अनुसार निकालें:
azure_openai_api_key = os.environ["AZURE_OPENAI_API_KEY"]
azure_openai_endpoint = os.environ["AZURE_OPENAI_ENDPOINT"]
चरण 2: Azure OpenAI को पहली API कॉल करें
अब आप AzureOpenAI() फ़ंक्शन का उपयोग करके एक client ऑब्जेक्ट बना सकते हैं जो रिक्वेस्ट स्वीकार करता है। यह फ़ंक्शन निम्न पैरामीटर लेता है:
api_version: Azure OpenAI API का वर्ज़न। नवीनतम वर्ज़न देखें Azure दस्तावेज़ में।api_key: Azure OpenAI API key। इसे पहले सेट किए गए environment variables से प्राप्त करें। यहाँ मैन्युअली सेट न करें।azure_endpoint: Azure OpenAI API endpoint का URL (यह मान environment से प्राप्त करें)।
client = AzureOpenAI(
api_version="2024-06-01",
api_key=azure_openai_api_key,
azure_endpoint=azure_openai_endpoint
)
इस client ऑब्जेक्ट का उपयोग .chat.completions.create() फ़ंक्शन के जरिए चैट कंप्लीशन जैसे कार्यों के लिए करें। यह फ़ंक्शन निम्न पैरामीटर स्वीकार करता है:
model: मॉडल का नाम। OpenAI API के पुराने रिलीज़ में इसेengineपैरामीटर कहा जाता था। ध्यान दें किmodelपैरामीटर को डिप्लॉयमेंट (Azure AI Foundry portal) के दौरान निर्दिष्ट मॉडल से मेल खाना चाहिए। यदि आप डिप्लॉय किए गए मॉडल से अलग कोई मॉडल उपयोग करने की कोशिश करते हैं, तो नीचे दिखाए अनुसार त्रुटि मिलती है:
NotFoundError: Error code: 404 - {'error': {'code': 'DeploymentNotFound', 'message': 'The API deployment for this resource does not exist. If you created the deployment within the last 5 minutes, please wait a moment and try again.'}}
messages: यह पैरामीटर उपयोगकर्ता और मॉडल के बीच की बातचीत को निर्दिष्ट करता है। यह संदेश ऑब्जेक्ट्स के सेट से बना होता है। प्रत्येक संदेश ऑब्जेक्ट मेंrole(system,user, याassistantमें से एक) औरcontent(संदेश का टेक्स्ट) की की-वैल्यू जोड़ी होती है। ये संदेश ऑब्जेक्ट्स इंटरैक्शन के लिए संदर्भ प्रदान करते हैं और मॉडल की प्रतिक्रियाओं का मार्गदर्शन करते हैं।
नीचे, मैं role के विभिन्न मानों के लिए मुख्य (role, content) की-वैल्यू जोड़ी के उदाहरण देता हूँ:
user: अंतिम-उपयोगकर्ता द्वारा दर्ज किया गया प्रॉम्प्ट।
उदाहरण: {“role”: “user”, “content”: “explain the difference between rational and irrational numbers”}
system: इंटरैक्शन में OpenAI से अपेक्षित भूमिका का वर्णन।
उदाहरण: {“role”: “system”, “content”: “you are a helpful teacher to guide elementary mathematics students”}
assistant: OpenAI से अपेक्षित प्रतिक्रिया।
उदाहरण: {“role”: “assistant”, “content”: “the difference between rational and irrational numbers is … an example explanation …”}
assistant भूमिका तभी आवश्यक है जब मॉडल को फाइन-ट्यून करने के लिए प्रशिक्षण डेटा प्रदान किया जाता है। client का उपयोग चैट कंप्लीशन जैसे कार्यों के लिए करते समय केवल user और system भूमिकाएँ पर्याप्त हैं। कई सरल कार्यों के लिए केवल user भूमिका ही पर्याप्त है।
max_tokens: यह पैरामीटर उस अधिकतम टोकन संख्या का निर्णय करता है जो API कॉल को प्रोसेस करने (इनपुट और आउटपुट दोनों) में उपयोग की जा सकती है। आप सीधे इस्तेमाल किए गए टोकनों के लिए शुल्क लेते हैं। डिफ़ॉल्ट मान 16 है। सरल उपयोग मामलों के लिए यह मान पर्याप्त है; अतः यह पैरामीटर छोड़ा जा सकता है।
simple_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{
"role": "user",
"content": "Explain the difference between OpenAI and Azure OpenAI in 20 words",
},
],
)
चैट कंप्लीशन टास्क का आउटपुट प्रिंट करें:
print(simple_completion.to_json())
आउटपुट विभिन्न की-वैल्यू जोड़ों वाला एक JSON ऑब्जेक्ट होता है। इसमें मॉडल का आउटपुट शामिल होता है, जैसा कि नीचे दिए उदाहरण में दिखाया गया है। ध्यान दें कि assistant मॉडल को डिफ़ॉल्ट रूप से सौंपी गई भूमिका है।
"message": {
"content": "OpenAI is a research organization focused on advancing AI, while Azure OpenAI is a collaboration between Microsoft and OpenAI.",
"role": "assistant"
},
चरण 3: विभिन्न कार्यों के लिए OpenAI मॉडलों का उपयोग
Azure OpenAI के साथ किसी भी मॉडल तक पहुँचने के लिए, पहले उस मॉडल को डिप्लॉय करना होता है। पिछले सेक्शन में, आपने gpt-35-turbo मॉडल डिप्लॉय किया था। अलग मॉडल उपयोग करने के लिए:
- Azure AI Foundry पर वापस जाएँ और पिछले सेक्शन में बताए अनुसार अलग मॉडल डिप्लॉय करें। GPT-35, GPT-4o, o1 और o1-mini, o3 और o3-mini, आदि में से चुनें।
- ऊपर दिए प्रॉम्प्ट्स (
chat.completions.create()फ़ंक्शन में) को नए मॉडल के नाम के साथ फिर से लिखें।
OpenAI के पुराने रिलीज़ में विभिन्न कार्यों के लिए अलग-अलग मॉडल का उपयोग आम था। कोड जनरेशन, NLP, आदि के लिए समर्पित मॉडल थे। आधुनिक मॉडल जैसे GPT-3.5 और GPT-4 सभी टेक्स्ट-आधारित जेनरेटिव कार्य कर सकते हैं। इस प्रकार, कई पुराने टास्क-विशिष्ट मॉडल (जैसे कोड जनरेशन के लिए davinci मॉडल) बंद कर दिए गए हैं।
अब हम API का उपयोग प्रश्नोत्तर और टेक्स्ट सार-संक्षेपण जैसे विभिन्न सरल कार्यों के लिए कैसे करें, यह देखते हैं। नीचे दिए उदाहरणों में हम उसी मॉडल—GPT-3.5—का उपयोग करते हैं। आप GPT-4 मॉडलों में से किसी एक को भी चुन सकते हैं।
चूँकि ये दोनों टेक्स्ट-आधारित कार्य हैं, चलिए पहले काम करने के लिए एक टेक्स्ट ब्लॉक घोषित करते हैं। मैंने मनमाने ढंग से एक ई-कॉमर्स वेबसाइट से बूट्स की एक समीक्षा कॉपी की है। इस समीक्षा के टेक्स्ट को text नाम के वेरिएबल को असाइन करें। सुनिश्चित करें कि टेक्स्ट के भीतर किसी भी सिंगल या डबल कोट कैरेक्टर को एस्केप किया गया है।
text = 'Comfort and Quality wise the boots are absolutely excellent. A 10 miles hike along the city Streets and the alps nearby felt like a smooth sail. The most plus it was quite well ventilated cause of the heavy duty Gore-tex material. After 12 hours when I removed it, there was just very little bit of perspiration (My foot sweats a lot) and absolutely no foul smell. Speaking of the Gore-Tex I would say, I sported this on a heavy rainy day after buying it in India, I was fearing the boot, though not very much like normal boots, would still be drenching with water, instead it was very little soaked. And some 5-6 hours later it was completely dry (Kept inside a closed room in the night). The only disadvantage I think is, that it fits my foot perfectly according to the size I chose, and there is no slight pain from 7 AM till 8 PM due to the shoe weight (of course its 1.2 KG, even though it doesn\'t feel like)'
टेक्स्ट सार-संक्षेपण
ऊपर दिए टेक्स्ट का सार-संक्षेप करने के लिए:
clientऑब्जेक्ट का उपयोग करें जिसे पहले बनाया था।- नीचे दिए उदाहरण के अनुसार
messagesपैरामीटर में उपयुक्त भूमिकाएँ पास करें:
summary_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{
"role": "system",
"content": "You are a helpful assistant for summarizing text"
},
{
"role": "user",
"content": f"Summarize this text in 10 words: {text}",
},
],
)
ध्यान दें कि ऊपर दिए स्निपेट में हम टेक्स्ट को प्रॉम्प्ट में एक वेरिएबल के रूप में पास करते हैं।
print(summary_completion.to_json())
आउटपुट में लंबे टेक्स्ट का असिस्टेंट द्वारा किया गया सार-संक्षेप शामिल होता है, जैसा कि इस अंश में दिखाया गया है:
"message": {
"content": "Excellent comfort and quality, well-ventilated, quick-drying, lightweight boots, minimal perspiration, no foul smell.",
"role": "assistant"
},
प्रश्नोत्तर
प्रश्नों के उत्तर देने (उपरोक्त इनपुट टेक्स्ट के आधार पर) के लिए, हम प्रॉम्प्ट को संशोधित करते हैं ताकि प्रश्न को एक स्ट्रिंग वेरिएबल के रूप में पास किया जा सके। पहले की तरह, प्रॉम्प्ट में टेक्स्ट भी वेरिएबल के रूप में शामिल होता है। मॉडल दिए गए टेक्स्ट के आधार पर प्रश्न का उत्तर देता है।
question = 'Are these shoes heavy?'
qna_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for answering questions"
},
{
"role": "user",
"content": f"Answer this question: {question} in 10 words based on this text: {text}",
},
],
)
आउटपुट को JSON में बदलें और प्रिंट करें:
print(qna_completion.to_json())
आउटपुट में प्रश्न का असिस्टेंट द्वारा दिया गया उत्तर शामिल होता है:
"message": {
"content": "Lightweight. Not heavy. Comfortable for long hikes. Well-ventilated Gore-tex material.",
"role": "assistant"
},Azure OpenAI के उपयोग के मामले
अब, Azure OpenAI सेवा के विभिन्न उपयोग मामलों पर नज़र डालते हैं।
नेचुरल लैंग्वेज प्रोसेसिंग (NLP)
मूल रूप से एक भाषा मॉडल होने के नाते, OpenAI के GPT-3 और GPT-4 जैसे जनरल पर्पज़ मॉडल, निम्नलिखित NLP कार्यों में उत्कृष्ट हैं:
- टेक्स्ट सार-संक्षेपण: API को इनपुट के रूप में बड़े टेक्स्ट का एक टुकड़ा दें और अपनी ज़रूरत के अनुसार उसे सार-संक्षेप करने के लिए कहें। पिछले उदाहरण में, हमने लंबी कस्टमर समीक्षा को 10 शब्दों के सार में बदला था।
- टेक्स्ट वर्गीकरण: किसी दस्तावेज़ (या दस्तावेज़ों के सेट) और पूर्वनिर्धारित लेबल्स के सेट के अनुसार, OpenAI दस्तावेज़(ओं) को सबसे उपयुक्त लेबल में वर्गीकृत कर सकता है।
- भाव विश्लेषण (Sentiment analysis): API इनपुट टेक्स्ट के भाव का आकलन कर सकता है। उदाहरण के लिए, यह किसी कस्टमर समीक्षा को सकारात्मक, नकारात्मक या तटस्थ के रूप में वर्गीकृत कर सकता है।
अगले उदाहरण में, हम (पहले परिभाषित) कस्टमर समीक्षा टेक्स्ट पर भाव विश्लेषण करते हैं।
sentiment_classification = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for classifying customer reviews into one of the following categories: very positive, positive, neutral, negative, very negative"
},
{
"role": "user",
"content": f"Classify this review: {text}",
},
],
#max_tokens=16
)
print(sentiment_classification.to_json())
आउटपुट में नीचे दिए अंश जैसा स्निपेट होता है। इसमें समीक्षा का असिस्टेंट द्वारा किया गया वर्गीकरण शामिल होता है:
"message": {
"content": "This review can be classified as very positive.",
"role": "assistant"
},
कोड जनरेशन
OpenAI मॉडल विभिन्न प्रोग्रामिंग भाषाओं में कोड जनरेट कर सकते हैं। OpenAI के पुराने रिलीज़ में, Codex और code-davinci जैसे समर्पित कोड-विशिष्ट मॉडल थे, जिन्हें कोड जनरेशन के लिए फाइन-ट्यून किया गया था।
हालांकि, OpenAI के नए रिलीज़, जैसे GPT-3.5 और GPT-4 बिना फाइन-ट्यूनिंग के ही कोड जनरेट करते हैं। बेस मॉडल्स को कोडिंग-आधारित डेटासेट्स पर प्री-ट्रेन किया गया है। इसलिए, Codex, code-davinci, और कई अन्य लिगेसी मॉडलों को अप्रचलित घोषित कर दिया गया है और वे अब नए डिप्लॉयमेंट्स के लिए उपलब्ध नहीं हैं।
OpenAI मॉडल विभिन्न सामान्य प्रोग्रामिंग भाषाओं में कोड लिखने में मदद कर सकते हैं। मॉडल के साथ प्राकृतिक भाषा में इंटरैक्ट करें और प्रोग्रामिंग कार्यों के लिए निर्देश दें, जैसे:
- कोड जनरेट करें: किसी टेक्स्ट प्रॉम्प्ट या टिप्पणी के आधार पर, मॉडल कोड स्निपेट जनरेट कर सकता है। प्रोग्रामर विभिन्न स्निपेट्स को मिलाकर एक सही काम करने वाला प्रोग्राम बना सकता है। इससे बायलरप्लेट कोड लिखने जैसे दोहराव कार्यों को स्वचालित करने में मदद मिलती है।
- डिबग करें: मॉडल त्रुटियों और चेतावनी संदेशों का विश्लेषण करके समस्या को प्राकृतिक भाषा में समझा सकता है और उसे ठीक करने के सुझाव दे सकता है।
- अनुकूलित करें: OpenAI मॉडल कोड को साफ़-सुथरी संरचनाओं में रिफ़ैक्टर करने और सॉर्टिंग जैसे सामान्य कार्यों के लिए अधिक कुशल एल्गोरिद्म का उपयोग करने में मदद कर सकते हैं।
- समझाएँ: OpenAI मॉडल अपने द्वारा जनरेट किए गए कोड स्निपेट्स की व्याख्या भी कर सकते हैं। ये व्याख्याएँ डेवलपर की ज़रूरतों के अनुरूप जनरेटेड कोड को कस्टमाइज़ करने में मदद करती हैं। ये नए प्रोग्रामरों को प्रोग्रामिंग कॉन्सेप्ट समझने में भी मदद कर सकती हैं।
एक सरल उदाहरण पर विचार करें—किसी फ़ाइल को खोलने और पढ़ने के लिए Python फ़ंक्शन लिखना। यह इतना सामान्य कार्य है कि इसे आसानी से स्वचालित किया जा सकता है। हम OpenAI से कोड लिखने और समझाने के लिए कहते हैं। पहले बनाए गए client ऑब्जेक्ट का उपयोग करें।
code_completion = client.chat.completions.create(
model="gpt-35-turbo",
messages=[
{"role": "system",
"content": "You are a helpful assistant for generating programming code"
},
{
"role": "user",
"content": "Write and explain a Python function to open and read a file",
},
],
)
आउटपुट प्रिंट करें:
print(code_completion.to_json())
ध्यान दें कि आउटपुट JSON ऑब्जेक्ट में नीचे दिए नमूने जैसा असिस्टेंट आउटपुट शामिल होता है:
"content": "Below is a Python function that opens a file, reads its contents, and returns the content as a string:\n\n```python\ndef read_file(file_path):\n try:\n with open(file_path, 'r') as file:\n …
DALL·E के साथ इमेज जनरेशन
पिछले उदाहरण सभी टेक्स्ट-आधारित थे। उन्होंने OpenAI को एक बड़े भाषा मॉडल (LLM) के रूप में उपयोग किया, जिसे आमतौर पर ट्रांसफ़ॉर्मर आर्किटेक्चर का उपयोग करके बनाया जाता है। LLMs के अलावा, OpenAI में DALL·E जैसे डिफ्यूज़र-आधारित मॉडल शामिल हैं, जो इनपुट प्रॉम्प्ट दिए जाने पर इमेज जनरेट करते हैं।
DALL·E का उपयोग करने के लिए, उस इमेज का विस्तृत विवरण देते हुए एक टेक्स्ट-आधारित प्रॉम्प्ट प्रदान करें जिसे आप देखना चाहते हैं। इस विवरण के आधार पर, DALL·E उच्च-गुणवत्ता वाली इमेज जनरेट करता है। यह चित्रण बनाने, प्रोडक्ट कॉन्सेप्ट्स डिजाइन करने, मार्केटिंग अभियानों के लिए स्केचिंग आदि जैसे कार्यों में उपयोगी है।
DALL·E वर्तमान में सभी भौगोलिक क्षेत्रों में उपलब्ध नहीं है। यदि यह आपके क्षेत्र में उपलब्ध है, तो (इस ट्यूटोरियल में पहले समझाए अनुसार) एक नया डिप्लॉयमेंट बनाएँ, लेकिन GPT-3 के बजाय DALL·E-3 मॉडल का उपयोग करें। पहले वर्णित उसी client ऑब्जेक्ट का उपयोग करके DALL·E मॉडल तक पहुँचें। इमेज जनरेट करने के लिए client.images.generate() मेथड का उपयोग करें:
-
modelपैरामीटर का उपयोग करके मॉडल का नामdalle3सेट करें। - वांछित इमेज का विवरण
promptपैरामीटर से दें। - आप
nका मान भी निर्दिष्ट कर सकते हैं, जो जनरेट की जाने वाली इमेज की संख्या है।
result = client.images.generate(
model="dalle3",
prompt="An owl wearing a Christmas hat",
n=1
)
मॉडल की प्रतिक्रिया से JSON response ऑब्जेक्ट निकालें:
import json
json_response = json.loads(result.model_dump_json())
इमेज डायरेक्टरी डिक्लेयर करें। ध्यान दें कि images डायरेक्टरी वर्तमान वर्किंग डायरेक्टरी (जहाँ से आपने Python शेल शुरू किया) के अंदर मौजूद होनी चाहिए।
image_dir = os.path.join(os.curdir, 'images')
इस डायरेक्टरी के अंतर्गत इमेज पाथ निर्दिष्ट करें:
image_path = os.path.join(image_dir, 'generated_image.png')
JSON response ऑब्जेक्ट से जनरेट की गई इमेज का URL निकालें, इमेज (स्ट्रीम के रूप में) डाउनलोड करें, और उसे इमेज फ़ाइल में लिखें:
image_url = json_response["data"][0]["url"]
generated_image = requests.get(image_url).content
with open(image_path, "wb") as image_file:
image_file.write(generated_image)
इमेज प्रदर्शित करें:
from PIL import Image
image = Image.open(image_path)
image.show()
Azure OpenAI का उपयोग करने के सर्वोत्तम अभ्यास
Azure OpenAI सेवा का उपयोग सीधा है, लेकिन हर तकनीक की तरह, इसका भरपूर लाभ उठाने के लिए कुछ सर्वोत्तम अभ्यासों का पालन करना चाहिए। इस सेक्शन में हम उनका अवलोकन करते हैं।
API उपयोग की मॉनिटरिंग और प्रबंधन
Azure OpenAI, Azure की अधिक महँगी सेवाओं में से एक है। नए अकाउंट्स के लिए उपलब्ध फ्री क्रेडिट्स भी OpenAI API की ओर उपयोग नहीं किए जा सकते। इसलिए, नए उपयोगकर्ताओं के लिए भी उपयोग को ट्रैक करना आवश्यक है। अनियंत्रित API उपयोग अप्रत्याशित रूप से बड़े बिल का कारण बन सकता है।
OpenAI शुल्क टोकन उपयोग और खपत पर आधारित होते हैं। टोकन मॉडल द्वारा प्रोसेस किए गए टेक्स्ट की इकाइयों का प्रतिनिधित्व करते हैं—इनपुट और आउटपुट दोनों के लिए। बड़े टेक्स्ट दस्तावेज़ को प्रोसेस करना, लंबे उत्तर जनरेट करने की तुलना में अधिक टोकन खाता है। जितने अधिक टोकन आप उपयोग करेंगे, उतना अधिक भुगतान करेंगे। इसलिए, मॉडल को दी जाने वाली जानकारी या उससे जनरेट कराई जाने वाली जानकारी में संयम बरतें।
max_tokens पैरामीटर का उपयोग करके उस रिक्वेस्ट में उपभोग किए जाने वाले टोकनों की संख्या सीमित करें। प्रोडक्शन मॉडलों के लिए, प्रयोग करके निर्धारित करें कि आपकी रिक्वेस्ट या उपयोगकर्ताओं को आम तौर पर कितने टोकनों की आवश्यकता होती है और तदनुसार उपयोग सीमित करें। केस-टू-केस आधार पर सीमा बढ़ाएँ।
बुनियादी मेट्रिक्स मॉनिटर करने के लिए:
- Azure AI Services | Azure OpenAI होमपेज से, मॉनिटर करने के लिए रिसोर्स चुनें।
- रिसोर्स पेज पर, विभिन्न मेट्रिक्स देखने के लिए Monitor टैब चुनें, जैसे प्रति मॉडल और प्रति डिप्लॉयमेंट HTTP रिक्वेस्ट की संख्या और प्रोसेस किए गए टोकनों की संख्या।

Azure OpenAI मेट्रिक्स डैशबोर्ड।
आप और विस्तृत मेट्रिक्स भी देख सकते हैं:
- बाएँ मेनू में Monitoring विकल्प से Metrics चुनें।

Azure OpenAI विस्तृत मेट्रिक्स।
- Select a scope पॉप-अप में, OpenAI इंस्टेंस चुनें (चेकबॉक्स मार्क करें)
- Apply. चुनें
Metrics पेज पर:
- ऊपर दाईं ओर समय-सीमा चुनें।
- (शुरुआत में खाली) चार्ट के शीर्ष मेन्यूबार से, Metric ड्रॉपडाउन से उपयुक्त मेट्रिक चुनें। विभिन्न मेट्रिक्स में से चुनें, जैसे:
- Azure OpenAI requests,
- टोकन उपयोग संबंधी आँकड़े (active tokens, generated tokens, आदि)
- API कॉल का प्रदर्शन (time to first byte, आदि), और भी बहुत कुछ।

Azure OpenAI मॉनिटरिंग उदाहरण।
अंत में, हमेशा API अकाउंट्स पर बजट सीमाएँ सेट करें और सेटिंग्स को इस प्रकार कॉन्फ़िगर करें कि बजट थ्रेसहोल्ड पार होने पर आपको ईमेल अलर्ट मिलें।
मॉडलों का फाइन-ट्यूनिंग
OpenAI के बेस मॉडल, अनेक विभिन्न डोमेन्स को कवर करने वाले बड़े डेटासेट्स पर प्रशिक्षित होते हैं। व्यापक रूप से, LLM मॉडलों से इच्छित आउटपुट पाने के तीन तरीके हैं:
- प्रॉम्प्ट इंजीनियरिंग: अधिकांश उपयोग मामलों में, प्रॉम्प्ट में विशिष्ट निर्देश जोड़ना पर्याप्त होता है। इसे प्रॉम्प्ट इंजीनियरिंग कहा जाता है।
- फ्यू-शॉट लर्निंग: जहाँ प्रॉम्प्ट इंजीनियरिंग पर्याप्त नहीं होती, वहाँ उपयोगकर्ता की इच्छित प्रतिक्रियाएँ समझाने के लिए प्रॉम्प्ट में कुछ उदाहरण जोड़ें। इसे फ्यू-शॉट लर्निंग कहते हैं, जिसमें मॉडल कुछ उदाहरणों के आधार पर सीखता है।
- फाइन-ट्यूनिंग: कभी-कभी, आप किसी बेहद विशिष्ट डोमेन पर मॉडल से बातचीत करना चाहते हैं, जैसे किसी विशेष उपकरण की मरम्मत के मैनुअल के आधार पर। इस विषय पर टेक्स्ट जनरेट करना डोमेन-विशिष्ट शब्दावली और भाषा पैटर्न का उपयोग करता है, जो सार्वजनिक डेटासेट्स (जिन पर बेस मॉडल प्रशिक्षित हुए) का हिस्सा होने की संभावना कम है।
यदि फ्यू-शॉट लर्निंग और प्रॉम्प्ट इंजीनियरिंग से सही प्रतिक्रियाएँ नहीं मिलतीं, तो आप बेस मॉडल को फाइन-ट्यून कर सकते हैं।
फाइन-ट्यूनिंग का अर्थ है किसी प्री-ट्रेंड बेस मॉडल को एक विशेषीकृत डेटासेट पर पुनः-प्रशिक्षित करना। व्यवहार में, केवल बेस मॉडल की कुछ परतों (पूरे मॉडल नहीं) को नए डेटा पर पुनः-प्रशिक्षित किया जाता है। Azure फाइन-ट्यूनिंग ट्यूटोरियल एक लोकप्रिय OpenAI मॉडल को फाइन-ट्यून करने के चरण समझाता है।
याद रखें कि किसी बेस मॉडल को सफलतापूर्वक फाइन-ट्यून करने के लिए, आपको हजारों प्रशिक्षण उदाहरणों के साथ बड़े पैमाने पर प्रासंगिक, उच्च-गुणवत्ता वाले डेटा की आवश्यकता होती है। इसके अलावा, फाइन-ट्यूनिंग में अनिवार्य रूप से मॉडल को प्रशिक्षित करने के लिए बड़े अग्रिम खर्च शामिल होते हैं। अतिरिक्त रूप से, डिप्लॉयमेंट से पहले फाइन-ट्यून किए गए मॉडल की होस्टिंग भी आपके खर्च पर करनी होती है।
अपनी API keys को सुरक्षित रखना
सार्वजनिक रूप से एक्सपोज़ हुई API keys का दुरुपयोग संवेदनशील जानकारी तक पहुँचने, असुरक्षित और/या अवैध कार्य करने, या अनधिकृत अनुरोध करने के लिए किया जा सकता है, जिससे अकाउंट मालिक को बड़ा बिल भरना पड़ सकता है। इसलिए, सोर्स कोड में keys को हार्डकोड करने के बजाय उन्हें सुरक्षित रूप से प्रबंधित करना महत्वपूर्ण है। इसे करने के विभिन्न तरीके हैं:
- क्लाउड सेवाओं के लिए, AWS Secrets Manager और Azure Key Vault जैसे key मैनेजमेंट टूल्स का उपयोग करें।
- keys को key-value फ़ॉर्मेट में स्टोर करने के लिए
.envफ़ाइलों का उपयोग करें। सुनिश्चित करने के लिए कि यह कोड रिपॉज़िटरी में कमिट न हो, इस फ़ाइल को.gitignoreसूची में जोड़ें। - Jupyter नोटबुक-आधारित सेवाओं के लिए keys को environment का हिस्सा बनाकर स्टोर करने का विकल्प उपयोग करें। यह तरीका इस ट्यूटोरियल में पहले बताया गया था।
मैं सलाह देता हूँ कि keys किन कार्यों के लिए उपयोग की जा सकती हैं, इसकी permissions सीमित रखें। यह भी उपयोगी है कि समय-समय पर keys को रोटेट करें या फिर से जनरेट करें ताकि लीक होने की स्थिति में पुरानी keys का दुरुपयोग न हो सके।
निष्कर्ष
इस ट्यूटोरियल में, हमने Azure अकाउंट से शुरुआत, OpenAI सेवाएँ सेट अप करना, नया OpenAI इंस्टेंस बनाना, और मॉडल डिप्लॉय करना चर्चा किया। फिर हमने व्यावहारिक कार्यों के लिए OpenAI मॉडलों का उपयोग करने के उदाहरण देखे। हमने Azure OpenAI संसाधनों के उपयोग और प्रदर्शन की मॉनिटरिंग का तरीका भी कवर किया।
Microsoft Azure की गहरी समझ के लिए, DataCamp Azure Fundamentals ट्रैक का अनुसरण करें। OpenAI की मूल अवधारणाओं के बारे में अधिक जानने के लिए, DataCamp OpenAI Fundamentals ट्रैक देखें।
FAQs
Azure OpenAI, OpenAI से कैसे अलग है?
Azure OpenAI, Azure प्लेटफ़ॉर्म के भीतर से OpenAI मॉडल्स तक पहुँच Azure उपयोगकर्ताओं को देता है। इस प्रकार, Azure उपयोगकर्ताओं को किसी और सॉफ़्टवेयर प्लेटफ़ॉर्म को कॉन्फ़िगर और प्रबंधित करने की ज़रूरत नहीं पड़ती। यह अन्य Azure-आधारित सेवाओं के साथ एकीकरण को भी आसान बनाता है।
क्या Azure OpenAI मॉडल्स को फाइन-ट्यून करने की अनुमति देता है?
हाँ, आप अपने विशेष उपयोग मामले के अनुसार तैयार किए गए प्रशिक्षण और वैलिडेशन डेटासेट प्रदान कर सकते हैं और उनका उपयोग बेस मॉडल को फाइन-ट्यून करने के लिए कर सकते हैं।
हालाँकि, ध्यान रखें कि फाइन-ट्यून किए गए मॉडल का प्रदर्शन प्रशिक्षण डेटा की गुणवत्ता पर अत्यधिक निर्भर होता है। घटिया या अप्रासंगिक डेटा, बेस मॉडल की तुलना में प्रदर्शन में गिरावट लाता है।
Azure OpenAI तक पहुँचने के लिए मैं किन तरीकों का उपयोग कर सकता/सकती हूँ?
आप Azure OpenAI सेवाओं तक दो तरीकों से पहुँचते हैं—Azure वेब एप्लिकेशन का उपयोग करके, या API का उपयोग करके। वेब ऐप, ChatGPT वेब इंटरफ़ेस की तरह काम करता है। आप API का उपयोग करके मॉडलों के साथ प्रोग्रामैटिक रूप से इंटरैक्ट कर सकते हैं। API, अन्य एप्लिकेशनों के साथ AI टूल्स के एकीकरण की अनुमति देता है।
मैं Azure OpenAI API के साथ कौन-सी भाषाएँ उपयोग कर सकता/सकती हूँ?
Azure OpenAI C#, Go, Java, JavaScript, Python, और REST (HTTP रिक्वेस्ट्स) जैसी विभिन्न भाषाओं को सपोर्ट करता है। डेटा साइंस और AI/ML डोमेन में लोकप्रियता के कारण Python सबसे अधिक उपयोग की जाने वाली भाषाओं में से एक है। और महत्वपूर्ण बात, Python इकोसिस्टम में बड़े डेटासेट्स के साथ काम करने के लिए कई टूल्स शामिल हैं।
सर्वर-साइड एप्लिकेशनों के साथ एकीकरण के लिए, अपनी एप्लिकेशन की बाकी भाषा के समान भाषा का उपयोग करें।
Azure OpenAI का उपयोग करके मैं किन मॉडलों तक पहुँच सकता/सकती हूँ?
Azure OpenAI, GPT-4, GPT-4o, GPT-3.5, DALL-E (टेक्स्ट से इमेज), Whisper (स्पीच से टेक्स्ट), और बहुत कुछ जैसे मॉडलों तक पहुँच देता है। वर्तमान में उपलब्ध मॉडलों की सूची Azure दस्तावेज़ में पाई जा सकती है।

अरुण एक पूर्व स्टार्टअप संस्थापक हैं जो नई चीज़ें बनाना पसंद करते हैं। वे वर्तमान में कृत्रिम बुद्धिमत्ता की तकनीकी और गणितीय नींव का अन्वेषण कर रहे हैं। उन्हें जो सीखा है उसे साझा करना अच्छा लगता है, इसलिए वे इस पर लिखते हैं।
DataCamp के अलावा, आप उनके प्रकाशन Medium, Airbyte, और Vultr पर पढ़ सकते हैं।
Azure OpenAI, Azure क्लाउड सेवाओं के प्लेटफ़ॉर्म का उपयोग करके OpenAI के मॉडलों (जैसे GPT-4) तक पहुँच प्रदान करता है।
इस ट्यूटोरियल में, मैं Azure OpenAI का परिचय देता हूँ और इसे शुरू करने का तरीका दिखाता हूँ। हम अकाउंट सेट अप करना, AI मॉडल को डिप्लॉय करना, और API का उपयोग करके विभिन्न सरल कार्य करना कवर करेंगे।
Azure OpenAI क्या है?
Azure SQL डेटाबेस से लेकर डेटा वेयरहाउसिंग और Azure Synapse जैसी एनालिटिक्स सॉल्यूशंस तक, वेब सेवाओं की पूरी रेंज ऑफर करता है। इन सेवाओं के कई उपयोगकर्ताओं को OpenAI के मॉडलों को अपने वर्कफ़्लो में एकीकृत करने की आवश्यकता होती है।
OpenAI के मॉडलों तक पहुँच का पारंपरिक तरीका OpenAI API के माध्यम से है। Azure OpenAI, Azure प्लेटफ़ॉर्म के जरिए OpenAI के मॉडलों की Microsoft की पेशकश है। यह Azure उपयोगकर्ताओं को OpenAI की सेवाओं (नेचुरल लैंग्वेज प्रोसेसिंग, कोड जनरेशन, इमेज जनरेशन, और बहुत कुछ) को उनके Azure-आधारित इंफ्रास्ट्रक्चर में एकीकृत करने की अनुमति देता है।
इस प्रकार, डेवलपर्स को कोई नया वेब सेवाओं का प्लेटफ़ॉर्म सीखकर उसे अपने वर्कफ़्लो में जोड़ने की आवश्यकता नहीं होती। चूँकि यह Azure प्लेटफ़ॉर्म पर आधारित है, इसलिए इसे स्केल करना और भारी वर्कलोड संभालना आसान है। Azure प्लेटफ़ॉर्म का उपयोग करने वाले डेवलपर्स और संगठन एक समान परिचित इंटरफ़ेस के माध्यम से AI-आधारित सेवाओं का प्रोविजन, प्रबंधन, मॉनिटरिंग, और बजटिंग कर सकते हैं। यह अनुपालन और भुगतान वर्कफ़्लो को संभालना भी आसान बनाता है।