GCP पर, लर्निंग इंटरप्रिटेबिलिटी टूल (एलआईटी) की मदद से एलएलएम प्रॉम्प्ट की डीबगिंग

1. खास जानकारी

इस लैब में, Google Cloud Platform (GCP) पर LIT ऐप्लिकेशन सर्वर को डिप्लॉय करने के बारे में पूरी जानकारी दी गई है. इससे, Vertex AI Gemini फ़ाउंडेशन मॉडल और खुद को होस्ट करने वाले तीसरे पक्ष के लार्ज लैंग्वेज मॉडल (एलएलएम) के साथ इंटरैक्ट किया जा सकता है. इसमें, प्रॉम्प्ट की गड़बड़ी को ठीक करने और मॉडल के नतीजों को समझने के लिए, LIT यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करने का तरीका भी बताया गया है.

इस लैब में, उपयोगकर्ताओं को ये काम करने का तरीका पता चलेगा:

  • GCP पर LIT सर्वर कॉन्फ़िगर करें.
  • LIT सर्वर को Vertex AI Gemini मॉडल या खुद होस्ट किए जा रहे अन्य एलएलएम से कनेक्ट करें.
  • मॉडल की परफ़ॉर्मेंस और अहम जानकारी को बेहतर बनाने के लिए, प्रॉम्प्ट का विश्लेषण करने, उन्हें डीबग करने, और उनके बारे में जानकारी पाने के लिए, LIT यूज़र इंटरफ़ेस का इस्तेमाल करें.

LIT क्या है?

लिट, मॉडल को समझने वाला एक विज़ुअल और इंटरैक्टिव टूल है. इसमें टेक्स्ट, इमेज, और टेबल के तौर पर डेटा इस्तेमाल किया जा सकता है. इसे स्टैंडअलोन सर्वर के तौर पर या Google Colab, Jupyter, और Google Cloud Vertex AI जैसे नोटबुक एनवायरमेंट में चलाया जा सकता है. LIT, PyPI और GitHub से उपलब्ध है.

इसे मूल रूप से, क्लासिफ़िकेशन और रिग्रेशन मॉडल को समझने के लिए बनाया गया था. हाल ही के अपडेट में, एलएलएम प्रॉम्प्ट को डीबग करने के लिए टूल जोड़े गए हैं. इनकी मदद से, यह पता लगाया जा सकता है कि उपयोगकर्ता, मॉडल, और सिस्टम कॉन्टेंट, जनरेशन के व्यवहार पर कैसे असर डालते हैं.

Vertex AI और Model Garden क्या हैं?

Vertex AI एक मशीन लर्निंग (एमएल) प्लैटफ़ॉर्म है. इसकी मदद से, एमएल मॉडल और एआई ऐप्लिकेशन को ट्रेन किया जा सकता है और डिप्लॉय किया जा सकता है. साथ ही, एआई के साथ काम करने वाले ऐप्लिकेशन में इस्तेमाल करने के लिए, एलएलएम को पसंद के मुताबिक बनाया जा सकता है. Vertex AI, डेटा इंजीनियरिंग, डेटा साइंस, और एमएल इंजीनियरिंग वर्कफ़्लो को जोड़ता है. इससे आपकी टीमें, एक ही टूलसेट का इस्तेमाल करके मिलकर काम कर सकती हैं. साथ ही, Google Cloud के फ़ायदों का इस्तेमाल करके अपने ऐप्लिकेशन को बड़े पैमाने पर उपलब्ध करा सकती हैं.

Vertex मॉडल गार्डन, एमएल मॉडल की लाइब्रेरी है. इसकी मदद से, Google के मालिकाना हक वाले और तीसरे पक्ष के चुनिंदा मॉडल और ऐसेट को खोजा जा सकता है, उनकी जांच की जा सकती है, उन्हें पसंद के मुताबिक बनाया जा सकता है, और डिप्लॉय किया जा सकता है.

आपको क्या करना होगा

LIT की पहले से बनी इमेज से Docker कंटेनर को डिप्लॉय करने के लिए, Google Cloud Shell और Cloud Run का इस्तेमाल किया जाएगा.

Cloud Run, मैनेज किया जाने वाला एक कंप्यूट प्लैटफ़ॉर्म है. इसकी मदद से, GPU के साथ-साथ Google के स्केलेबल इंफ़्रास्ट्रक्चर पर सीधे तौर पर कंटेनर चलाए जा सकते हैं.

डेटासेट

डेमो में, डिफ़ॉल्ट रूप से LIT प्रॉम्प्ट डीबगिंग सैंपल डेटासेट का इस्तेमाल किया जाता है. इसके अलावा, यूज़र इंटरफ़ेस (यूआई) की मदद से अपना डेटा भी लोड किया जा सकता है.

शुरू करने से पहले

इस रेफ़रंस गाइड के लिए, आपके पास Google Cloud प्रोजेक्ट होना चाहिए. आपके पास नया प्रोजेक्ट बनाने या पहले से बनाए गए प्रोजेक्ट को चुनने का विकल्प होता है.

2. Google Cloud Console और Cloud Shell लॉन्च करना

इस चरण में, आपको Google Cloud Console लॉन्च करना होगा और Google Cloud Shell का इस्तेमाल करना होगा.

2-a: Google Cloud Console लॉन्च करना

कोई ब्राउज़र खोलें और Google Cloud Console पर जाएं.

Google Cloud Console एक बेहतरीन और सुरक्षित वेब एडमिन इंटरफ़ेस है. इसकी मदद से, Google Cloud के संसाधनों को तुरंत मैनेज किया जा सकता है. यह एक ऐसा DevOps टूल है जिसे कहीं से भी इस्तेमाल किया जा सकता है.

2-b: Google Cloud Shell लॉन्च करना

Cloud Shell, ऑनलाइन डेवलपमेंट और ऑपरेशंस एनवायरमेंट है. इसे ब्राउज़र से कहीं से भी ऐक्सेस किया जा सकता है. अपने संसाधनों को मैनेज करने के लिए, इसके ऑनलाइन टर्मिनल का इस्तेमाल किया जा सकता है. इसमें gcloud कमांड-लाइन टूल, kubectl वगैरह जैसी सुविधाएं पहले से लोड होती हैं. ऑनलाइन Cloud Shell Editor का इस्तेमाल करके, क्लाउड-आधारित ऐप्लिकेशन को डेवलप, बिल्ड, डीबग, और डिप्लॉय भी किया जा सकता है. Cloud Shell, डेवलपर के लिए तैयार एक ऑनलाइन एनवायरमेंट उपलब्ध कराता है. इसमें, पहले से इंस्टॉल किए गए पसंदीदा टूल सेट और 5 जीबी का स्टोरेज स्पेस मिलता है. अगले चरणों में, आपको कमांड प्रॉम्प्ट का इस्तेमाल करना होगा.

मेन्यू बार में सबसे ऊपर दाईं ओर मौजूद आइकॉन का इस्तेमाल करके, Google Cloud Shell लॉन्च करें. इस आइकॉन को नीचे दिए गए स्क्रीनशॉट में नीले रंग के घेरे में दिखाया गया है.

Google Cloud Console लॉन्च

आपको पेज पर सबसे नीचे, Bash शेल वाला टर्मिनल दिखेगा.

Google Cloud Console

2-c: Google Cloud प्रोजेक्ट सेट करना

आपको gcloud कमांड का इस्तेमाल करके, प्रोजेक्ट आईडी और प्रोजेक्ट का क्षेत्र सेट करना होगा.

# Set your GCP Project ID.
gcloud config set project your-project-id

# Set your GCP Project Region.
gcloud config set run/region your-project-region

3. Cloud Run की मदद से, LIT ऐप्लिकेशन सर्वर की Docker इमेज को डिप्लॉय करना

3-a: LIT ऐप्लिकेशन को Cloud Run पर डिप्लॉय करना

आपको पहले LIT-App के नए वर्शन को डिप्लॉय किए जाने वाले वर्शन के तौर पर सेट करना होगा.

# Set latest version as your LIT_SERVICE_TAG.
export LIT_SERVICE_TAG=latest
# List all the public LIT GCP App server docker images.
gcloud container images  list-tags  us-east4-docker.pkg.dev/lit-demos/lit-app/gcp-lit-app

वर्शन टैग सेट करने के बाद, आपको सेवा का नाम देना होगा.

# Set your lit service name. While 'lit-app-service' is provided as a placeholder, you can customize the service name based on your preferences.
export LIT_SERVICE_NAME=lit-app-service

इसके बाद, Cloud Run में कंटेनर को डिप्लॉय करने के लिए, यह कमांड चलाएं.

# Use below cmd to deploy the LIT App to Cloud Run.
gcloud run deploy $LIT_SERVICE_NAME \
--image us-east4-docker.pkg.dev/lit-demos/lit-app/gcp-lit-app:$LIT_SERVICE_TAG \
--port 5432 \
--cpu 8 \
--memory 32Gi \
--no-cpu-throttling \
--no-allow-unauthenticated

LIT की मदद से, सर्वर शुरू करते समय डेटासेट भी जोड़ा जा सकता है. ऐसा करने के लिए, DATASETS वेरिएबल को सेट करें, ताकि वह डेटा लोड किया जा सके जिसे आपको लोड करना है. इसके लिए, name:path फ़ॉर्मैट का इस्तेमाल करें, जैसे कि data_foo:/bar/data_2024.jsonl. डेटासेट का फ़ॉर्मैट .jsonl होना चाहिए. इसमें हर रिकॉर्ड में prompt और target और source फ़ील्ड शामिल होने चाहिए. हालांकि, target और source फ़ील्ड शामिल करना ज़रूरी नहीं है. एक से ज़्यादा डेटासेट लोड करने के लिए, उन्हें कॉमा से अलग करें. अगर यह सेट नहीं है, तो LIT प्रॉम्प्ट डीबगिंग सैंपल डेटासेट लोड हो जाएगा.

# Set the dataset.
export DATASETS=[DATASETS]

MAX_EXAMPLES सेट करके, हर आकलन सेट से लोड किए जाने वाले उदाहरणों की ज़्यादा से ज़्यादा संख्या सेट की जा सकती है.

# Set the max examples.
export MAX_EXAMPLES=[MAX_EXAMPLES]

इसके बाद, डिप्लॉय करने के लिए दिए गए निर्देश में,

--set-env-vars "DATASETS=$DATASETS" \
--set-env-vars "MAX_EXAMPLES=$MAX_EXAMPLES" \

3-b: LIT ऐप्लिकेशन सेवा देखना

LIT ऐप्लिकेशन सर्वर बनाने के बाद, आपको यह सेवा Cloud Console के Cloud Run सेक्शन में दिखेगी.

आपने जो LIT ऐप्लिकेशन सेवा अभी-अभी बनाई है उसे चुनें. पक्का करें कि सेवा का नाम LIT_SERVICE_NAME जैसा ही हो.

Google Cloud Console में Cloud Run की सूची

आपने अभी जो सेवा डिप्लॉय की है उस पर क्लिक करके, सेवा का यूआरएल देखा जा सकता है.

Google Cloud Find Service का यूआरएल

इसके बाद, आपको LIT का यूज़र इंटरफ़ेस (यूआई) दिखेगा. अगर आपको कोई गड़बड़ी मिलती है, तो 'समस्या हल करना' सेक्शन देखें.

LIT डेमो का होम पेज

गतिविधि को मॉनिटर करने, गड़बड़ी के मैसेज देखने, और डिप्लॉयमेंट की प्रोग्रेस को ट्रैक करने के लिए, लॉग सेक्शन देखें.

Google Cloud Console में Cloud Run का लॉग

सेवा की मेट्रिक देखने के लिए, मेट्रिक सेक्शन देखें.

Google Cloud Console में Cloud Run की मेट्रिक

3-c: डेटासेट लोड करना

LIT यूज़र इंटरफ़ेस (यूआई) में Configure विकल्प पर क्लिक करें. इसके बाद, Dataset चुनें. डेटासेट का नाम और यूआरएल डालकर, डेटासेट लोड करें. डेटासेट का फ़ॉर्मैट .jsonl होना चाहिए. इसमें हर रिकॉर्ड में prompt और target और source फ़ील्ड शामिल होने चाहिए. हालांकि, target और source फ़ील्ड शामिल करना ज़रूरी नहीं है.

LIT Load Dataset

4. Vertex AI Model Garden में Gemini मॉडल तैयार करना

Google के Gemini फ़ाउंडेशन मॉडल, Vertex AI API से उपलब्ध हैं. जनरेशन के लिए इन मॉडल का इस्तेमाल करने के लिए, LIT VertexAIModelGarden मॉडल रैपर उपलब्ध कराता है. बस मनचाहा वर्शन बताएं (उदाहरण के लिए, "gemini-1.5-pro-001") को मॉडल के नाम वाले पैरामीटर की मदद से सेट किया जा सकता है. इन मॉडल का इस्तेमाल करने का एक मुख्य फ़ायदा यह है कि उन्हें डिप्लॉय करने के लिए, कोई अतिरिक्त मेहनत नहीं करनी पड़ती. डिफ़ॉल्ट रूप से, आपके पास GCP पर Gemini 1.0 Pro और Gemini 1.5 Pro जैसे मॉडल का तुरंत ऐक्सेस होता है. इससे, कॉन्फ़िगरेशन के लिए अतिरिक्त चरणों की ज़रूरत नहीं होती.

4-a: Vertex AI को अनुमतियां देना

GCP में Gemini से क्वेरी करने के लिए, आपको सेवा खाते को Vertex AI की अनुमतियां देनी होंगी. पक्का करें कि सेवा खाते का नाम Default compute service account हो. खाते के सेवा खाते का ईमेल पता कॉपी करें.

GCP के सेवा खाते

IAM की अनुमति वाली सूची में, सेवा खाते के ईमेल पते को प्रिंसिपल के तौर पर जोड़ें और उसे Vertex AI User भूमिका दें.

सेवा खातों का ईमेल पता जोड़ना

4-b: Gemini मॉडल लोड करना

यहां दिया गया तरीका अपनाकर, Gemini मॉडल लोड किए जाएंगे और उनके पैरामीटर में बदलाव किया जाएगा.

    1. LIT यूज़र इंटरफ़ेस (यूआई) में, Configure विकल्प पर क्लिक करें.
    1. Select a base model विकल्प में जाकर, gemini विकल्प चुनें.
    1. आपको new_name में मॉडल का नाम डालना होगा.
    1. चुने गए Gemini मॉडल को model_name के तौर पर डालें.
    1. Load Model पर क्लिक करें.
    1. Submit पर क्लिक करें.

LIT Load Gemini Model

5. GCP पर खुद होस्ट किया जाने वाला एलएलएम मॉडल सर्वर डिप्लॉय करना

LIT के मॉडल सर्वर की डॉकर इमेज की मदद से, एलएलएम को खुद होस्ट करने पर, मॉडल के व्यवहार के बारे में ज़्यादा जानकारी पाने के लिए, LIT के salience और tokenize फ़ंक्शन का इस्तेमाल किया जा सकता है. मॉडल सर्वर इमेज, KerasNLP या Hugging Face Transformers मॉडल के साथ काम करती है.इसमें लाइब्रेरी से मिले और खुद के होस्ट किए गए वेट शामिल हैं. जैसे, Google Cloud Storage पर.

5-a: मॉडल कॉन्फ़िगर करना

हर कंटेनर, एक मॉडल लोड करता है. इसे एनवायरमेंट वैरिएबल का इस्तेमाल करके कॉन्फ़िगर किया जाता है.

आपको MODEL_CONFIG सेट करके, लोड करने के लिए मॉडल तय करने चाहिए. फ़ॉर्मैट name:path होना चाहिए, जैसे कि model_foo:model_foo_path. पाथ, यूआरएल, लोकल फ़ाइल पाथ या कॉन्फ़िगर किए गए डीप लर्निंग फ़्रेमवर्क के लिए प्रीसेट का नाम हो सकता है. ज़्यादा जानकारी के लिए, नीचे दी गई टेबल देखें. इस सर्वर को Gemma, GPT2, Llama, और Mistral के साथ, काम करने वाली सभी DL_FRAMEWORK वैल्यू पर टेस्ट किया गया है. अन्य मॉडल काम करने चाहिए, लेकिन हो सकता है कि आपको उनमें बदलाव करने पड़ें.

# Set models you want to load. While 'gemma2b is given as a placeholder, you can load your preferred model by following the instructions above.
export MODEL_CONFIG=gemma2b:gemma_2b_en

इसके अलावा, LIT मॉडल सर्वर में नीचे दिए गए निर्देश का इस्तेमाल करके, अलग-अलग एनवायरमेंट वैरिएबल कॉन्फ़िगर किए जा सकते हैं. ज़्यादा जानकारी के लिए, कृपया टेबल देखें. ध्यान दें कि हर वैरिएबल को अलग से सेट करना होगा.

# Customize the variable value as needed.
export [VARIABLE]=[VALUE]

वैरिएबल

वैल्यू

ब्यौरा

DL_FRAMEWORK

kerasnlp, transformers

मॉडलिंग लाइब्रेरी, जिसका इस्तेमाल तय किए गए रनटाइम पर मॉडल वेट लोड करने के लिए किया जाता है. डिफ़ॉल्ट रूप से, यह kerasnlp पर सेट होती है.

DL_RUNTIME

torch, tensorflow

डीप लर्निंग बैकएंड फ़्रेमवर्क, जिस पर मॉडल काम करता है. इस सर्वर से लोड किए गए सभी मॉडल, एक ही बैकएंड का इस्तेमाल करेंगे. साथ ही, इनके काम न करने पर गड़बड़ियां होंगी. डिफ़ॉल्ट रूप से, यह torch पर सेट होती है.

PRECISION

bfloat16, float32

एलएलएम मॉडल के लिए फ़्लोटिंग पॉइंट की सटीक जानकारी. डिफ़ॉल्ट रूप से, यह bfloat16 पर सेट होती है.

BATCH_SIZE

धनात्मक पूर्णांक

हर बैच में प्रोसेस किए जाने वाले उदाहरणों की संख्या. डिफ़ॉल्ट रूप से, यह 1 पर सेट होती है.

SEQUENCE_LENGTH

धनात्मक पूर्णांक

इनपुट प्रॉम्प्ट और जनरेट किए गए टेक्स्ट का ज़्यादा से ज़्यादा क्रम. डिफ़ॉल्ट रूप से, यह 512 पर सेट होती है.

5-b: मॉडल सर्वर को Cloud Run पर डिप्लॉय करना

आपको सबसे पहले, Model Server के नए वर्शन को डिप्लॉय किए जाने वाले वर्शन के तौर पर सेट करना होगा.

# Set latest as MODEL_VERSION_TAG.
export MODEL_VERSION_TAG=latest
# List all the public LIT GCP model server docker images.
gcloud container images  list-tags  us-east4-docker.pkg.dev/lit-demos/lit-app/gcp-model-server

वर्शन टैग सेट करने के बाद, आपको अपने मॉडल-सर्वर का नाम देना होगा.

# Set your Service name.
export MODEL_SERVICE_NAME='gemma2b-model-server'

इसके बाद, Cloud Run में कंटेनर को डिप्लॉय करने के लिए, यहां दिया गया निर्देश चलाएं. अगर आपने एनवायरमेंट वैरिएबल सेट नहीं किए हैं, तो डिफ़ॉल्ट वैल्यू लागू हो जाएंगी. ज़्यादातर एलएलएम को महंगे कंप्यूटिंग संसाधनों की ज़रूरत होती है. इसलिए, हमारा सुझाव है कि आप जीपीयू का इस्तेमाल करें. अगर आपको सिर्फ़ सीपीयू पर चलाना है (जो GPT2 जैसे छोटे मॉडल के लिए ठीक से काम करता है), तो उससे जुड़े आर्ग्युमेंट --gpu 1 --gpu-type nvidia-l4 --max-instances 7 को हटाया जा सकता है.

# Deploy the model service container.
gcloud beta run deploy $MODEL_SERVICE_NAME \
--image us-east4-docker.pkg.dev/lit-demos/lit-app/gcp-model-server:$MODEL_VERSION_TAG \
--port 5432 \
--cpu 8 \
--memory 32Gi \
--no-cpu-throttling \
--gpu 1 \
--gpu-type nvidia-l4  \
--max-instances 7  \
--set-env-vars "MODEL_CONFIG=$MODEL_CONFIG" \
--no-allow-unauthenticated

इसके अलावा, यहां दिए गए निर्देश जोड़कर, एनवायरमेंट वैरिएबल को पसंद के मुताबिक बनाया जा सकता है. सिर्फ़ उन एनवायरमेंट वैरिएबल को शामिल करें जो आपकी ज़रूरतों के हिसाब से ज़रूरी हैं.

--set-env-vars "DL_FRAMEWORK=$DL_FRAMEWORK" \
--set-env-vars "DL_RUNTIME=$DL_RUNTIME" \
--set-env-vars "PRECISION=$PRECISION" \
--set-env-vars "BATCH_SIZE=$BATCH_SIZE" \
--set-env-vars "SEQUENCE_LENGTH=$SEQUENCE_LENGTH" \

कुछ मॉडल को ऐक्सेस करने के लिए, अन्य एनवायरमेंट वैरिएबल की ज़रूरत पड़ सकती है. Kaggle Hub (जिसका इस्तेमाल KerasNLP मॉडल के लिए किया जाता है) और Hugging Face Hub से जुड़े निर्देश देखें.

5-c: मॉडल सर्वर को ऐक्सेस करना

मॉडल सर्वर बनाने के बाद, शुरू की गई सेवा को आपके GCP प्रोजेक्ट के Cloud Run सेक्शन में देखा जा सकता है.

वह मॉडल सर्वर चुनें जिसे आपने अभी बनाया है. पक्का करें कि सेवा का नाम MODEL_SERVICE_NAME जैसा ही हो.

Google Cloud Console में Cloud Run की सूची

आपने जो मॉडल सेवा डिप्लॉय की है उस पर क्लिक करके, सेवा का यूआरएल देखा जा सकता है.

Google Cloud Find Service का यूआरएल

गतिविधि को मॉनिटर करने, गड़बड़ी के मैसेज देखने, और डिप्लॉयमेंट की प्रोग्रेस को ट्रैक करने के लिए, लॉग सेक्शन देखें.

Google Cloud Console में Cloud Run का लॉग

सेवा की मेट्रिक देखने के लिए, मेट्रिक सेक्शन देखें.

Google Cloud Console में Cloud Run की मेट्रिक

5-d: खुद होस्ट किए गए मॉडल लोड करना

अगर आपने तीसरे चरण में अपने LIT सर्वर को प्रॉक्सी किया है (समस्या हल करने का तरीका बताने वाले सेक्शन को देखें), तो आपको नीचे दिया गया कमांड चलाकर अपना GCP आइडेंटिटी टोकन हासिल करना होगा.

# Find your GCP identity token.
gcloud auth print-identity-token

यहां दिए गए तरीके का पालन करके, खुद होस्ट किए जा रहे मॉडल लोड किए जाएंगे और उनके पैरामीटर में बदलाव किए जाएंगे.

  1. LIT यूज़र इंटरफ़ेस (यूआई) में, Configure विकल्प पर क्लिक करें.
  2. Select a base model विकल्प में जाकर, LLM (self hosted) विकल्प चुनें.
  3. आपको new_name में मॉडल का नाम डालना होगा.
  4. base_url के तौर पर, अपने मॉडल सर्वर का यूआरएल डालें.
  5. अगर आपने LIT ऐप्लिकेशन सर्वर को प्रॉक्सी किया है, तो identity_token में पहचान टोकन डालें (तीसरा और सातवां चरण देखें). अगर ऐसा नहीं है, तो इसे खाली छोड़ दें.
  6. Load Model पर क्लिक करें.
  7. Submit पर क्लिक करें.

LIT Load LLM Models

6. GCP पर LIT के साथ इंटरैक्ट करना

LIT में कई सुविधाएं उपलब्ध हैं. इनकी मदद से, मॉडल के व्यवहार को डीबग करने और समझने में मदद मिलती है. बॉक्स में टेक्स्ट टाइप करके और मॉडल के अनुमान देखकर, मॉडल से क्वेरी करने जैसा आसान काम किया जा सकता है. इसके अलावा, LIT की बेहतर सुविधाओं के सुइट की मदद से, मॉडल की बारीकी से जांच की जा सकती है. इन सुविधाओं में ये शामिल हैं:

6-a: LIT की मदद से मॉडल से क्वेरी करना

मॉडल और डेटासेट लोड होने के बाद, LIT अपने-आप डेटासेट से क्वेरी करता है. कॉलम में जवाब चुनकर, हर मॉडल का जवाब देखा जा सकता है.

LIT View Response

LIT Response

6-b: सीक्वेंस की अहमियत बताने वाली तकनीक का इस्तेमाल करना

फ़िलहाल, LIT पर सीक्वेंस की अहमियत तय करने की तकनीक, सिर्फ़ खुद के होस्ट किए गए मॉडल के साथ काम करती है.

सीक्वेंस सैलिएंस एक विज़ुअल टूल है. यह एलएलएम प्रॉम्प्ट को डीबग करने में मदद करता है. यह टूल, किसी खास आउटपुट के लिए प्रॉम्प्ट के किन हिस्सों को हाइलाइट करता है. सीक्वेंस की अहमियत के बारे में ज़्यादा जानने के लिए, इस सुविधा को इस्तेमाल करने का तरीका जानने के लिए पूरा ट्यूटोरियल देखें.

अहम जानकारी के नतीजे ऐक्सेस करने के लिए, प्रॉम्प्ट या जवाब में किसी भी इनपुट या आउटपुट पर क्लिक करें. ऐसा करने पर, अहम जानकारी के नतीजे दिखेंगे.

लिट सीक्वेंस के हाइलाइट वाले नतीजे

6-c: प्रॉम्प्ट और टारगेट में मैन्युअल तरीके से बदलाव करना

LIT की मदद से, मौजूदा डेटापॉइंट के लिए, किसी भी prompt और target में मैन्युअल तरीके से बदलाव किया जा सकता है. Add पर क्लिक करने से, नया इनपुट डेटासेट में जुड़ जाएगा.

LIT को मैन्युअल तरीके से बदलना

6-d: प्रॉम्प्ट की तुलना एक साथ करना

LIT की मदद से, ओरिजनल और बदले गए उदाहरणों के साथ प्रॉम्प्ट की तुलना की जा सकती है. किसी उदाहरण में मैन्युअल तरीके से बदलाव किया जा सकता है. साथ ही, ओरिजनल और बदले गए वर्शन, दोनों के लिए अनुमान का नतीजा और क्रम की अहमियत का विश्लेषण एक साथ देखा जा सकता है. हर डेटापॉइंट के लिए प्रॉम्प्ट में बदलाव किया जा सकता है. इसके बाद, LIT मॉडल से क्वेरी करके उससे जुड़ा जवाब जनरेट करेगा.

LIT Compare Datasets

6-e: एक साथ कई मॉडल की तुलना करना

LIT की मदद से, अलग-अलग टेक्स्ट जनरेशन और स्कोरिंग के उदाहरणों के साथ-साथ, खास मेट्रिक के लिए एग्रीगेट किए गए उदाहरणों के आधार पर, मॉडल की तुलना की जा सकती है. लोड किए गए अलग-अलग मॉडल से क्वेरी करके, उनके जवाबों में अंतर की आसानी से तुलना की जा सकती है.

LIT Compare Model Response

6-f: अपने-आप काम करने वाले काउंटरफ़ैक्ट जनरेटर

वैकल्पिक इनपुट बनाने के लिए, अपने-आप काम करने वाले काउंटरफ़ैक्टुअल जनरेटर का इस्तेमाल किया जा सकता है. साथ ही, यह देखा जा सकता है कि आपका मॉडल उन पर तुरंत कैसे काम करता है.

LIT, इनपुट अपने-आप जनरेट करता है

6-g: मॉडल की परफ़ॉर्मेंस का आकलन करना

पूरे डेटासेट या फ़िल्टर किए गए या चुने गए उदाहरणों के किसी भी सबसेट में, मेट्रिक का इस्तेमाल करके मॉडल की परफ़ॉर्मेंस का आकलन किया जा सकता है. फ़िलहाल, टेक्स्ट जनरेशन के लिए BLEU और ROUGE स्कोर का इस्तेमाल किया जा सकता है.

लिट व्यू मॉडल की मेट्रिक

7. समस्या का हल

7-a: ऐक्सेस से जुड़ी संभावित समस्याएं और उनके समाधान

Cloud Run में डिप्लॉय करते समय --no-allow-unauthenticated लागू होता है. इसलिए, आपको यहां दी गई गड़बड़ियां दिख सकती हैं.

Google Cloud पर पाबंदी वाली गड़बड़ी

LIT ऐप्लिकेशन की सेवा को ऐक्सेस करने के दो तरीके हैं.

1. Local Service के लिए प्रॉक्सी

नीचे दिए गए निर्देश का इस्तेमाल करके, सेवा को लोकल होस्ट पर प्रॉक्सी किया जा सकता है.

# Proxy the service to local host.
gcloud run services proxy $LIT_SERVICE_NAME

इसके बाद, आपको प्रॉक्सी की गई सेवा के लिंक पर क्लिक करके, LIT सर्वर को ऐक्सेस करने में मदद मिलेगी.

2. उपयोगकर्ताओं की पुष्टि सीधे तौर पर करना

उपयोगकर्ताओं की पुष्टि करने के लिए, इस लिंक पर जाएं. इससे, LIT ऐप्लिकेशन की सेवा को सीधे ऐक्सेस किया जा सकता है. इस तरीके से, उपयोगकर्ताओं के ग्रुप को भी सेवा ऐक्सेस करने की अनुमति दी जा सकती है. कई लोगों के साथ मिलकर काम करने के लिए, यह एक बेहतर विकल्प है.

7-b: यह पक्का करने के लिए जांच करना कि मॉडल सर्वर लॉन्च हो गया है या नहीं

यह पक्का करने के लिए कि मॉडल सर्वर लॉन्च हो गया है, अनुरोध भेजकर सीधे मॉडल सर्वर से क्वेरी की जा सकती है. मॉडल सर्वर तीन एंडपॉइंट उपलब्ध कराता है: predict, tokenize, और salience. पक्का करें कि आपने अपने अनुरोध में prompt फ़ील्ड और target फ़ील्ड, दोनों की जानकारी दी हो.

# Query the model server predict endpoint.
curl -X POST  http://YOUR_MODEL_SERVER_URL/predict -H "Content-Type: application/json" -d '{"inputs":[{"prompt":"[YOUR PROMPT]", "target":[YOUR TARGET]}]}'

# Query the model server tokenize endpoint.
curl -X POST  http://YOUR_MODEL_SERVER_URL/tokenize -H "Content-Type: application/json" -d '{"inputs":[{"prompt":"[YOUR PROMPT]", "target":[YOUR TARGET]}]}'

# Query the model server salience endpoint.
curl -X POST  http://YOUR_MODEL_SERVER_URL/salience -H "Content-Type: application/json" -d '{"inputs":[{"prompt":"[YOUR PROMPT]", "target":[YOUR TARGET]}]}'

अगर आपको ऐक्सेस करने में कोई समस्या आती है, तो ऊपर दिया गया सेक्शन 7-a देखें.

8. बधाई हो

कोडलैब पूरा करने के लिए बधाई! आराम करने का समय!

व्यवस्थित करें

लैब को खाली करने के लिए, लैब के लिए बनाई गई सभी Google Cloud सेवाओं को मिटाएं. नीचे दिए गए कमांड चलाने के लिए, Google Cloud Shell का इस्तेमाल करें.

अगर कोई गतिविधि न होने की वजह से Google Cloud कनेक्शन टूट जाता है, तो पिछले चरणों का पालन करके वैरिएबल रीसेट करें.

# Delete the LIT App Service.
gcloud run services delete $LIT_SERVICE_NAME

अगर आपने मॉडल सर्वर शुरू किया है, तो आपको मॉडल सर्वर भी मिटाना होगा.

# Delete the Model Service.
gcloud run services delete $MODEL_SERVICE_NAME

इसके बारे में और पढ़ें

नीचे दिए गए कॉन्टेंट की मदद से, LIT टूल की सुविधाओं के बारे में ज़्यादा जानें:

  • जेमा: लिंक
  • LIT का ओपन सोर्स कोड बेस: Git repo
  • लिट पेपर: ArXiv
  • लिट प्रॉम्प्ट डीबग करने से जुड़ा पेपर: ArXiv
  • लिट की सुविधा का वीडियो डेमो: YouTube
  • लिट प्रॉम्प्ट डीबग करने का डेमो: YouTube
  • ज़िम्मेदारी के साथ जेन एआई का इस्तेमाल करने के लिए टूलकिट: लिंक

संपर्क करना

इस कोडलैब के बारे में कोई सवाल पूछने या कोई समस्या बताने के लिए, कृपया GitHub पर हमसे संपर्क करें.

लाइसेंस

इस काम के लिए, Creative Commons एट्रिब्यूशन 4.0 जनरिक लाइसेंस के तहत लाइसेंस मिला है.