Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.

Amazon SageMaker ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য

এটি অ্যাডস্পার্টের সিনিয়র মেশিন লার্নিং ইঞ্জিনিয়ার ভিক্টর এনরিকো জেনির একটি অতিথি পোস্ট।

অ্যাডস্পার্ট একটি বার্লিন-ভিত্তিক ISV যেটি একটি বিড ম্যানেজমেন্ট টুল তৈরি করেছে যা স্বয়ংক্রিয়ভাবে পারফরম্যান্স মার্কেটিং এবং বিজ্ঞাপন প্রচারাভিযান অপ্টিমাইজ করার জন্য ডিজাইন করা হয়েছে। কোম্পানির মূল নীতি হল কৃত্রিম বুদ্ধিমত্তার সাহায্যে ই-কমার্স বিজ্ঞাপনের লাভের সর্বোচ্চকরণ স্বয়ংক্রিয়ভাবে করা। বিজ্ঞাপন প্ল্যাটফর্মের ক্রমাগত বিকাশ নতুন সুযোগের পথ প্রশস্ত করে, যা অ্যাডস্পার্ট তাদের গ্রাহকদের সাফল্যের জন্য দক্ষতার সাথে ব্যবহার করে।

Adspert-এর প্রাথমিক লক্ষ্য হল বিভিন্ন প্ল্যাটফর্ম জুড়ে বিজ্ঞাপন প্রচারাভিযান অপ্টিমাইজ করার সময় ব্যবহারকারীদের জন্য প্রক্রিয়াটিকে সহজ করা। এর মধ্যে রয়েছে প্রতিটি প্ল্যাটফর্মের উপরে একটি স্তরের সর্বোত্তম বাজেটের বিপরীতে ভারসাম্যপূর্ণ বিভিন্ন প্ল্যাটফর্ম জুড়ে সংগৃহীত তথ্যের ব্যবহার। অ্যাডসপার্টের ফোকাস হল কোন প্ল্যাটফর্ম ব্যবহার করা হোক না কেন, গ্রাহকের লক্ষ্য অর্জনকে অপ্টিমাইজ করা। Adspert আমাদের গ্রাহকদের উল্লেখযোগ্য সুবিধা দিতে প্রয়োজনীয় প্ল্যাটফর্ম যোগ করতে থাকে।

এই পোস্টে, আমরা শেয়ার করেছি কিভাবে অ্যাডস্পার্ট বিভিন্ন AWS পরিষেবা ব্যবহার করে স্ক্র্যাচ থেকে মূল্য নির্ধারণের টুল তৈরি করেছে আমাজন সেজমেকার এবং কিভাবে Adspert এর সাথে সহযোগিতা করেছে এডাব্লুএস ডেটা ল্যাব নকশা থেকে রেকর্ড সময়ের মধ্যে নির্মাণ এই প্রকল্প ত্বরান্বিত করা.

প্রাইসিং টুলটি একটি ইকমার্স মার্কেটপ্লেসে বিক্রেতা-নির্বাচিত পণ্যের মূল্য নির্ধারণ করে এবং পণ্যের স্তরে লাভ সর্বাধিক করার জন্য দৃশ্যমানতা এবং লাভের মার্জিনের উপর ভিত্তি করে।

একজন বিক্রেতা হিসাবে, আপনার পণ্যগুলি সর্বদা দৃশ্যমান হওয়া অপরিহার্য কারণ এটি বিক্রয় বৃদ্ধি করবে৷ ইকমার্স বিক্রয়ের সবচেয়ে গুরুত্বপূর্ণ বিষয় হল যদি আপনার অফারটি প্রতিযোগীর অফারের পরিবর্তে গ্রাহকদের কাছে দৃশ্যমান হয়।

যদিও এটি অবশ্যই নির্দিষ্ট ইকমার্স প্ল্যাটফর্মের উপর নির্ভর করে, আমরা দেখেছি যে পণ্যের মূল্য হল সবচেয়ে গুরুত্বপূর্ণ মূল পরিসংখ্যানগুলির মধ্যে একটি যা দৃশ্যমানতাকে প্রভাবিত করতে পারে। যাইহোক, দাম প্রায়ই এবং দ্রুত পরিবর্তিত হয়; এই কারণে প্রাইসিং টুলটিকে দৃশ্যমানতা বাড়ানোর জন্য কাছাকাছি-রিয়েল টাইমে কাজ করতে হবে।

সমাধান ওভারভিউ

নিম্নলিখিত চিত্রটি সমাধানের স্থাপত্যকে চিত্রিত করে।

সমাধান নিম্নলিখিত উপাদান ধারণ করে:

  1. PostgreSQL-এর জন্য Amazon Relational Database Service (Amazon RDS) পোস্টগ্রেস ডাটাবেসের জন্য একটি RDS-এ সংরক্ষিত পণ্যের তথ্য ধারণকারী ডেটার প্রধান উৎস।
  2. পণ্য তালিকা পরিবর্তন তথ্য একটি রিয়েল টাইমে আসে অ্যামাজন সরল সারি পরিষেবা (Amazon SQS) সারি।
  3. অ্যামাজন আরডিএস-এ সঞ্চিত পণ্যের তথ্য প্রায়-রিয়েল টাইমে কাঁচা স্তরে প্রবেশ করানো হয় যেখানে উপলব্ধ পরিবর্তন ডেটা ক্যাপচার (সিডিসি) প্যাটার্ন ব্যবহার করে AWS ডাটাবেস মাইগ্রেশন সার্ভিস (AWS DMS)।
  4. Amazon SQS থেকে আসা পণ্য তালিকা বিজ্ঞপ্তিগুলি একটি ব্যবহার করে কাঁচা স্তরে প্রায় বাস্তব সময়ে প্রবেশ করানো হয় এডাব্লুএস ল্যাম্বদা ফাংশন.
  5. মূল উৎস তথ্য সংরক্ষণ করা হয় আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3) Parquet ডেটা বিন্যাস ব্যবহার করে কাঁচা স্তরের বালতি। এই স্তরটি ডেটা লেকের জন্য সত্যের একক উত্স। এই স্টোরেজে ব্যবহৃত পার্টিশন ডেটার ক্রমবর্ধমান প্রক্রিয়াকরণ সমর্থন করে।
  6. এডাব্লুএস আঠালো এক্সট্রাক্ট, ট্রান্সফর্ম এবং লোড (ETL) কাজগুলি পণ্যের ডেটা পরিষ্কার করে, ডুপ্লিকেটগুলি সরিয়ে দেয় এবং ডেটা একত্রীকরণ এবং জেনেরিক ট্রান্সফর্মেশন প্রয়োগ করে যা একটি নির্দিষ্ট ব্যবসায়িক ক্ষেত্রে আবদ্ধ নয়।
  7. Amazon S3 পর্যায় স্তর প্রস্তুত ডেটা গ্রহণ করে যা পরবর্তী প্রক্রিয়াকরণের জন্য Apache Parquet বিন্যাসে সংরক্ষণ করা হয়। স্টেজ স্টোরে ব্যবহৃত পার্টিশন ডেটার ক্রমবর্ধমান প্রক্রিয়াকরণকে সমর্থন করে।
  8. এই লেয়ারে তৈরি AWS Glue কাজগুলি Amazon S3 স্টেজ লেয়ারে উপলব্ধ ডেটা ব্যবহার করে। এর মধ্যে রয়েছে ব্যবহারের ক্ষেত্রে-নির্দিষ্ট ব্যবসায়িক নিয়ম এবং প্রয়োজনীয় গণনার প্রয়োগ। এই কাজের ফলাফলের ডেটা Amazon S3 বিশ্লেষণ স্তরে সংরক্ষণ করা হয়।
  9. Amazon S3 বিশ্লেষণ স্তরটি প্রশিক্ষণের উদ্দেশ্যে এমএল মডেল দ্বারা ব্যবহৃত ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। কিউরেটেড স্টোরে ব্যবহৃত পার্টিশন প্রত্যাশিত ডেটা ব্যবহারের উপর ভিত্তি করে। এটি স্টেজ লেয়ারে ব্যবহৃত পার্টিশনের থেকে ভিন্ন হতে পারে।
  10. রিপ্রাইজিং এমএল মডেলটি সেজমেকার স্ক্রিপ্ট মোডে একটি স্কিট-লার্ন র্যান্ডম ফরেস্ট ইমপ্লিমেন্টেশন, যা S3 বাকেট (বিশ্লেষণ স্তর) এ উপলব্ধ ডেটা ব্যবহার করে প্রশিক্ষিত হয়।
  11. একটি AWS Glue ডেটা প্রসেসিং কাজ রিয়েল-টাইম ইনফারেন্সের জন্য ডেটা প্রস্তুত করে। কাজটি S3 বালতিতে (স্টেজ লেয়ার) ইনজেস্ট করা ডেটা প্রক্রিয়া করে এবং সেজমেকার ইনফারেন্স এন্ডপয়েন্টকে আহ্বান করে। ডেটা সেজমেকার রিপ্রাইজিং মডেল দ্বারা ব্যবহার করার জন্য প্রস্তুত করা হয়েছে। AWS Glue-কে Lambda-এর থেকে পছন্দ করা হয়েছিল, কারণ অনুমানের জন্য বিভিন্ন জটিল ডেটা প্রসেসিং ক্রিয়াকলাপ যেমন যোগদান এবং উইন্ডো ফাংশনগুলির উচ্চ পরিমাণ ডেটার (দৈনিক লেনদেনের বিলিয়ন) প্রয়োজন হয়৷ রিপ্রাইজিং মডেল ইনভোকেশনের ফলাফল S3 বালতিতে (ইনফারেন্স লেয়ার) সংরক্ষণ করা হয়।
  12. SageMaker প্রশিক্ষণ কাজ একটি SageMaker শেষ পয়েন্ট ব্যবহার করে স্থাপন করা হয়. এই এন্ডপয়েন্টটি AWS Glue inference প্রসেসর দ্বারা আমন্ত্রিত হয়, যা পণ্যের দৃশ্যমানতা বাড়ানোর জন্য কাছাকাছি-রিয়েল-টাইম মূল্য সুপারিশ তৈরি করে।
  13. সেজমেকার ইনফারেন্স এন্ডপয়েন্ট দ্বারা উত্পন্ন ভবিষ্যদ্বাণীগুলি Amazon S3 অনুমান স্তরে সংরক্ষণ করা হয়।
  14. Lambda ভবিষ্যদ্বাণী অপ্টিমাইজার ফাংশন সেজমেকার ইনফারেন্স এন্ডপয়েন্ট দ্বারা উত্পন্ন সুপারিশগুলিকে প্রক্রিয়া করে এবং একটি নতুন মূল্য সুপারিশ তৈরি করে যা বিক্রয়ের পরিমাণ এবং বিক্রয় মার্জিনের মধ্যে একটি ট্রেড-অফ প্রয়োগ করে বিক্রেতার লাভকে সর্বাধিক করার উপর ফোকাস করে৷
  15. Lambda পূর্বাভাস অপ্টিমাইজার দ্বারা উত্পন্ন মূল্য সুপারিশগুলি পুনরায় মূল্য নির্ধারণের API এ জমা দেওয়া হয়, যা বাজারে পণ্যের মূল্য আপডেট করে।
  16. Lambda পূর্বাভাস অপ্টিমাইজার দ্বারা উত্পন্ন আপডেট করা মূল্য সুপারিশগুলি Amazon S3 অপ্টিমাইজেশান স্তরে সংরক্ষণ করা হয়৷
  17. AWS Glue প্রেডিকশন লোডার জব পোস্টগ্রেস এসকিউএল ডাটাবেসের জন্য সোর্স RDS-এ পুনরায় লোড করে যে ভবিষ্যদ্বাণীগুলি অডিট এবং রিপোর্টিং উদ্দেশ্যে ML মডেল দ্বারা উত্পন্ন হয়৷ এই উপাদানটি বাস্তবায়নের জন্য AWS Glue Studio ব্যবহার করা হয়েছিল; এটি একটি গ্রাফিকাল ইন্টারফেস যা AWS Glue-এ ETL কাজগুলি তৈরি করা, চালানো এবং নিরীক্ষণ করা সহজ করে তোলে।

ডেটা প্রস্তুতি

অ্যাডস্পার্টের দৃশ্যমানতা মডেলের ডেটাসেটটি একটি SQS সারি থেকে তৈরি করা হয়েছে এবং Lambda-এর সাথে রিয়েল টাইমে আমাদের ডেটা লেকের কাঁচা স্তরে প্রবেশ করানো হয়েছে। পরবর্তীতে, সদৃশ ট্রান্সফরমেশনের মাধ্যমে কাঁচা ডেটা স্যানিটাইজ করা হয়, যেমন ডুপ্লিকেট অপসারণ। এই প্রক্রিয়াটি AWS গ্লুতে প্রয়োগ করা হয়। ফলাফল আমাদের ডেটা লেকের স্টেজিং স্তরে সংরক্ষণ করা হয়। বিজ্ঞপ্তিগুলি একটি প্রদত্ত পণ্যের জন্য প্রতিযোগীদের তাদের মূল্য, পরিপূর্ণতা চ্যানেল, শিপিংয়ের সময় এবং আরও অনেক পরিবর্তনশীল প্রদান করে। তারা একটি প্ল্যাটফর্ম-নির্ভর দৃশ্যমানতা পরিমাপও প্রদান করে, যা একটি বুলিয়ান পরিবর্তনশীল (দৃশ্যমান বা দৃশ্যমান নয়) হিসাবে প্রকাশ করা যেতে পারে। অফার পরিবর্তন ঘটলে যেকোন সময় আমরা একটি বিজ্ঞপ্তি পাই, যা আমাদের সমস্ত গ্রাহকদের পণ্যে প্রতি মাসে কয়েক মিলিয়ন ইভেন্ট যোগ করে।

এই ডেটাসেট থেকে, আমরা নিম্নোক্তভাবে প্রশিক্ষণের ডেটা বের করি: প্রতিটি বিজ্ঞপ্তির জন্য, আমরা দৃশ্যমান অফারগুলিকে প্রতিটি অদৃশ্যমান অফারের সাথে যুক্ত করি এবং এর বিপরীতে। প্রতিটি ডেটা পয়েন্ট দুই বিক্রেতার মধ্যে একটি প্রতিযোগিতার প্রতিনিধিত্ব করে, যেখানে একজন স্পষ্ট বিজয়ী এবং পরাজিত হয়। এই প্রক্রিয়াকরণ কাজটি স্পার্কের সাথে একটি AWS আঠালো কাজে প্রয়োগ করা হয়। প্রস্তুত প্রশিক্ষণ ডেটাসেট SageMaker দ্বারা ব্যবহার করার জন্য বিশ্লেষণ S3 বালতিতে পুশ করা হয়।

মডেল প্রশিক্ষণ

আমাদের মডেল অফার প্রতিটি জোড়া জন্য শ্রেণীবদ্ধ, যদি একটি প্রদত্ত অফার দৃশ্যমান হবে. এই মডেলটি আমাদের গ্রাহকদের জন্য সর্বোত্তম মূল্য গণনা করতে, প্রতিযোগিতার ভিত্তিতে দৃশ্যমানতা বাড়াতে এবং তাদের লাভ সর্বাধিক করতে সক্ষম করে। সর্বোপরি, এই শ্রেণীবিভাগ মডেলটি আমাদের তালিকাগুলি দৃশ্যমান বা দৃশ্যমান না হওয়ার কারণগুলির গভীর অন্তর্দৃষ্টি দিতে পারে৷ আমরা নিম্নলিখিত বৈশিষ্ট্যগুলি ব্যবহার করি:

  • প্রতিযোগীদের দামের সাথে আমাদের দামের অনুপাত
  • পরিপূর্ণতা চ্যানেলে পার্থক্য
  • প্রতিটি বিক্রেতার জন্য প্রতিক্রিয়ার পরিমাণ
  • প্রতিটি বিক্রেতার প্রতিক্রিয়া রেটিং
  • ন্যূনতম শিপিং সময় পার্থক্য
  • সর্বোচ্চ শিপিং সময় পার্থক্য
  • প্রতিটি বিক্রেতার পণ্যের প্রাপ্যতা

অ্যাডসপার্ট মডেলটিকে প্রশিক্ষণ এবং হোস্ট করতে সেজমেকার ব্যবহার করে। আমরা Scikit-Learn Random Forest এর বাস্তবায়ন ব্যবহার করি সেজমেকার স্ক্রিপ্ট মোড. আমরা প্রশিক্ষণ স্ক্রিপ্টে সরাসরি স্কিট-লার্ন পাইপলাইনে কিছু বৈশিষ্ট্য প্রিপ্রসেসিং অন্তর্ভুক্ত করি। নিম্নলিখিত কোড দেখুন:

import numpy as np

def transform_price(X):
    X = X.to_numpy()
    return np.log(
        X[:, 0] / np.nanmin([X[:, 1], X[:, 2]], axis=0),
    ).reshape(-1, 1)

def difference(X):
    X = X.to_numpy()
    return (X[:, 0] - X[:, 1]).reshape(-1, 1)

def fulfillment_difference(X):
    X = X.astype(int)
    return difference(X)

সবচেয়ে গুরুত্বপূর্ণ preprocessing ফাংশন এক transform_price, যা প্রতিযোগী মূল্যের ন্যূনতম মূল্য এবং একটি বহিরাগত মূল্য কলাম দ্বারা মূল্যকে ভাগ করে। আমরা খুঁজে পেয়েছি যে এই বৈশিষ্ট্যটি মডেলের নির্ভুলতার উপর প্রাসঙ্গিক প্রভাব ফেলে। আমরা মডেলটিকে আপেক্ষিক মূল্যের পার্থক্যের উপর ভিত্তি করে সিদ্ধান্ত নিতে দেওয়ার জন্য লগারিদম প্রয়োগ করি, সম্পূর্ণ মূল্যের পার্থক্য নয়।

মধ্যে training_script.py স্ক্রিপ্ট, আমরা প্রথমে সংজ্ঞায়িত করব কিভাবে Scikit-Learn তৈরি করতে হয় ColumnTransformer একটি ডেটাফ্রেমের কলামে নির্দিষ্ট ট্রান্সফরমার প্রয়োগ করতে:

import argparse
import os
from io import StringIO

import joblib
import numpy as np
import pandas as pd
from custom_transformers import difference
from custom_transformers import fulfillment_difference
from custom_transformers import transform_price
from sklearn.compose import ColumnTransformer
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import FunctionTransformer
from sklearn.preprocessing import OneHotEncoder

def make_preprocessor():
    return ColumnTransformer([
        ('price_by_smallest_cp', FunctionTransformer(transform_price),
         ['price', 'competitor_price', 'external_price']),
        (fulfillment_difference, FunctionTransformer(fulfillment_difference),
         ['fulfillment', 'competitor_'fulfillment']),
        ('feedback_count', 'passthrough',
         ['feedback_count', 'competitor_feedback_count']),
        ('feedback_rating', 'passthrough',
         ['feedback_rating', 'competitor_feedback_rating']),
        (
            'availability_type',
            OneHotEncoder(categories=[['NOW'], ['NOW']],
                          handle_unknown='ignore'),
            ['availability_type', 'competitor_availability_type'],
        ),
        ('min_shipping', FunctionTransformer(difference),
         ['minimum_shipping_hours', 'competitor_min_shipping_hours']),
        ('max_shipping', FunctionTransformer(difference),
         ['maximum_shipping_hours', 'competitor_max_shipping_hours']),
    ], remainder='drop')

প্রশিক্ষণ স্ক্রিপ্টে, আমরা Parquet থেকে ডেটা একটি পান্ডাস ডেটাফ্রেমে লোড করি, এর পাইপলাইন সংজ্ঞায়িত করি ColumnTranformer এবং RandomForestClassifier, এবং মডেল প্রশিক্ষণ. পরে, মডেল ব্যবহার করে ক্রমিক করা হয় joblib:

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--output-data-dir', type=str,
                        default=os.environ['SM_OUTPUT_DATA_DIR'])
    parser.add_argument('--model-dir', type=str,
                        default=os.environ['SM_MODEL_DIR'])
    parser.add_argument('--train', type=str,
                        default=os.environ['SM_CHANNEL_TRAIN'])

    args = parser.parse_args()

    # load training data
    input_files = [os.path.join(args.train, file)
                   for file in os.listdir(args.train)]
    if len(input_files) == 0:
        raise ValueError
    raw_data = [pd.read_parquet(file) for file in input_files]
    train_data = pd.concat(raw_data)

    # split data set into x and y values
    train_y = train_data.loc[:, 'is_visible']

    if train_y.dtype != 'bool':
        raise ValueError(f'Label 'is_visible' has to be dtype bool but is'
                         f' {train_y.dtype}')

    train_X = train_data.drop('is_visible', axis=1)

    # fit the classifier pipeline and store the fitted model
    clf = Pipeline([
        ('preprocessor', make_preprocessor()),
        ('classifier', RandomForestClassifier(random_state=1)),
    ])
    clf.fit(train_X, train_y)
    joblib.dump(clf, os.path.join(args.model_dir, 'model.joblib'))

প্রশিক্ষণ স্ক্রিপ্টে, আমাদের অনুমানের জন্য ফাংশনগুলিও বাস্তবায়ন করতে হবে:

  • input_fn - পেলোডের অনুরোধের বডি থেকে ডেটা পার্স করার জন্য দায়ী
  • মডেল_এফএন - স্ক্রিপ্টের প্রশিক্ষণ বিভাগে ডাম্প করা মডেলটি লোড করে এবং ফেরত দেয়
  • predict_fn - পেলোড থেকে ডেটা ব্যবহার করে মডেল থেকে একটি ভবিষ্যদ্বাণী অনুরোধ করার জন্য আমাদের বাস্তবায়ন রয়েছে৷
  • predict_proba - পূর্বাভাসিত দৃশ্যমানতা বক্ররেখা আঁকার জন্য, আমরা ব্যবহার করে শ্রেণী সম্ভাব্যতা ফেরত দিই predict_proba ফাংশন, ক্লাসিফায়ারের বাইনারি পূর্বাভাসের পরিবর্তে

নিম্নলিখিত কোডটি দেখুন:

def input_fn(request_body, request_content_type):
    """Parse input data payload"""
    if request_content_type == 'text/csv':
        df = pd.read_csv(StringIO(request_body))
        return df
    else:
        raise ValueError(f'{request_content_type} not supported by script!')


def predict_fn(input_data, model):
    """Predict the visibilities"""
    classes = model.classes_

    if len(classes) != 2:
        raise ValueError('Model has more than 2 classes!')

    # get the index of the winning class
    class_index = np.where(model.classes_ == 1)[0][0]

    output = model.predict_proba(input_data)
    return output[:, class_index]


def model_fn(model_dir):
    """Deserialized and return fitted model

    Note that this should have the same name as the serialized model in the
    main method
    """
    clf = joblib.load(os.path.join(model_dir, 'model.joblib'))
    return clf

নিচের চিত্রটি অশুদ্ধতা-ভিত্তিক বৈশিষ্ট্যের গুরুত্ব দেখায় যা দ্বারা প্রত্যাবর্তন করা হয়েছে র্যান্ডম ফরেস্ট ক্লাসিফায়ার.

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.

SageMaker-এর সাথে, আমরা আমাদের বিদ্যমান উদাহরণগুলিতে লোড না রেখে বা পর্যাপ্ত সংস্থান সহ একটি পৃথক মেশিন সেট আপ না করেই প্রচুর পরিমাণে ডেটা (14 বিলিয়ন পর্যন্ত দৈনিক লেনদেন) মডেলটিকে প্রশিক্ষণ দিতে সক্ষম হয়েছি। অধিকন্তু, যেহেতু দৃষ্টান্তগুলি প্রশিক্ষণের কাজের পরে অবিলম্বে বন্ধ হয়ে যায়, সেজমেকারের সাথে প্রশিক্ষণ অত্যন্ত সাশ্রয়ী ছিল। SageMaker-এর সাথে মডেল স্থাপনা কোনো অতিরিক্ত কাজের চাপ ছাড়াই কাজ করেছে। পাইথন SDK-এ একটি একক ফাংশন কল আমাদের মডেলটিকে একটি অনুমান শেষ পয়েন্ট হিসাবে হোস্ট করার জন্য যথেষ্ট, এবং এটি SageMaker Python SDK ব্যবহার করে অন্যান্য পরিষেবা থেকে সহজেই অনুরোধ করা যেতে পারে। নিম্নলিখিত কোড দেখুন:

from sagemaker.sklearn.estimator import SKLearn

FRAMEWORK_VERSION = "0.23-1"
script_path = 'training_script.py'
output_location = f's3://{bucket}/{folder}/output'
source_dir = 'source_dir'

sklearn = SKLearn(
    entry_point=script_path,
    source_dir=source_dir,
    framework_version=FRAMEWORK_VERSION,
    instance_type='ml.m5.large',
    role=role,
    sagemaker_session=sagemaker_session,
    output_path=output_location)

sklearn.fit({'train': training_path})

মডেল আর্টিফ্যাক্ট ফিট ফাংশন দ্বারা Amazon S3 এ সংরক্ষণ করা হয়। নিম্নলিখিত কোডে দেখা যায়, মডেলটি একটি হিসাবে লোড করা যেতে পারে SKLearnModel মডেল আর্টিফ্যাক্ট, স্ক্রিপ্ট পাথ এবং কিছু অন্যান্য প্যারামিটার ব্যবহার করে অবজেক্ট। পরে, এটি পছন্দসই উদাহরণের ধরণ এবং দৃষ্টান্তের সংখ্যায় স্থাপন করা যেতে পারে।

model = sagemaker.sklearn.model.SKLearnModel(
    model_data=f'{output_location}/sagemaker-scikit-learn-2021-02-23-11-13-30-036/output/model.tar.gz',
    source_dir=source_dir,
    entry_point=script_path,
    framework_version=FRAMEWORK_VERSION,
    sagemaker_session=sagemaker_session,
    role=role
)
ENDPOINT_NAME = 'visibility-model-v1'
model.deploy(
    initial_instance_count=1,
    instance_type='ml.m5.large',
    endpoint_name=ENDPOINT_NAME
)

বাস্তব সময়ে মডেল মূল্যায়ন

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

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.

এই উদাহরণে, প্রতিযোগী 1 এর বিপরীতে দৃশ্যমানতা প্রায় একটি টুকরাওয়াইজ ধ্রুবক ফাংশন, যা পরামর্শ দেয় যে দৃশ্যমান হওয়ার জন্য আমাদের প্রধানত একটি নির্দিষ্ট থ্রেশহোল্ডের নীচে মূল্য কমাতে হবে, মোটামুটিভাবে প্রতিযোগীর মূল্য। যাইহোক, প্রতিযোগী 2 এর বিপরীতে দৃশ্যমানতা ততটা কমেনি। তার উপরে, আমাদের কাছে এখনও খুব বেশি দামের সাথেও দৃশ্যমান হওয়ার 50% সম্ভাবনা রয়েছে। ইনপুট ডেটা বিশ্লেষণ করে দেখা গেছে যে প্রতিযোগীর রেটিং কম পরিমাণে আছে, যা খুবই খারাপ। আমাদের মডেল শিখেছে যে এই নির্দিষ্ট ইকমার্স প্ল্যাটফর্মটি দুর্বল প্রতিক্রিয়া রেটিং সহ বিক্রেতাদের একটি অসুবিধা দেয়। আমরা অন্যান্য বৈশিষ্ট্যগুলির জন্য অনুরূপ প্রভাবগুলি আবিষ্কার করেছি, যেমন পরিপূর্ণতা চ্যানেল এবং শিপিংয়ের সময়৷

সেজমেকার এন্ডপয়েন্টের বিরুদ্ধে প্রয়োজনীয় ডেটা রূপান্তর এবং অনুমানগুলি AWS গ্লুতে প্রয়োগ করা হয়। Lambda থেকে গৃহীত রিয়েল-টাইম ডেটাতে মাইক্রো-ব্যাচগুলিতে AWS Glue জব কাজ করে।

অবশেষে, আমরা সমষ্টিগত দৃশ্যমানতার বক্ররেখা গণনা করতে চাই, যা প্রতিটি সম্ভাব্য মূল্যের জন্য পূর্বাভাসিত দৃশ্যমানতা। আমাদের অফারটি দৃশ্যমান হয় যদি এটি অন্য সমস্ত বিক্রেতার অফারগুলির থেকে ভাল হয়৷ আমাদের মূল্য দেওয়া প্রতিটি বিক্রেতার বিরুদ্ধে দৃশ্যমান হওয়ার সম্ভাবনার মধ্যে স্বাধীনতা ধরে নিলে, সমস্ত বিক্রেতার বিপরীতে দৃশ্যমান হওয়ার সম্ভাবনা সংশ্লিষ্ট সম্ভাব্যতার গুণফল। তার মানে সমস্ত বক্ররেখা গুণ করে একত্রিত দৃশ্যমানতা বক্ররেখা গণনা করা যেতে পারে।

নিম্নলিখিত পরিসংখ্যানগুলি সেজমেকার এন্ডপয়েন্ট থেকে ফিরে আসা পূর্বাভাসিত দৃশ্যমানতা দেখায়।

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.

নিম্নলিখিত চিত্রটি সমষ্টিগত দৃশ্যমানতা বক্ররেখা দেখায়।

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.

সর্বোত্তম মূল্য গণনা করতে, দৃশ্যমানতার বক্ররেখাটি প্রথমে মসৃণ করা হয় এবং তারপর মার্জিন দ্বারা গুণ করা হয়। মার্জিন গণনা করতে, আমরা পণ্যের খরচ এবং ফি ব্যবহার করি। বিক্রিত পণ্যের মূল্য এবং ফি হল AWS DMS এর মাধ্যমে সিঙ্ক করা স্ট্যাটিক পণ্যের তথ্য। লাভ ফাংশনের উপর ভিত্তি করে, Adspert সর্বোত্তম মূল্য গণনা করে এবং প্ল্যাটফর্মের API এর মাধ্যমে ইকমার্স প্ল্যাটফর্মে জমা দেয়।

এটি AWS Lambda পূর্বাভাস অপ্টিমাইজারে প্রয়োগ করা হয়েছে।

নিম্নলিখিত চিত্রটি পূর্বাভাসিত দৃশ্যমানতা এবং মূল্যের মধ্যে সম্পর্ক দেখায়।

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.

নিচের চিত্রটি মূল্য এবং লাভের মধ্যে সম্পর্ক দেখায়।

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.

উপসংহার

মুনাফা সর্বাধিকীকরণের জন্য অ্যাডস্পার্টের বিদ্যমান পদ্ধতিটি বিজ্ঞাপন থেকে আয় বাড়াতে বিড পরিচালনার উপর দৃষ্টি নিবদ্ধ করে। ইকমার্স মার্কেটপ্লেসগুলিতে উচ্চতর কর্মক্ষমতা অর্জন করতে, তবে, বিক্রেতাদের তাদের পণ্যের বিজ্ঞাপন এবং প্রতিযোগিতামূলক মূল্য উভয়ই বিবেচনা করতে হবে। দৃশ্যমানতার পূর্বাভাস দেওয়ার জন্য এই নতুন ML মডেলের সাহায্যে, আমরা গ্রাহকের দাম সামঞ্জস্য করতে আমাদের কার্যকারিতা প্রসারিত করতে পারি।

নতুন মূল্য নির্ধারণের সরঞ্জামটিকে প্রচুর পরিমাণে ডেটা, সেইসাথে রিয়েল-টাইম ডেটা রূপান্তর, ভবিষ্যদ্বাণী এবং মূল্য অপ্টিমাইজেশানের উপর এমএল মডেলের স্বয়ংক্রিয় প্রশিক্ষণে সক্ষম হতে হবে। এই পোস্টে, আমরা আমাদের মূল্য অপ্টিমাইজেশান ইঞ্জিনের প্রধান ধাপগুলির মধ্য দিয়ে হেঁটেছি, এবং সেই লক্ষ্যগুলি অর্জনের জন্য AWS ডেটা ল্যাবের সহযোগিতায় আমরা যে AWS আর্কিটেকচার প্রয়োগ করেছি।

ধারণা থেকে উৎপাদনে এমএল মডেল নেওয়া সাধারণত জটিল এবং সময়সাপেক্ষ। মডেলটিকে প্রশিক্ষণের জন্য আপনাকে প্রচুর পরিমাণে ডেটা পরিচালনা করতে হবে, এটি প্রশিক্ষণের জন্য সেরা অ্যালগরিদম বেছে নিতে হবে, এটি প্রশিক্ষণের সময় গণনার ক্ষমতা পরিচালনা করতে হবে এবং তারপরে মডেলটিকে একটি উত্পাদন পরিবেশে স্থাপন করতে হবে। সেজমেকার এমএল মডেল তৈরি এবং স্থাপন করা আরও সহজ করে এই জটিলতা কমিয়েছে। উপলব্ধ পছন্দের বিস্তৃত পরিসর থেকে আমরা সঠিক অ্যালগরিদম এবং ফ্রেমওয়ার্ক বেছে নেওয়ার পরে, সেজমেকার আমাদের মডেলকে প্রশিক্ষণ দিতে এবং এটিকে উৎপাদনে স্থাপন করার জন্য অন্তর্নিহিত সমস্ত অবকাঠামো পরিচালনা করে।

আপনি যদি সেজমেকারের সাথে নিজেকে পরিচিত করা শুরু করতে চান, তাহলে নিমজ্জন দিবস কর্মশালা ফিচার ইঞ্জিনিয়ারিং, বিভিন্ন অন্তর্নির্মিত অ্যালগরিদম থেকে কীভাবে এমএল ব্যবহারের কেস তৈরি করা যায় এবং কীভাবে উত্পাদনের মতো পরিস্থিতিতে এমএল মডেলকে প্রশিক্ষণ, টিউন এবং স্থাপন করা যায় সে সম্পর্কে আপনাকে এন্ড-টু-এন্ড বোঝার জন্য সাহায্য করতে পারে। এটি আপনাকে আপনার নিজস্ব মডেল আনতে এবং সেজমেকার প্ল্যাটফর্মে একটি অন-প্রিমিস এমএল ওয়ার্কলোড লিফ্ট-এন্ড-শিফ্ট করতে গাইড করে। এটি মডেল ডিবাগিং, মডেল মনিটরিং এবং অটোএমএলের মতো উন্নত ধারণাগুলিকে আরও প্রদর্শন করে এবং আপনাকে AWS ML ওয়েল-আর্কিটেক্টেড লেন্সের মাধ্যমে আপনার ML কাজের চাপ মূল্যায়ন করতে সহায়তা করে।

আপনি যদি ডেটা, অ্যানালিটিক্স, এআই এবং এমএল, সার্ভারবিহীন এবং কন্টেইনার আধুনিকীকরণের সাথে জড়িত ব্যবহারের ক্ষেত্রে বাস্তবায়নকে ত্বরান্বিত করতে সাহায্য করতে চান তবে অনুগ্রহ করে যোগাযোগ করুন এডাব্লুএস ডেটা ল্যাব.


লেখক সম্পর্কে

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.ভিক্টর এনরিকো জেনি জার্মানির বার্লিনে অবস্থিত অ্যাডসপার্টের একজন সিনিয়র মেশিন লার্নিং ইঞ্জিনিয়ার। তিনি গ্রাহকদের লাভ বাড়ানোর জন্য ভবিষ্যদ্বাণী এবং অপ্টিমাইজেশন সমস্যার সমাধান তৈরি করেন। ভিক্টরের ফলিত গণিতে একটি পটভূমি রয়েছে এবং ডেটা নিয়ে কাজ করতে পছন্দ করেন। তার অবসর সময়ে, তিনি হাঙ্গেরিয়ান শেখা, মার্শাল আর্ট অনুশীলন এবং গিটার বাজানো উপভোগ করেন।

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্স ব্যবহার করে সর্বোচ্চ লাভের জন্য সর্বোত্তম মূল্য। উল্লম্ব অনুসন্ধান. আ.এনিও যাজক তিনি AWS ডেটা ল্যাব দলের একজন ডেটা আর্কিটেক্ট। তিনি ব্যবসা এবং সাধারণ জীবিকার উপর ইতিবাচক প্রভাব ফেলে এমন নতুন প্রযুক্তির সাথে সম্পর্কিত সমস্ত কিছুর একজন উত্সাহী। Ennio এর ডেটা বিশ্লেষণে 9 বছরের বেশি অভিজ্ঞতা রয়েছে। তিনি কোম্পানিগুলিকে টেলিকমিউনিকেশন, ব্যাঙ্কিং, গেমিং, খুচরা এবং বীমার মতো শিল্প জুড়ে ডেটা প্ল্যাটফর্মগুলিকে সংজ্ঞায়িত করতে এবং প্রয়োগ করতে সহায়তা করেন।

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস মেশিন লার্নিং

একটি বড় গেমিং কোম্পানির জন্য বিষাক্ত বক্তৃতাকে শ্রেণীবদ্ধ করতে AWS একটি বৃহৎ ভাষা মডেল (LLM) এর উপর সূক্ষ্ম টিউনিং করে | আমাজন ওয়েব সার্ভিসেস

উত্স নোড: 1872582
সময় স্ট্যাম্প: আগস্ট 7, 2023