এমবেডিং

Gemini API অনেকগুলি এমবেডিং মডেলকে সমর্থন করে যা শব্দ, বাক্যাংশ, কোড এবং বাক্যগুলির জন্য এমবেডিং তৈরি করে৷ ফলস্বরূপ এমবেডিংগুলি অন্যান্য অনেকের মধ্যে শব্দার্থিক অনুসন্ধান, পাঠ্য শ্রেণিবিন্যাস এবং ক্লাস্টারিংয়ের মতো কাজের জন্য ব্যবহার করা যেতে পারে।

এমবেডিং কি?

এমবেডিং হল পাঠ্যের সংখ্যাসূচক উপস্থাপনা (বা অন্যান্য মিডিয়া ফর্ম্যাট) যা ইনপুটগুলির মধ্যে সম্পর্ক ক্যাপচার করে। টেক্সট এম্বেডিং টেক্সটকে ফ্লোটিং পয়েন্ট সংখ্যার অ্যারেতে রূপান্তর করে কাজ করে, যাকে ভেক্টর বলা হয়। এই ভেক্টরগুলি পাঠ্যের অর্থ ক্যাপচার করার জন্য ডিজাইন করা হয়েছে। এমবেডিং অ্যারের দৈর্ঘ্যকে ভেক্টরের মাত্রা বলা হয়। পাঠ্যের একটি উত্তরণ শত শত মাত্রা ধারণকারী ভেক্টর দ্বারা প্রতিনিধিত্ব করা যেতে পারে।

এম্বেডিং শব্দার্থগত অর্থ এবং প্রসঙ্গ ক্যাপচার করে, যার ফলস্বরূপ একই অর্থের সাথে "ঘনিষ্ঠ" এম্বেডিং থাকা পাঠ্য। উদাহরণস্বরূপ, "আমি আমার কুকুরটিকে পশুচিকিত্সকের কাছে নিয়ে গিয়েছিলাম" এবং "আমি আমার বিড়ালকে পশুচিকিত্সকের কাছে নিয়ে গিয়েছিলাম" বাক্যটিতে ভেক্টর স্পেসে একে অপরের কাছাকাছি এম্বেডিং থাকবে।

আপনি বিভিন্ন পাঠ্যের তুলনা করতে এবং তারা কীভাবে সম্পর্কিত তা বুঝতে এম্বেডিং ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি "বিড়াল" এবং "কুকুর" পাঠ্যের এম্বেডিংগুলি একসাথে থাকে তবে আপনি অনুমান করতে পারেন যে এই শব্দগুলি অর্থ, প্রসঙ্গে বা উভয় ক্ষেত্রেই একই রকম৷ এটি বিভিন্ন সাধারণ AI ব্যবহারের ক্ষেত্রে সক্ষম করে।

এম্বেডিং তৈরি করুন

টেক্সট এম্বেডিং তৈরি করতে embedContent পদ্ধতি ব্যবহার করুন:

from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

result = client.models.embed_content(
        model="gemini-embedding-exp-03-07",
        contents="What is the meaning of life?")

print(result.embeddings)
import { GoogleGenAI } from "@google/genai";

async function main() {

    const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });

    const response = await ai.models.embedContent({
        model: 'gemini-embedding-exp-03-07',
        contents: 'What is the meaning of life?',
    });

    console.log(response.embeddings);
}

main();
ctx := context.Background()

client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
    log.Fatal(err)
}
defer client.Close()

em := client.EmbeddingModel("gemini-embedding-exp-03-07")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))

if err != nil {
    panic(err)
}
fmt.Println(res.Embedding.Values)
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
     "content": {
     "parts":[{
     "text": "What is the meaning of life?"}]}
    }'

আপনি একাধিক খণ্ডের জন্য এম্বেডিংগুলিকে স্ট্রিংগুলির একটি তালিকা হিসাবে পাস করে তৈরি করতে পারেন।

টাস্কের ধরন

Retrieval Augmented Generation (RAG) সিস্টেম তৈরি করার সময়, একটি সাদৃশ্য অনুসন্ধান করতে টেক্সট এম্বেডিং ব্যবহার করা একটি সাধারণ নকশা। কিছু ক্ষেত্রে এর ফলে মান খারাপ হতে পারে, কারণ প্রশ্ন এবং তাদের উত্তর শব্দার্থগতভাবে এক নয়। যেমন একটি প্রশ্ন যেমন "কেন আকাশ নীল?" এবং এর উত্তর "সূর্যের আলোর বিচ্ছুরণ নীল রঙের কারণ হয়," বিবৃতি হিসাবে স্বতন্ত্রভাবে ভিন্ন অর্থ রয়েছে, যার অর্থ হল একটি RAG সিস্টেম স্বয়ংক্রিয়ভাবে তাদের সম্পর্ককে স্বীকৃতি দেবে না।

টাস্কের ধরনগুলি আপনাকে নির্দিষ্ট কাজের জন্য অপ্টিমাইজ করা এম্বেডিং তৈরি করতে সক্ষম করে, আপনার সময় এবং খরচ বাঁচায় এবং কর্মক্ষমতা উন্নত করে।

from google import genai
from google.genai import types

client = genai.Client(api_key="GEMINI_API_KEY")

result = client.models.embed_content(
        model="gemini-embedding-exp-03-07",
        contents="What is the meaning of life?",
        config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY")
)
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";

async function main() {

    const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });

    const response = await ai.models.embedContent({
        model: 'gemini-embedding-exp-03-07',
        contents: 'What is the meaning of life?',
        config: {
            taskType: "SEMANTIC_SIMILARITY",
        }
    });

    console.log(response.embeddings);
}

main();
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
     "content": {
     "parts":[{
     "text": "What is the meaning of life?"}]},
     "taskType": "SEMANTIC_SIMILARITY"
    }'

সমর্থিত টাস্ক প্রকার

টাস্ক টাইপ বর্ণনা
SEMANTIC_SIMILARITY টেক্সট সাদৃশ্য মূল্যায়ন করার জন্য অপ্টিমাইজ করা এমবেডিং তৈরি করতে ব্যবহৃত হয়।
CLASSIFICATION প্রিসেট লেবেল অনুযায়ী পাঠ্য শ্রেণীবদ্ধ করার জন্য অপ্টিমাইজ করা এমবেডিং তৈরি করতে ব্যবহৃত হয়।
CLUSTERING তাদের মিলের উপর ভিত্তি করে ক্লাস্টার পাঠ্যের জন্য অপ্টিমাইজ করা এমবেডিং তৈরি করতে ব্যবহৃত হয়।
RETRIEVAL_DOCUMENT , RETRIEVAL_QUERY , QUESTION_ANSWERING , এবং FACT_VERIFICATION নথি অনুসন্ধান বা তথ্য পুনরুদ্ধারের জন্য অপ্টিমাইজ করা এমবেডিং তৈরি করতে ব্যবহৃত হয়।
CODE_RETRIEVAL_QUERY একটি প্রাকৃতিক ভাষা প্রশ্নের উপর ভিত্তি করে একটি কোড ব্লক পুনরুদ্ধার করতে ব্যবহৃত হয়, যেমন একটি অ্যারে সাজানো বা লিঙ্ক করা তালিকা বিপরীত করা। কোড ব্লকের এমবেডিং RETRIEVAL_DOCUMENT ব্যবহার করে গণনা করা হয়।

কেস ব্যবহার করুন

টেক্সট এম্বেডিংগুলি বিভিন্ন সাধারণ AI ব্যবহারের ক্ষেত্রে ব্যবহৃত হয়, যেমন:

এম্বেডিং মডেল

Gemini API তিনটি মডেল অফার করে যা পাঠ্য এম্বেডিং তৈরি করে:

এরপর কি

এম্বেডিং কুইকস্টার্ট নোটবুক দেখুন।