<jupyter_start><jupyter_text>টিউটোরিয়াল: বেসরকারী গভীর শিক্ষার প্রাথমিক সরঞ্জামসমূহ Toolsপাইসাইফ্টের গোপনীয়তা সংরক্ষণ, বিকেন্দ্রীভূত গভীর শিক্ষার জন্য প্রবর্তক টিউটোরিয়ালে স্বাগতম। এই সিরিজের নোটবুকগুলি একটি কর্তৃপক্ষের অধীনে কেন্দ্রীভূত না করে গোপন / ব্যক্তিগত তথ্য / মডেলগুলিতে গভীর শিক্ষার জন্য প্রয়োজনীয় নতুন সরঞ্জাম এবং কৌশলগুলি জানতে আপনার জন্য ধাপে ধাপে গাইড।**ব্যাপ্তি:** মনে রাখবেন যে আমরা কীভাবে ডেটা বিকেন্দ্রীকরণ / এনক্রিপ্ট করব সে সম্পর্কে কথা বলব না, তবে আমরা কীভাবে পাইসাইফ্টকে ডেটা সংরক্ষণ এবং কোয়েরি করা ডেটাবেস সহ ডেটাবেস সহ পুরো বাস্তুতন্ত্রকে বিকেন্দ্রীকরণে সহায়তা করতে পারি তা সম্বোধন করব and নিউরাল মডেলগুলি যা ডেটা থেকে তথ্য আহরণের জন্য ব্যবহৃত হয়। পাইসাইফ্টে নতুন এক্সটেনশন তৈরি হওয়ার সাথে সাথে এই নোটবুকগুলি নতুন কার্যকারিতা ব্যাখ্যা করার জন্য নতুন টিউটোরিয়ালগুলির সাথে প্রসারিত হবে। লেখক:- <NAME> - Twitter: [@iamtrask](https://twitter.com/iamtrask) অনুবাদক:- Sayantan Das - Github: [@ucalyptus](https://github.com/ucalyptus) কেন এই টিউটোরিয়াল নিন:- পর্ব 1: বেসরকারী গভীর শিক্ষার প্রাথমিক সরঞ্জামগুলি কেন এই টিউটোরিয়াল নিন?** 1) একটি প্রতিযোগিতামূলক ক্যারিয়ার সুবিধা ** - গত 20 বছর ধরে, ডিজিটাল বিপ্লবটি এনালগ প্রক্রিয়াগুলি ডিজিটাইজড হওয়ার কারণে ডেটা আরও বেশি পরিমাণে আরও বেশি অ্যাক্সেসযোগ্য করে তুলেছে। যাইহোক, নতুন নিয়ন্ত্রণ হিসাবে যেমন[GDPR](https://eugdpr.org/), উদ্যোগগুলি কীভাবে তারা ব্যবহার করে - এবং আরও গুরুত্বপূর্ণভাবে কীভাবে তারা বিশ্লেষণ করে - ব্যক্তিগত তথ্যের সাথে স্বাধীনতার কম চাপে। ** নীচের লাইন: ** তথ্য বিজ্ঞানীরা "পুরাতন স্কুল" সরঞ্জামের সাহায্যে তত বেশি ডেটা অ্যাক্সেস করতে পারবেন না, তবে বেসরকারী ডিপ লার্নিংয়ের সরঞ্জামগুলি শিখে আপনি এই বক্ররের চেয়ে এগিয়ে থাকতে পারেন এবং এতে প্রতিযোগিতামূলক সুবিধা পেতে পারেন তোমার কর্মজীবন.**2) উদ্যোক্তা সুযোগ** - সমাজে পুরো সমস্যা রয়েছে যা ডিপ লার্নিং সমাধান করতে পারে তবে বেশিরভাগ গুরুত্বপূর্ণ অনুসন্ধান করা হয়নি কারণ এর জন্য মানুষের সম্পর্কে অবিশ্বাস্য সংবেদনশীল তথ্য অ্যাক্সেসের প্রয়োজন হবে (মানসিক বা সম্পর্কের সমস্যাযুক্ত ব্যক্তিদের সহায়তা করার জন্য ডিপ লার্নিংয়ের ব্যবহার বিবেচনা করুন) !)। সুতরাং, প্রাইভেট ডিপ লার্নিং শেখা আপনার জন্য নতুন শুরু করার সুযোগগুলি পুরোপুরি উন্মুক্ত করে যা এই সরঞ্জাম সরঞ্জামগুলি ছাড়া অন্যদের কাছে আগে উপলভ্য ছিল না।** 3) সামাজিক ভাল ** - ডিপ লার্নিং বাস্তব বিশ্বের বিভিন্ন ধরণের সমস্যা সমাধানের জন্য ব্যবহার করা যেতে পারে, তবে * ব্যক্তিগত তথ্য * সম্পর্কে ডিপ লার্নিং হল মানুষের সম্পর্কে *, মানুষের জন্য * গভীর শেখা। আপনার নিজের মতো নয় এমন ডেটাতে কীভাবে ডিপ লার্নিং করবেন তা শেখা ক্যারিয়ার বা উদ্যোক্তা সুযোগের চেয়ে বেশি প্রতিনিধিত্ব করে, এটি মানুষের জীবনের সবচেয়ে ব্যক্তিগত এবং গুরুত্বপূর্ণ কিছু সমস্যা সমাধানে সহায়তা করার সুযোগ - এবং এটি স্কেল করে করার জন্য। আমি কীভাবে অতিরিক্ত creditণ পেতে পারি?- গিটহাবে স্টার পাই সাইফ্ট! - [https://github.com/OpenMined/PySyft](https://github.com/OpenMined/PySyft)- এই নোটবুকটি শিখিয়ে একটি ইউটিউব ভিডিও তৈরি করুন!... ঠিক আছে এই কাজ করতে দিন!  পার্ট -১: পূর্বশর্তসমূহ পাইটর্চ জানুন - তা না হলে http://fast.ai কোর্সটি নিয়ে ফিরে আসুন পাই সাইফ্ট ফ্রেমওয়ার্ক পেপার https://arxiv.org/pdf/1811.04017.pdf পড়ুন! এটি আপনাকে পাইসাইফ্ট কীভাবে নির্মাণ করা হয়েছে তার সামগ্রিক ব্যাকগ্রাউন্ড দেবে যা জিনিসগুলি আরও অর্থবোধ করতে সহায়তা করবে।  পার্ট 0: সেটআপশুরুকরার জন্য, আপনাকে সঠিক জিনিসগুলি ইনস্টল করা আছে তা নিশ্চিত করতে হবে। এটি করার জন্য, পাইসাইফ্টের রেডমিমে যান এবং সেটআপ নির্দেশাবলী অনুসরণ করুন। বেশিরভাগ লোকের জন্য TLDR হ'ল।- Install Python 3.6 or higher- Install PyTorch 1.3- Clone PySyft (git clone https://github.com/OpenMined/PySyft.git)- cd PySyft- pip install -r pip-dep/requirements.txt- pip install -r pip-dep/requirements_udacity.txt- python setup.py install udacity- python setup.py testযদি এর কোনও অংশ আপনার জন্য কাজ করে না (বা পরীক্ষাগুলির কোনওটি ব্যর্থ হয়) - ইনস্টলেশন সহায়তার জন্য প্রথমে [README] (https://github.com/OpenMined/PySyft.git) পরীক্ষা করুন এবং তারপরে একটি গিটহাব ইস্যু খুলুন বা আমাদের স্ল্যাশে  বিগিনার চ্যানেলটি পিং করুন! [Slack.openmined.org] (http://slack.openmined.org/)<jupyter_code># Run this cell to see if things work
import sys

import torch
from torch.nn import Parameter
import torch.nn as nn
import torch.nn.functional as F

import syft as sy
hook = sy.TorchHook(torch)

torch.tensor([1,2,3,4,5])<jupyter_output><empty_output><jupyter_text>যদি এই সেলটি কার্যকর করা হয়, তবে আপনি দৌড় প্রতিযোগিতায় চলে যাচ্ছেন! চল এটা করি!  পর্ব 1: বেসরকারী, বিকেন্দ্রীভূত ডেটা বিজ্ঞানের প্রাথমিক সরঞ্জামসমূহসুতরাং - আপনি যে প্রশ্নটি প্রথম থেকেই ভাবতে পারেন তা হ'ল - বিশ্বে আমরা কীভাবে এমন ডেটা সম্পর্কে কোনও মডেলকে প্রশিক্ষণ দেব যা আমাদের অ্যাক্সেস নেই?ঠিক আছে, উত্তরটি আশ্চর্যজনকভাবে সহজ। আপনি যদি পাইটর্চে কাজ করতে অভ্যস্ত হন তবে আপনি মশাল নিয়ে কাজ করতে অভ্যস্ত!<jupyter_code>x = torch.tensor([1,2,3,4,5])
y = x + x
print(y)<jupyter_output><empty_output><jupyter_text>স্পষ্টতই, এই সুপার অভিনব (এবং শক্তিশালী!) টেনজারগুলি ব্যবহার করা গুরুত্বপূর্ণ, তবে আপনার স্থানীয় মেশিনে ডেটা থাকাও দরকার। এখান থেকেই আমাদের যাত্রা শুরু। বিভাগ 1.1 - ববসের মেশিনে টেনারগুলি প্রেরণযেখানে সাধারণত আমরা মেশিনে ডেটা সায়েন্স / গভীর জ্ঞান সঞ্চালন করি যা ডেটা রাখে, এখন আমরা কিছু ** অন্যান্য ** মেশিনে এই ধরণের গণনা সম্পাদন করতে চাই। আরও নির্দিষ্টভাবে, আমরা আর সহজেই ধরে নিতে পারি না যে ডেটা আমাদের স্থানীয় মেশিনে রয়েছে।সুতরাং, টর্চ টেনারগুলি ব্যবহার করার পরিবর্তে, আমরা এখন ** পয়েন্টারগুলি ** টেনারদের সাথে কাজ করব। আমি বলতে চাই কি আপনাকে দেখাতে দিন। প্রথমে আসুন একটি "ভান" মেশিনটি "ভান" করা ব্যক্তির মালিকানাধীন - আমরা তাকে বব বলব।<jupyter_code>bob = sy.VirtualWorker(hook, id="bob")<jupyter_output><empty_output><jupyter_text>ধরা যাক ববসের যন্ত্রটি অন্য গ্রহে রয়েছে - সম্ভবত মঙ্গলগ্রহে! তবে, এই মুহুর্তে মেশিনটি খালি রয়েছে। আসুন কিছু ডেটা তৈরি করুন যাতে আমরা এটি ববকে প্রেরণ করতে পারি এবং পয়েন্টারগুলি সম্পর্কে জানতে পারি!<jupyter_code>x = torch.tensor([1,2,3,4,5])
y = torch.tensor([1,1,1,1,1])<jupyter_output><empty_output><jupyter_text>এবং এখন - আসুন আমাদের টেনারগুলি Bobকে প্রেরণ করুন !!<jupyter_code>x_ptr = x.send(bob)
y_ptr = y.send(bob)
x_ptr<jupyter_output><empty_output><jupyter_text>এবং এখন - আসুন আমাদের টেনারগুলি Bobকে প্রেরণ করুন !! এখন Bob দুই টেনার আছে! বিশ্বাস করবেন না? নিজের জন্য একবার দেখুন!<jupyter_code>bob._objects
z = x_ptr + x_ptr
z
bob._objects<jupyter_output><empty_output><jupyter_text>এখন কিছু লক্ষ্য করুন। আমরা যখন `x.send (বব) বলি` তখন এটি একটি নতুন বস্তু ফিরে আসে যা আমরা `x_ptr` বলে called এটি একটি টেন্সরের কাছে আমাদের প্রথম * পয়েন্টার। টেনারগুলিতে পয়েন্টারগুলি আসলে ডেটা রাখে না। পরিবর্তে, তারা কেবল অন্য মেশিনে সঞ্চিত টেনসর (ডেটা সহ) সম্পর্কে মেটাডেটা ধারণ করে। এই টেনসরগুলির উদ্দেশ্য হ'ল এই টেনসরটি ব্যবহার করে অন্য মেশিনকে ফাংশনগুলি গণনা করতে বলার জন্য একটি স্বজ্ঞাত এপিআই দেওয়া। পয়েন্টারগুলিতে থাকা মেটাডেটাটি একবার দেখে নেওয়া যাক।<jupyter_code>x_ptr<jupyter_output><empty_output><jupyter_text>মেটাটাটা দেখুন!পয়েন্টারগুলিতে নির্দিষ্ট দুটি প্রধান বৈশিষ্ট্য রয়েছে:- `x_ptr.location: bob`, অবস্থান, পয়েন্টারটি নির্দেশ করছে যে অবস্থানের জন্য একটি রেফারেন্স- `x_ptr.id_at_location: `, আইডি যেখানে সেন্সরটি লোকেশনটিতে সংরক্ষণ করা হয়এগুলি ` @  the ফর্ম্যাটে মুদ্রিত হয়েছে`আরও অন্যান্য জেনেরিক বৈশিষ্ট্য রয়েছে:- `x_ptr.id: `, আমাদের পয়েন্টার টেন্সরের আইডি, এটি এলোমেলোভাবে বরাদ্দ করা হয়েছিল- `x_ptr.owner:" আমি "`, যে কর্মী পয়েন্টার টেনসারের মালিক, এখানে স্থানীয় শ্রমিক, নাম দেওয়া হয়েছে "me"<jupyter_code>x_ptr.location
bob
bob == x_ptr.location
x_ptr.id_at_location
x_ptr.owner<jupyter_output><empty_output><jupyter_text>আপনি ভাবতে পারেন যে পয়েন্টারের মালিকানাধীন স্থানীয় কর্মী কেন ভার্চুয়াল ওয়ার্কার, যদিও আমরা এটি তৈরি করি নি।মজার ঘটনা, ঠিক যেমন ববয়ের জন্য আমাদের ভার্চুয়াল ওয়ার্কার অবজেক্ট ছিল, আমাদের (ডিফল্টরূপে) সর্বদা আমাদের জন্যও রয়েছে। যখন আমরা `hook = sy.TorchHook () called বলি তখন এই কর্মী স্বয়ংক্রিয়ভাবে তৈরি হয় এবং তাই আপনাকে সাধারণত নিজেরাই তৈরি করতে হবে না।<jupyter_code>me = sy.local_worker
me
me == x_ptr.owner<jupyter_output><empty_output><jupyter_text>এবং শেষ অবধি, আমরা যেমন একটি টেনসরে .send () কল করতে পারি, ঠিক তেমনভাবে ফিরে আসার জন্য আমরা একটি টেন্ডারটিতে একটি পয়েন্টারে .get () কল করতে পারি !!!<jupyter_code>x_ptr
x_ptr.get()
y_ptr
y_ptr.get()
z.get()
bob._objects<jupyter_output><empty_output><jupyter_text>এবং আপনি দেখতে পাচ্ছেন ... বব এর আর টেনার নেই! তারা আমাদের মেশিনে ফিরে গেছে!  বিভাগ 1.2 - টেনসর পয়েন্টার ব্যবহার করেসুতরাং, ববের কাছ থেকে টেনারগুলি প্রেরণ এবং গ্রহণ করা দুর্দান্ত তবে এটি ডিপ লার্নিং খুব কমই! আমরা রিমোট টেনারগুলিতে টেনসর _অপারেশন_ সম্পাদন করতে সক্ষম হতে চাই। ভাগ্যক্রমে, টেনসর পয়েন্টারগুলি এটি বেশ সহজ করে তোলে! আপনি যেমন সাধারণ টেনারগুলি চান ঠিক তেমন পয়েন্টার ব্যবহার করতে পারেন!<jupyter_code>x = torch.tensor([1,2,3,4,5]).send(bob)
y = torch.tensor([1,1,1,1,1]).send(bob)
z = x + y
z<jupyter_output><empty_output><jupyter_text>ও ভয়েল!পর্দার আড়ালে খুব শক্তিশালী কিছু ঘটেছিল। স্থানীয়ভাবে এক্স এবং ওয়াই সংযোজন করার পরিবর্তে, একটি কমান্ড সিরিয়াল করা হয়েছিল এবং ববকে পাঠানো হয়েছিল, যিনি গণনা করেছিলেন, একটি সেন্সর জেড তৈরি করেছিলেন এবং তারপরে পয়েন্টারটি z এ ফিরে এসেছিলেন!আমরা যদি পয়েন্টারে .get () কল করি তবে আমরা আমাদের মেশিনে ফলাফলটি ফিরে পাব!<jupyter_code>z.get()<jupyter_output><empty_output><jupyter_text>টর্চ ফাংশনএই এপিআই টর্চের সমস্ত ক্রিয়াকলাপে প্রসারিত হয়েছে !!!<jupyter_code>x
y
z = torch.add(x,y)
z
z.get()<jupyter_output><empty_output><jupyter_text>ভেরিয়েবল (ব্যাকপ্রোপেশন সহ!)<jupyter_code>x = torch.tensor([1,2,3,4,5.], requires_grad=True).send(bob)
y = torch.tensor([1,1,1,1,1.], requires_grad=True).send(bob)
z = (x + y).sum()
z.backward()
x = x.get()
x
x.grad<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.2878430531732418, 'fraction_numerical': 0.007075471698113208, 'mean_word_length': 5.706685837526959, 'pattern_counts': {'":': 0, '<': 58, '<?xml version=': 0, '>': 58, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '14', 'dir': 'jupyter-structured-clean-dedup', 'id': '81255', 'license': 'Apache-2.0', 'n_tokens_mistral': 8336, 'n_tokens_neox': 10126, 'n_words': 1147, 'path': 'examples/tutorials/translations/bengali/Part 01 - The Basic Tools of Private Deep Learning.ipynb', 'repo_name': 'stephenjfox/PySyft', 'size': '9334'}