আমি কাজের জন্য একটি AI বৈশিষ্ট্যে কাজ শুরু করেছি কারণ আমি একটি অবাস্তব, পুরানো বিশেষজ্ঞ টুলকে বাইপাস করার সুযোগ দেখেছি এবং অবশ্যই, প্রতিটি স্টার্ট-আপকে একটি AI স্টার্ট-আপ হতে হবে। এই বৈশিষ্ট্যটি প্রোটোটাইপ করার সময়, আমি কয়েকটি অদ্ভুতভাবে পরিচিত সমস্যার সম্মুখীন হয়েছি। তাই আমি আমার জার্নালগুলি দেখেছিলাম এবং ম্যাগিকে পেয়েছি, শিশু অনুবাদক আমি এবং একজন বন্ধু প্রাক-মহামারী তৈরি করেছিলেন। এটি প্রায় সাত বছর হয়ে গেছে, এবং একই সমস্যাগুলি যা এআই পরীক্ষা এবং উত্পাদন স্থাপনায় জর্জরিত করেছিল তা এখনও একটি নিরবচ্ছিন্ন প্লেগ, যদিও শিল্পের রাষ্ট্র উল্লেখযোগ্য অগ্রগতি করেছে। AI উত্পাদন করার পথে সাধারণ সমস্যাগুলি প্রদর্শন করতে ম্যাগি থেকে আমার নোট, চিন্তাভাবনা এবং কোডের প্রতিফলন এখানে রয়েছে। আমি আশা করি আপনি এটি সহায়ক খুঁজে.
ম্যাগি একই নামের শো থেকে সিম্পসনদের সবচেয়ে ছোট সন্তানের নাম। ম্যাগি এমন একটি শিশু যে এখনও কথা বলতে শেখেনি। ম্যাগির চাচা, হার্ব, একটি খারাপ ব্যবসায়িক সিদ্ধান্তের পরে পাথরের নীচে আঘাত করে এবং সিম্পসনদের সাথে চলে যায়। তিনি অলৌকিকভাবে তার ভাতিজির কাছ থেকে অনুপ্রেরণা নিয়ে এবং তার বক্তৃতার অভাব নিয়ে পরিবারের হতাশা থেকে একটি কাজের শিশু অনুবাদক তৈরি করেন। একইভাবে, একটি শিশু অনুবাদক তৈরির ধারণাটি আমার বন্ধু ক্রিসের কাছে এসেছিল তার শিশু বোনের সাথে সম্পর্ক থেকে, যার কথা বলতে সমস্যা হয়েছিল। তাই, আমরা আমাদের অ্যাপের নাম দিয়েছি ম্যাগি।
ক্রিস সেই সময় একটি শিশুর ল্যাবে কাজ করছিলেন, এবং তিনি বুঝতে পেরেছিলেন যে একটি নির্দিষ্ট বয়সের সীমার মধ্যে শিশুরা যে শব্দ করতে পারে তার বর্ণালীতে শারীরবৃত্তীয় সীমাবদ্ধতা রয়েছে। এই অন্তর্দৃষ্টি থেকে, তিনি প্রশিক্ষণের তথ্য সংগ্রহ করেছিলেন এবং শিশুর কান্নার জন্য একটি শ্রেণিবিন্যাস মডেল তৈরি করেছিলেন - একটি চিত্তাকর্ষক কৃতিত্ব, কারণ তিনি একজন পদার্থবিদ্যার প্রধান ছিলেন যার কোনো CS অভিজ্ঞতা ছিল না।
আমরা একটি ক্লাস শেয়ার করেছি — ইঞ্জিনিয়ার সার্ভিস লার্নিং — যেখানে পুরো ক্লাস ক্যাম্পাসের একটি বিল্ডিংয়ের জন্য LEED সার্টিফিকেশনে কাজ করেছিল। আমি তাকে সুখী-গো-ভাগ্যবান লোক হিসাবে মনে করি যে ক্লাসে লংবোর্ডে চড়ে। আমাদের প্রথম মিথস্ক্রিয়া ছিল ক্লাসরুমের বাইরে, একটি মুদি দোকানের অন্ধকার পার্কিংয়ে, যেখানে আমি তাকে তার ময়লা সাইকেল চালানোর জন্য প্রস্তুত হতে দেখেছি। তিনি আমার গাড়ির পাশে পার্ক করেছিলেন, এবং আমরা কথা বলেছিলাম। তারপর আমি তার পাশে কিছু টুকরো টুকরো কাগজ লক্ষ্য করলাম, এটা তুলে নিলাম, লক্ষ্য করলাম এটা টাকা, এবং তাকে বললাম সে তার টাকা ফেলে দিয়েছে। সে বলল এটা তার নয়, কিন্তু আমি তাকে রাখতে বলেছি। আমরা জানতাম না এটা কতটা; পার্কিং লট খুব অন্ধকার ছিল. $1, $10, বা $100। আমি তাকে বলেছিলাম আমি আশা করি এটি $100 ছিল। এটা ছিল $10 কিন্তু সেই প্রথম মিথস্ক্রিয়াটি আমাদের মধ্যে যথেষ্ট বিশ্বাস তৈরি করেছিল যে কয়েক সপ্তাহের মধ্যে, যখন আমরা দুজনেই ভেঞ্চার ল্যাবে কাজ করছিলাম — UC Merced-এর স্টার্টআপ ইনকিউবেটর — তিনি আমাকে তার শিশুর অনুবাদককে মোতায়েন করার জন্য একটি অ্যাপ তৈরি করতে বলেছিলেন। ভেঞ্চার ল্যাব না থাকলে, আমরা কখনই সহযোগিতা করার কথা ভাবতাম না। আমি অবশ্যই এলোমেলো সহপাঠীদের বলতে যাইনি যে আমি অ্যান্ড্রয়েড অ্যাপস তৈরি করি, বা তিনি তার শিশুর অনুবাদ মডেল সম্পর্কে বড়াই করেননি। ব্যক্তিগত তৃতীয় স্থানগুলির জন্য একটি চৌম্বকীয় যাদু রয়েছে যা আপনার অবমূল্যায়ন করা উচিত নয়।
একটি কাজের মডেল নির্মাণ সত্ত্বেও. ক্রিস কিভাবে এটি স্থাপন করতে পারে তা বুঝতে পারেনি। এটি ছিল 2017 সালের প্রথম দিকে, এবং এটি প্রদর্শন করে এমন অনেক কোর্স বা গাইড ছিল না। TensorFlow-এ তার পরামর্শদাতা অ্যান্ড্রয়েডে মোতায়েন করার সুপারিশ করেছিলেন, কিন্তু মোবাইল ডেভেলপমেন্ট শেখা অনেক দূরে ছিল। আমি অ্যান্ড্রয়েড জানতাম এবং প্লে স্টোরে একাধিক অ্যাপ স্থাপন করেছি, কিন্তু এমনকি আমার জন্য, এটি একটি প্রসারিত ছিল। সুতরাং, আমি সহজ জিনিস করেছি.
আমি একটি সার্ভারে মডেলটি রেখেছি এবং এতে API কল করেছি। একটি ফ্লাস্ক সার্ভারে মডেলটি কার্যকর করা আশ্চর্যজনকভাবে সহজ ছিল: টেনসরফ্লো আমদানি করুন, স্থানীয় ডিস্ক থেকে মডেলটি লোড করুন (আমি এমনকি মডেলটিকে এমনভাবে স্থাপন করার কথা ভাবিনি যে এটি পরবর্তীতে সংস্করণ করা সহজ হবে), এবং অনুরোধগুলি নির্দেশ করুন এটা কিন্তু কিছু গোছা ছিল:
এই সমস্যা সত্ত্বেও, এটি কাজ করেছে। মডেল ইনপুট পার্সার এবং ট্রান্সফরমার কোড ভাগ করে নেওয়া প্রথম সমস্যাটি সমাধান করেছে। মডেলটিকে একটি ব্ল্যাক বক্স হিসাবে বিবেচনা করা এবং এটিকে উপহাস করা এটির চারপাশে বিল্ডিং ইন্টিগ্রেশন পরীক্ষাগুলিকে আরও সহজ করে তুলেছে। এই পরীক্ষাগুলি নিশ্চিত করবে যে সার্ভার এবং মডেলের মধ্যে কোনও অপ্রত্যাশিত বিভ্রান্তি নেই - যতক্ষণ না মকগুলি সঠিক ছিল। এখন, এমন মডেল ইন্টারফেস রয়েছে যা বিকাশের সময় উপহাস সঠিকতা নিশ্চিত করতে পারে। মডেলগুলির জন্য স্থাপনা এবং সংস্করণ নিয়ন্ত্রণ আজকাল বেশিরভাগ ব্যবহারের ক্ষেত্রে অভিনব সমাধানের প্রয়োজন এমন কোনও সমস্যা নয়।
অন্যদিকে, বিলম্বিততা এবং প্রাপ্যতার সমস্যাগুলি শেষ পর্যন্ত আমাদেরকে প্রান্তে অ্যাপটিতে মডেল স্থাপন করতে বাধ্য করেছে। নেটওয়ার্ক লেটেন্সি দূর করা, ফোনের অনেক দ্রুত CPU ব্যবহার করা এবং অ্যাপটিকে ব্যাকগ্রাউন্ডে চালু রাখার সুবিধা ছিল, যা আমাদের স্টার্টআপ লেটেন্সি সমস্যার সমাধান করেছে এবং আমাদের হোস্টিং খরচ কমিয়েছে। তবে অবশ্যই, নতুন সমস্যা ছিল।
আমরা মডেলটি কোথায় রাখতে হবে তা নিয়ে বিতর্কে অনেক সময় ব্যয় করেছি। আমরা ফোনের গতি এবং নিশ্চিততা চেয়েছিলাম কিন্তু সার্ভারের নিরাপত্তা এবং স্থাপনার সহজতা কামনা করি। প্রাথমিকভাবে, সার্ভারে মডেল স্থাপন আকর্ষণীয় ছিল:
শেষ পর্যন্ত, আমরা প্রথম দুটি পয়েন্টের কারণে অ্যাপটিতে মডেলটি রাখার সিদ্ধান্ত নিয়েছি — অ্যাপটি বাধ্যতামূলক ছিল না যদি আপনাকে এটি অনুবাদ করার জন্য অপেক্ষা করতে হয় বা এটি মাঝে মাঝে বন্ধ হয়ে যায়। আপনার বাহুতে একটি কাঁদতে থাকা নবজাতক থাকলে কয়েক সেকেন্ডের বিলম্বকে অনন্তকালের মতো মনে হয়। কিন্তু ফোনে মডেল স্থাপনের সমস্যা ছিল, যেমনটি আমি পরবর্তী বিভাগে বর্ণনা করব।
আমি এর থেকে যে শিক্ষাটি নিয়েছি তা হল আপনার সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতার জন্য অপ্টিমাইজ করা উচিত — এমনকি যদি সমাধানটি পরিমাপযোগ্য না হয়, আপনাকে ভবিষ্যতের বৃদ্ধি দেয় না বা আপনার আইপিকে ঝুঁকিপূর্ণ করে না। কোম্পানিগুলি তাদের ব্যবহারকারীর অভিজ্ঞতার দ্বারা বেঁচে থাকে এবং মারা যায়, বিশেষ করে যদি তারা নতুন কোম্পানি হয় যাদের বিশ্বাস অর্জন করতে এবং একটি ব্র্যান্ড তৈরি করতে হবে।
মডেলটিকে ফোনে রাখা প্রযুক্তিগত জটিলতার পাহাড় নিয়ে এসেছিল। তাদের মধ্যে কিছু এখন বিদ্যমান নেই, কিন্তু অধিকাংশই আছে। আমরা কাটিয়া প্রান্তে ছিল. অ্যান্ড্রয়েডের জন্য টেনসরফ্লো খুব কমই বেরিয়ে এসেছিল — পাবলিক রিলিজ ছিল ফেব্রুয়ারি 2017 সালে, এবং আমি মার্চ মাসে অ্যাপটি তৈরি করছিলাম। কিন্তু TensorFlow-এর পিট ওয়ার্ডেন থেকে অধ্যবসায় এবং প্রচুর সাহায্যের মাধ্যমে, আমরা অ্যাপটিতে মডেলটি কাজ করতে সক্ষম হয়েছি।
প্রথম সমস্যাটি ছিল APK প্যাকেজে মডেলটি পাওয়া। সেই সময়ে, অ্যান্ড্রয়েডের একটি 50 এমবি APK সীমা এবং একটি এক্সটেনশন বৈশিষ্ট্য ছিল যা ইনস্টলেশনের পরে উপাদানগুলি ডাউনলোড করে অ্যাপগুলিকে বড় হতে দেয়৷ যাইহোক, আমি এক্সটেনশন বৈশিষ্ট্যটিকে অনিরাপদ বলে মনে করেছি কারণ এটি একটি সার্ভারে মডেলটিকে প্রকাশ করার অর্থ। সুতরাং, আমরা অ্যাপটিকে পরিমাপ করার সিদ্ধান্ত নিয়েছি — এমন একটি কৌশল যাতে প্রতিটি স্তরের সমস্ত ইনপুট এবং আউটপুটগুলির যথার্থতা হ্রাস করা জড়িত৷
আমাদের ক্ষেত্রে, আমরা সমস্ত ভাসমান বিন্দু সংখ্যাকে পূর্ণসংখ্যাতে রূপান্তর করেছি, যা মডেলের আকার উল্লেখযোগ্যভাবে হ্রাস করেছে এবং এটি দ্রুততর করেছে, তবে এটি সঠিকতাও হ্রাস করেছে। ক্রিস বিভিন্ন কোয়ান্টাইজেশন স্কিম সহ মডেলের বেশ কয়েকটি পুনরাবৃত্তির মধ্য দিয়ে গিয়েছিলেন এবং অবশেষে নির্ভুলতা হ্রাস সত্ত্বেও পূর্ণসংখ্যার পরিমাপকরণে স্থির হয়েছিলেন। যতক্ষণ মডেলটি নতুন পিতামাতার চেয়ে ভাল পারফর্ম করেছে ততক্ষণ এটি কার্যকর ছিল। বোনাস: এটি আপডেটের সমস্যা সমাধান করেছে — প্রতিটি মডেলের আপডেটের শত শত এমবি ডেটা ডাউনলোড করা মিটারযুক্ত ইন্টারনেট সংযোগে খাড়া প্রশ্ন ছিল, কিন্তু কয়েকটি এমবি পরিচালনাযোগ্য ছিল (এটি এখন আমার কাছে মূর্খ মনে হচ্ছে যেহেতু লোকেরা আজ তাদের ফোনে নিয়মিত GBs ভিডিও সামগ্রী ডাউনলোড করে )
এরপর এল ছোটখাটো সমস্যার দীর্ঘ লেজ। সবচেয়ে বড়টি হল যে এফএফটি লাইব্রেরিগুলি যেগুলি জাভা-এর বিভিন্ন সংস্করণ দ্বারা সমর্থিত ছিল অ্যান্ড্রয়েডের সাথে পাঠানো হয়েছে সেগুলি একই স্পেকট্রোগ্রাম তৈরি করেনি যে মডেলটিকে প্রশিক্ষণ দেওয়া হয়েছিল৷ আমরা একটি C++ FFT লাইব্রেরি ব্যবহার করে মডেলটিকে প্রশিক্ষণ দিয়েছি এবং এটি বিভিন্ন রঙ এবং মাত্রা সহ বর্ণালীগ্রাম তৈরি করেছে। গোপনীয় সরঞ্জাম হওয়ায়, C++ এবং জাভা উভয় সংস্করণই অস্বচ্ছভাবে লেখা হয়েছিল এবং পরিবর্তন করা কঠিন ছিল। আরেকটি দ্রুত সিদ্ধান্ত: আমরা জাভা FFT স্পেকট্রোগ্রাম ব্যবহার করে মডেলটিকে পুনরায় প্রশিক্ষণ দেওয়ার সিদ্ধান্ত নিয়েছি। এর অর্থ হল সমস্ত অডিও ফাইলকে স্পেকট্রোগ্রামে রূপান্তরিত করা এবং তারপরে প্রশিক্ষণ প্রক্রিয়া চালানো, যা আমার বন্ধুর পুরানো ম্যাকবুকে দিন লেগেছিল। কিন্তু সমস্যাটি সমাধান করা হয়েছিল, এবং আমি সেই সময়ে অন্য কিছুতে ফোকাস করতে পারি।
কিন্তু অ্যাপটি হিমায়িত এবং ক্র্যাশ হতে থাকে। দেখা যাচ্ছে যে মেমরিতে রেকর্ডিং লোড করা এবং তারপর মেমরিতে স্পেকট্রোগ্রাম তৈরি করা একটি খারাপ ধারণা ছিল। অ্যাপটি ফোনের অনেক সংস্থান হগিং করছিল। সমাধানটি ছিল ডিস্ক এবং স্ট্রিমে সংরক্ষণ করা। ডিস্কে সংরক্ষণ করা সহজ ছিল; স্ট্রিমিং অংশটি কঠিন ছিল কারণ, একবার অডিওটি মেমরি ছেড়ে গেলে, ডিস্কে এটির সাথে কিছু ঘটতে পারে। অন্য একটি প্রোগ্রাম এটি পড়তে এবং পরিবর্তন করতে পারে; এটি মুছে ফেলা যেতে পারে, এটি সংরক্ষণ করতে ব্যর্থ হতে পারে, ইত্যাদি।… এই প্রান্তের কেসগুলি সাধারণত ওয়েবে বিদ্যমান থাকে না — আপনার ব্যবহারকারীর সাথে আপনার একটি বিচ্ছিন্ন চ্যানেল রয়েছে তবে ডিভাইসগুলিতে নয়। প্রথম স্থানে এটি করার জন্য পর্যাপ্ত জায়গা রয়েছে তা নিশ্চিত করা এবং অ্যাপের পরে পরিষ্কার করা একটি অপ্রত্যাশিত চ্যালেঞ্জ ছিল। এটি একটি ভুল-পাওয়া অনুমান, আমি পরে জানতে পেরেছি যে, ফোনে যদি আপনার অ্যাপ ইনস্টল করার জন্য যথেষ্ট মেমরি থাকে, তাহলে এটি চালানোর জন্য যথেষ্ট মেমরি ছিল।
অবশেষে, ডিভাইসটি নিজেই একটি প্রতিপক্ষ ছিল- অ্যান্ড্রয়েড ফোনগুলি বিভিন্ন ধরণের CPU, মেমরির পরিমাণ এবং সবচেয়ে গুরুত্বপূর্ণভাবে মাইক্রোফোন সহ আসে৷ সিপিইউ এবং মেমরি সমস্যাটি প্রয়োজনীয় অ্যান্ড্রয়েড সংস্করণটিকে সর্বশেষে সেট করে এবং সেরাটির আশা করে সমাধান করা যেতে পারে; সবচেয়ে খারাপ পরিস্থিতি ছিল একটি ধীর গতির অ্যাপ - সরাসরি Android এ সম্পদের প্রয়োজনীয়তা সেট করার কোন উপায় নেই। আসল সমস্যাটি ছিল মাইক্রোফোনের বিভিন্ন গুণাবলীর জন্য হিসাব করা — অ্যান্ড্রয়েড আপনাকে আপনার অ্যাপ ইনস্টল করা ডিভাইসগুলিতে মাইক্রোফোনের প্রয়োজন দেয়, কিন্তু মাইক্রোফোনের ধরন নয়।
আমি এই সমস্যার সমাধান করার চেষ্টা করিনি। আমার কাছে তখন অনেক পরীক্ষক ফোন ছিল এবং আমি লক্ষ্য করেছি যে সস্তা ফোনগুলিতে ভবিষ্যদ্বাণীগুলি কতটা খারাপ ছিল। আমি সিদ্ধান্ত নিয়েছি যে এখন একটি সমাধান খুঁজে বের করার কোন সময় নেই - আমরা যত তাড়াতাড়ি সম্ভব চালু করার চেষ্টা করছি। কখনও কখনও, একটি সমস্যার সর্বোত্তম সমাধান হল এটি একটি নোট করা এবং এগিয়ে যাওয়া। এখন আমি বুঝতে পারছি এই সমস্যাটি আমাদের চূড়ান্ত পণ্যের দিকে নির্দেশ করেছে — হোমার, একজন স্মার্ট স্পিকার।
একবার প্রযুক্তিগত অসুবিধাগুলি কাটিয়ে উঠলে (বা এড়ানো যায়), আমরা ভবিষ্যদ্বাণী মানের কঠিন সমস্যায় চলে যাই। যেহেতু মডেলটি অ্যাপটিতে থাকত, তাই আমরা এর কার্যকারিতার প্রতি অন্ধ ছিলাম। যদি এটি খারাপভাবে সঞ্চালিত হয়, তবে অ্যাপ পৃষ্ঠায় মন্তব্য বা আনইনস্টল করার মাধ্যমে আমরা বলতে পারি একমাত্র উপায়; ততক্ষণে, অনেক দেরি হয়ে গেছে। অতএব, মডেলের চারপাশে লগ, পর্যবেক্ষণ, ডেটা সংগ্রহ এবং প্রতিক্রিয়ার একটি মোড়ক তৈরি করা গুরুত্বপূর্ণ ছিল।
মডেলটি স্পেকট্রোগ্রাম এবং আরও কিছু তথ্য নিয়েছিল শিশুটি যে শব্দগুলি তৈরি করছে তা শ্রেণিবদ্ধ করতে — ক্ষুধার্ত, অস্বস্তিকর, ব্যথায়, ঘুমন্ত এবং গ্যাসযুক্ত, এইগুলি অনুবাদ ছিল। এটি সমস্ত সম্ভাব্য বিভাগের একটি তালিকা ফিরিয়ে দিয়েছে, প্রতিটি বিভাগে একটি শতাংশ রয়েছে যা প্রতিনিধিত্ব করে যে মডেলটি সেই নির্দিষ্ট অনুবাদে কতটা আত্মবিশ্বাসী ছিল। সমস্ত শতাংশ 100 পর্যন্ত যোগ করে — যদি সবচেয়ে সঠিক অনুবাদ 90%-এ ক্ষুধার্ত হয়, তাহলে অন্য পাঁচটি বিভাগে যথার্থতা 10% পর্যন্ত যোগ হবে।
আমরা প্রথম দিকে যে প্রশ্নের মুখোমুখি হয়েছিলাম তা হল সমস্ত অনুবাদ প্রদর্শন করা হবে (সবচেয়ে নির্ভুল থেকে সর্বনিম্ন পর্যন্ত অর্ডার করা হয়েছে) নাকি একটি মাত্র। আমি শুধুমাত্র একটি দেখাতে বেছে নিয়েছি কারণ আমি আরও অনুবাদের মাধ্যমে লোকেদের বিভ্রান্ত করতে চাইনি, এবং এটি তৈরি করা সহজ ছিল (অলসতা চতুরতার একটি ভিত্তিপ্রস্তর)। যাইহোক, আমরা আমাদের প্রথম সেট ব্যবহারকারীদের সাথে সমস্যায় পড়েছি।
যখন মডেলটি নিশ্চিত ছিল (80% এর উপরে), পরামর্শটি কাজ করেছিল - আমরা পিতামাতার কাছ থেকে অভিযোগ পাইনি। কিন্তু এটা সবসময় যে আত্মবিশ্বাসী ছিল না. যখন অনুবাদের নির্ভুলতা 80% এর নিচে ছিল, তখন এটি অভিভাবক বা অনুমান হিসাবে ভাল ছিল। এটি অ্যাপের উদ্দেশ্যকে ব্যর্থ করে; এটি তাদের সন্তানকে শান্ত করার জন্য একটি নতুন পিতামাতার আতঙ্কিত প্রচেষ্টার চেয়ে আরও সঠিক অনুবাদের প্রস্তাব দেওয়া উচিত। এবং এটি করেছে, আশ্চর্যজনকভাবে 2য় বা 3য় অনুবাদগুলি স্পট-অন ছিল। আমরা ব্যক্তিগত সাক্ষাত্কারের মাধ্যমে এটি খুঁজে পেয়েছি — ব্যক্তিগত সাক্ষাৎকারগুলি অপ্রমাণযোগ্য এবং সময়সাপেক্ষ তবে অত্যন্ত তথ্য-ঘন; আপনি যদি প্রতিদিন একটি করতে পারেন তবে এটি করুন। শিশুটি কাঁদবে, এবং অ্যাপটি কম আত্মবিশ্বাসের সাথে ভুল অনুবাদ দেখাবে, কিন্তু আমরা অন্যান্য অনুবাদগুলি চেষ্টা করব (আমরা সেগুলি লগগুলিতে দেখেছি), এবং তারা কাজ করবে।
এটি আমার কাছে বিরোধী ছিল কারণ আমি অ্যাপটিকে অনুবাদক হিসাবে ভেবেছিলাম; কিছু অনুবাদ করার জন্য শুধুমাত্র একটি উপায় থাকা উচিত, তাই না? ভুল. অ্যাপটি নতুন অভিভাবক এবং তত্ত্বাবধায়কদের জন্য একটি অন্বেষণের সরঞ্জাম ছিল যা তাদের প্রথমে চেষ্টা করা উচিত তা নির্ধারণ করতে। আমি কি আমার শিশুর খোঁচা দেওয়ার চেষ্টা করব? সে কি ক্ষুধার্ত? শেষবার তিনি কখন ঘুমিয়েছিলেন? প্রত্যেক বাবা-মা এই চেকলিস্টের মধ্য দিয়ে যান যখন তাদের শিশু কাঁদতে শুরু করে। আমাদের অ্যাপ এই অন্বেষণের গতি বাড়িয়েছে; পিতামাতারা এটিকে এভাবেই ব্যবহার করে, এবং আমরা একাধিক অনুবাদ চালু করার পরে আমরা সেই প্রতিক্রিয়াটি পেয়েছি। এটি হত্যাকারী বৈশিষ্ট্য ছিল না, তবে এটি অবশ্যই অ্যাপটিকে একটি গিমিক থেকে দৈনন্দিন ব্যবহারের সরঞ্জামে পরিণত করেছে, যখন স্বামী/স্ত্রী চলে যায় বা দাদা-দাদি ঘুমিয়ে থাকে তখন একটি বিশ্বস্ত সঙ্গী৷
এই ডেটা দ্বারা সমর্থিত, আমরা দ্রুত আরও অনুবাদ প্রদর্শন করার সিদ্ধান্ত নিয়েছি। কৌশলটি বের করছিল কতজন। সমস্ত অনুবাদগুলি প্রদর্শন করা - সমস্ত পাঁচটি বিভাগ - অ্যাপটিকে এমন দেখায় যেন এটি প্রতিবার একই অনুবাদগুলি পুনরাবৃত্তি করে৷ আপনি যদি প্রতিবার খাবার অনুসন্ধান করার সময় Google আপনাকে একই চারটি রেস্তোরাঁ দেখায় তবে আপনি কী ভাববেন? আমরা শীর্ষ তিনটি অনুবাদের সিদ্ধান্ত নিয়েছি — এই অংশ শিল্প এবং অংশ ডেটা।
মানুষ কোনো কারণে তিন নম্বরের দিকে ঝুঁকে পড়ে। তথ্য দেখিয়েছে যে তৃতীয় অনুবাদের পর মডেলের অন্যান্য অনুবাদের প্রতি আস্থা উল্লেখযোগ্যভাবে কমে গেছে। যদি প্রথম অনুবাদে 70% আত্মবিশ্বাস থাকে, তবে দ্বিতীয়টির 20%, তৃতীয়টির 9% এবং বাকি 1% এর নিচে। তাই, আমরা এই অনুবাদগুলি বাদ দিয়েছি। এই বাদ দেওয়া অনুবাদগুলি সঠিক হওয়ার একটি ছোট সম্ভাবনা ছিল, কিন্তু সেগুলি সহ অ্যাপটিকে পুনরাবৃত্তিমূলক দেখানোর ঝুঁকি ছিল। পছন্দটি ছিল যে 100 ব্যবহারকারীর মধ্যে 1 জন এমন অনুবাদ পাবেন যা সব ভুল ছিল, অথবা সমস্ত ব্যবহারকারী অকেজো অনুবাদ দেখতে পাবে এবং মনে করবে যে অ্যাপটি অনুমান করছে। এটি একটি সহজ পছন্দ ছিল.
অবশ্যই, পশ্চাৎদৃষ্টি সহ, আমার এটি একটি মাল্টি-আর্ম দস্যু ব্যবহার করে পরীক্ষা করা উচিত ছিল — অ্যাপটির পাঁচটি ভিন্ন সংস্করণ প্রকাশ করুন, প্রতিটি পছন্দের জন্য একটি, যেমন, একটি অনুবাদ দেখান, দুটি দেখান, তিনটি দেখান ইত্যাদি, এবং ধীরে ধীরে লোকেদের স্থানান্তর করুন অ্যাপের সংস্করণে যা সেরা ফলাফল পেয়েছে। প্রাথমিক সাফল্যের মেট্রিক হবে কতজন লোক সবুজ চেকমার্কে ক্লিক করেছে (অনুবাদে খুশি)। কিন্তু এই ধরনের প্রাথমিক পর্যায়ে, আমি বিশ্বাস করি আমরা সঠিক সিদ্ধান্ত নিয়েছি, এবং আরও গুরুত্বপূর্ণ, আমরা সঠিক উপায়ে সিদ্ধান্ত নিয়েছি। আমরা মুক্তমনা ছিলাম, আমরা কোন সিদ্ধান্তকে কংক্রিট হিসাবে বিবেচনা করিনি (এখানে কোন অহংকার নেই), আমরা ক্রমাগত আমাদের ব্যবহারকারীদের সাথে চেক ইন করেছি, এবং আমরা তাদের কথা শুনেছি, এমনকি যদি এটি সঠিক মনে না হয়।
প্রতিটি মিথস্ক্রিয়া উন্নতি এবং প্রভাবিত করার একটি সুযোগ। এই উদ্যোগের সূচনা থেকে আমার উদ্বেগের বিষয় ছিল যে মডেলটি কেবল ভাগ্যবান ছিল, যে একজন একক বাবা বা মা হতে চলেছেন যাকে বলা হয়েছিল যে তাদের বাচ্চা কাঁদছে কারণ তারা গ্যাসযুক্ত এবং তারা তাদের বাচ্চাকে মারার জন্য কাঁপছে। অসম্ভাব্য, কিন্তু আমরা প্রতিটি ব্যবহারকারীর শিশুর সুস্থতার জন্য দায়ী অনুভব করেছি। তাই, আমরা অ্যাপটিতে একটি ফিডব্যাক ফিচার যোগ করে লঞ্চে বিলম্ব করেছি।
প্রতিটি অনুবাদের পরে, আপনাকে জিজ্ঞাসা করা হয়েছিল যে এটি কতটা সহায়ক ছিল — একটি অবিচ্ছিন্ন পৃষ্ঠা৷ তারপরে, অ্যাপটি ব্যবহারকারীর প্রতিক্রিয়া, মডেলের আউটপুট, ডিভাইসের ধরন এবং স্পেকট্রোগ্রাম আপলোড করেছে। প্রাথমিকভাবে, আমি অডিও ফাইলটি আপলোড করেছিলাম কিন্তু দ্রুত বুঝতে পেরেছিলাম যে মাইক্রোফোনটি অনেক ব্যাকগ্রাউন্ড নয়েজ ক্যাপচার করেছে। আমাদের ব্যবহারকারীদের গোপনীয়তার জন্য, আমরা শুধুমাত্র স্পেকট্রোগ্রাম আপলোড করতে পছন্দ করি। আমি তখন যা জানতাম না তা হল যে আপনি একটি স্পেকট্রোগ্রাম বিপরীত করতে পারেন এবং অডিওটি পুনর্গঠন করতে পারেন, যদিও খারাপ মানের এবং কিছু অসুবিধা সহ। এই ছিল আমাদের ফ্লাইহুইল।
যাইহোক, আমি বিতর্ক এবং একাধিক খসড়া এড়িয়ে যাচ্ছি যা এই চূড়ান্ত সংস্করণে নেতৃত্ব দিয়েছে। কোন ডেটা সংগ্রহ করতে হবে, কীভাবে সাফল্য পরিমাপ করতে হবে এবং সাফল্যকে কীভাবে সংজ্ঞায়িত করতে হবে তা নির্ধারণ করা কঠিন, তবে এটি একটি পুনরাবৃত্তিমূলক প্রক্রিয়া যা আপনি ছোট পদক্ষেপে করতে পারেন এবং উন্নতি করতে পারেন। আমি যে সেরা উপদেশটি পেয়েছি তা হল সফলতা কেমন তা সংজ্ঞায়িত করা বা, যদি এটি খুব কঠিন হয়, ব্যর্থতা কেমন দেখায় (আমার জন্য, সাফল্যের চেয়ে ব্যর্থতাকে সংজ্ঞায়িত করা অনেক সহজ - আমি কখনই জানি না আমি কী চাই, তবে আমি নিশ্চিত। আমি কি এড়াতে চাই) এবং নির্দিষ্ট হতে চাই। সেই উত্তর থেকে, আপনার প্রচেষ্টার বিচার করতে আপনি যে মেট্রিকগুলি ব্যবহার করতে পারেন তা বের করুন — যদি ব্যর্থতার কারণে ব্যবহারকারীদের তাদের শিশুর অ্যাপটি ব্যবহার করার জন্য খুব বেশি বয়স হওয়ার আগেই হারিয়ে যায়, তাহলে ব্যবহারকারীর ফোনে অ্যাপটির গড় জীবনকাল পরিমাপ করুন। কিন্তু মনে রাখবেন যে এই সংজ্ঞা এবং মেট্রিক্স স্থির নয় - তারা পরিবর্তিত হবে। তারা কাজ করা বন্ধ না করা পর্যন্ত আপনাকে কেবল সিদ্ধান্ত নিতে হবে এবং তাদের সাথে লেগে থাকতে হবে। আপনি যখন তাদের কাছ থেকে শেখা বন্ধ করবেন বা অন্তত যখন তাদের কাছ থেকে শেখা কঠিন হয়ে যাবে তখন তারা কাজ করা বন্ধ করে দেবে। এটাই লক্ষ্য, শেখা এবং উন্নতি করা, বাকিগুলো বিস্তারিত।
AI/ML যুগে, একটি কোম্পানির সবচেয়ে মূল্যবান ডিজিটাল সম্পদ হল সেই ডেটা যা এটিকে অর্পণ করা হয়, মডেল নয়। এই ডেটা বৃদ্ধি করা - বিশেষত একটি স্বচ্ছ এবং নৈতিক উপায়ে - অব্যাহত সাফল্যের জন্য গুরুত্বপূর্ণ। তাই, প্রতিটি ব্যবহারকারীর মিথস্ক্রিয়াকে রূপান্তর হার নির্বিশেষে একটি মূল্য-প্রজন্ম মুহূর্ত হিসাবে বিবেচনা করা উচিত। সুতরাং এটি অনুসরণ করে যে প্রতিটি মিথস্ক্রিয়া ব্যবহারকারীকে মুগ্ধ করে এবং ফিরে আসতে চায়। আমরা এমন কিছু তৈরি করেছি যা বাহ এবং অনুপ্রাণিত করেছিল; আমাদের একজন দুর্দান্ত ডিজাইনার ছিলেন, তেরেসা ইবাররা , যিনি আমার ক্রুড ড্রাফ্টটি নিয়েছিলেন এবং এটিকে এমন একটি অ্যাপে পালিশ করেছিলেন যা ব্যবহারে প্রশান্তিদায়ক এবং আনন্দদায়ক ছিল৷ এবং প্রতিটি অনুবাদ পরবর্তীটিকে আরও ভাল করে তুলেছে।
শেষ জিনিসটি আমরা তৈরি করেছি হোমার। অ্যাপ ব্যবহারকারীদের সাথে ব্যক্তিগতভাবে কয়েক ডজন ইন্টারভিউ নেওয়ার পরে এবং আরও বেশি লোককে কল করার পরে, আমরা বুঝতে পেরেছি যে আপনার ফোন খোঁজা, স্ক্রিন আনলক করা, আমাদের অ্যাপ খুঁজে পাওয়া, এটি খোলা এবং আপনার কান্নারত শিশুকে ধরে রাখার সময় অনুবাদে ক্লিক করা কঠিন এবং অসুবিধাজনক। এটা বুঝতে আমাদের এত সময় লাগলো কেন? বিশের দশকে আমরা দুজন অবিবাহিত, নিঃসন্তান ছেলে ছিলাম — শেষ কবে আমি একটি শিশুকে ধরেছিলাম, তার হাহাকার প্রশমিত করেছিলাম তা আমি মনে করতে পারি না। তাই, আমরা একটি স্মার্ট স্পিকার ব্যবহার করে একটি শিশু মনিটর তৈরি করার সিদ্ধান্ত নিয়েছি। আমি রাস্পবেরি পাই থেকে একটি কিট অর্ডার করেছি এবং উপরে একটি বড় নীল বোতাম সহ একটি কাস্টম গুগল হোম স্পিকার তৈরি করেছি।
শিশু মনিটর সংস্থাগুলির কাছে মডেলটি বিক্রি করার জন্য ক্রিসের একটি দুর্দান্ত দৃষ্টিভঙ্গি ছিল, তবে আমরা এই সংস্থাগুলির সাথে ট্র্যাকশন অর্জন করছি না, তাহলে কেন একটি স্মার্ট স্পিকার ব্যবহার করে আমাদের নিজস্ব শিশু মনিটর তৈরি করব না? গুগল হোম তৈরি করার পরে, আমি স্টার্টআপে অনুবাদক চালানোর জন্য একটি ব্যাশ স্ক্রিপ্ট তৈরি করেছি। অনুবাদক 'ওকে, গুগল, ট্রান্সলেট' ট্রিগার বাক্যাংশে অনুবাদ করতে Google Home এর SDK ব্যবহার করেছেন। অনুবাদকটি ছিল একটি পাইথন স্ক্রিপ্ট যা মাইক্রোফোন থেকে অডিও পড়ত, এটিকে একটি বর্ণালীগ্রামে পরিণত করত এবং তারপর এটিকে অনুবাদ করার জন্য একটি সার্ভারে প্রেরণ করত। আমি জিনিষ চটপটে রাখা, এবং এটা কাজ ! আমাদের শেষ পর্যন্ত আমাদের হত্যাকারী অ্যাপ ছিল, কিন্তু এটি কোম্পানিকে বাঁচাতে পারেনি।
আমাদের তহবিল শেষ হয়ে গেছে — আমরা একটি প্রতিযোগিতা থেকে যে পুরস্কার জিতেছিলাম। জীবন আমাদের উভয়ের উপর দ্রুত বাধা হয়ে উঠছিল। আমরা কলেজে স্নাতক হয়েছি, এবং আমরা দুজনেই বাড়ির উদ্দেশ্যে রওনা দিয়েছি — আমি বে এরিয়াতে একটি চাকরি গ্রহণ করেছি, এবং ক্রিস টেক্সাসে তার অসুস্থ মায়ের যত্ন নেওয়ার জন্য চলে গিয়েছিলেন। স্টার্টআপ ব্যর্থ হয়েছে।
স্টার্টআপগুলি কঠিন এবং হৃদয়বিদারক। আপনি তাদের খণ্ডকালীন করতে পারবেন না. স্টক সহ প্রত্যেককে পূর্ণ-সময় হতে হবে বা অন্য কারো জন্য জায়গা তৈরি করতে ছেড়ে যেতে হবে। অথবা আপনি আপনার উচ্চাকাঙ্ক্ষা সঙ্কুচিত করতে হবে, হয়ত তাদের সম্পূর্ণরূপে পরিত্যাগ. এখন, সেখানে এমন কিছু সমস্যা রয়েছে যা খণ্ডকালীন ভিত্তিতে লাভজনকভাবে সমাধান করা যেতে পারে — তবে সেগুলি কি সার্থক? তারা কি আপনাকে উত্তেজিত করে?
যদি আমি কিছু শিখে থাকি — অ্যান্ড্রয়েডে এমএল মডেলগুলি স্থাপন করা কতটা কষ্টের তা ছাড়া — এটি হল যে আপনি যে সমস্যার সমাধান করছেন সে সম্পর্কে আপনার সত্যিই যত্ন নেওয়া দরকার। আর্থিক ঝুঁকি এবং বিপুল সুযোগ ব্যয় সত্ত্বেও আপনাকে এটিকে পূর্ণ-সময়ে প্রতিশ্রুতিবদ্ধ করার সাহস খুঁজে পেতে হবে। এটিতে কাজ করার জন্য আমি আমার প্রযুক্তিগত চাকরি ছেড়ে দেবার কোন উপায় ছিল না। আমি নতুন পিতামাতা এবং হতাশ বাবাদের সাহায্য করতে পছন্দ করতাম; প্রযুক্তি শিখতে এবং তৈরি করতে আনন্দদায়ক ছিল, কিন্তু আমি কীভাবে আমার বাবাকে ব্যাখ্যা করতে পারি যে কেন আমি স্নাতক শেষ করার পরে আমাদের সঙ্কুচিত সেকশন 8 অ্যাপার্টমেন্টে ফিরে যাচ্ছি? এতদিন ওয়েলফেয়ারে থাকার পর আমি কীভাবে ছয় অঙ্কের বেতন ফিরিয়ে দিতে পারি?
ভেঞ্চার ক্যাপিটাল সম্পর্কে কি? কেন টাকা জোগাড় করার চেষ্টা করেননি? বাস্তবতা হল VC শুধুমাত্র ফোন তুলবেন যদি তারা আপনাকে চিনেন, আপনি যে স্কুলে গিয়েছিলেন বা আপনি যে কোম্পানিতে কাজ করেছেন তা জানেন। আপনি কী তৈরি করেছেন তা তারা বিবেচনা করে না — এটি লাভজনক হলেও, আপনার উদ্ভাবন একটি ছোটখাটো বিবরণ — ভিসিরা প্রথমে প্রতিষ্ঠাতা এবং দলগুলিতে বিনিয়োগ করেন এবং পণ্যগুলি শেষ পর্যন্ত। কিন্তু তাদের অধিকাংশই জানে না কিভাবে ভালো প্রতিষ্ঠাতা বা দল বাছাই করতে হয়, তাই তারা অভিজাত স্কুল বা FAANG-এর ভর্তি কর্মকর্তাদের তা করতে দেয়।