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

Spark NLP হলো Apache Spark-এর উপরে নির্মিত একটি ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং লাইব্রেরি, যা ডিস্ট্রিবিউটেড পরিবেশে স্কেল করার মতো মেশিন লার্নিং পাইপলাইনের জন্য NLP অ্যানোটেশন প্রদান করার জন্য ডিজাইন করা হয়েছে। এটি John Snow Labs দ্বারা তৈরি এবং Apache 2.0 লাইসেন্সের অধীনে প্রকাশিত। মূল সক্ষমতা লাইব্রেরিটি বিস্তৃত NLP টাস্ক কভার করে, যার মধ্যে রয়েছে টোকেনাইজেশন, ওয়ার্ড সেগমেন্টেশন, পার্ট-অফ-স্পিচ ট্যাগিং, ওয়ার্ড ও সেন্টেন্স এমবেডিং, নেমড এনটিটি রিকগনিশন, ডিপেন্ডেন্সি পার্সিং, স্পেল চেকিং, টেক্সট ক্লাসিফিকেশন, সেন্টিমেন্ট অ্যানালাইসিস, টোকেন ক্লাসিফিকেশন, মেশিন ট্রান্সলেশন (১৮০+ ভাষা), সামারাইজেশন, কোয়েশ্চন আনসারিং, টেবিল কোয়েশ্চন আনসারিং, টেক্সট জেনারেশন, ইমেজ ক্লাসিফিকেশন, ইমেজ-টু-টেক্সট ক্যাপশনিং, অটোমেটিক স্পিচ রিকগনিশন এবং জিরো-শট লার্নিং। এটি BERT, CamemBERT, ALBERT, ELECTRA, XLNet, DistilBERT, RoBERTa, DeBERTa, XLM-RoBERTa, Longformer, ELMo, Universal Sentence Encoder, Llama-2, M2M100, BART, Instructor, E5, Google T5, MarianMT, OpenAI GPT2, Vision Transformers, OpenAI Whisper, Llama, Mistral, Phi এবং Qwen2-এর মতো ট্রান্সফরমার আর্কিটেকচার সাপোর্ট করে। এগুলি শুধু Python ও R-এ নয়, Apache Spark নেটিভভাবে এক্সটেন্ড করে JVM ইকোসিস্টেমেও (Java, Scala, Kotlin) এক্সপোজ করা হয়। মডেল ও পাইপলাইন প্রজেক্টটি জানায় যে এটি ২০০-এর বেশি ভাষায় ১,০০,০০০+ প্রিট্রেইনড পাইপলাইন ও মডেল সরবরাহ করে, যেগুলি ব্রাউজ করার জন্য একটি Models Hub রয়েছে। মডেল ইমপোর্টিং সাপোর্টের মধ্যে রয়েছে TensorFlow, ONNX, OpenVINO এবং Llama.cpp (GGUF), যা অন্য ফ্রেমওয়ার্কের মডেল ইন্টিগ্রেট করার সুযোগ দেয়। প্ল্যাটফর্ম সাপোর্ট Spark NLP 7.0.0 Apache Spark 3.x (Scala 2.12) এবং ভ্যালিডেটেড Apache Spark 4 সংস্করণ (Scala 2.13) সাপোর্ট করে। যেহেতু Apache Spark 4.0.0 একটি বাইনারি-ইনকম্প্যাটিবল Param পরিবর্তন এনেছে, তাই আলাদা আর্টিফ্যাক্ট রয়েছে: Spark 3.0.x-3.5.x-এর জন্য spark-nlp_2.12, Spark 4.0.0-এর জন্য spark-nlp-spark400_2.13, এবং Spark 4.0.1 ও পরবর্তী ভ্যালিডেটেড Spark 4 সংস্করণের জন্য spark-nlp_2.13। CPU, GPU, AArch64 (Linux) এবং Apple Silicon ভ্যারিয়েন্ট রয়েছে, যেখানে M1/M2 ও AArch64-কে পরীক্ষামূলক হিসেবে বর্ণনা করা হয়েছে। Python সাপোর্ট Spark 3.x লেনে 3.7 থেকে 3.10 পর্যন্ত এবং Spark 4.x লেনে 3.9 থেকে 3.12 পর্যন্ত বিস্তৃত। README-তে Databricks রানটাইম (14.x থেকে 16.4, CPU ও GPU), Amazon EMR 6.13 থেকে 7.8, এবং emr-spark-8.0.0-এ Spark 4.0.2, Scala 2.13 ও Java 17 সহ একটি EMR Serverless লেনের সঙ্গেও সামঞ্জস্য তালিকাভুক্ত করা হয়েছে। ইনস্টলেশন ও ব্যবহার ইনস্টলেশন pip, conda এবং Maven Central-এর মাধ্যমে উপলব্ধ, যেখানে একটি কুইক-স্টার্ট উদাহরণ sparknlp.start() দেখায়, explain_document_dl-এর মতো একটি PretrainedPipeline লোড করে, এবং টেক্সট অ্যানোটেট করে এনটিটি, লেমা, POS ট্যাগ, টোকেন ও অন্যান্য অ্যানোটেশন পাওয়া যায়। লাইব্রেরিটি সম্পূর্ণ অফলাইনে চলতে পারে, এবং কনফিগারেশন Spark প্রপার্টিজের মাধ্যমে সমন্বয়যোগ্য। ট্রেনিং লগ এক্সপোর্ট এবং NerDLApproach-এর ব্যবহৃত TensorFlow গ্রাফ সংরক্ষণের জন্য S3 ইন্টিগ্রেশন উপলব্ধ। ডকুমেন্টেশন ও কমিউনিটি অফিসিয়াল ডকুমেন্টেশন, উদাহরণ, ডেমো এবং একটি মডেল হাব sparknlp.org-এ হোস্ট করা হয়েছে। কমিউনিটি চ্যানেলের মধ্যে রয়েছে Slack, GitHub issues ও discussions, Medium এবং YouTube। প্রজেক্টটির Software Impacts-এ একটি প্রকাশিত পেপার রয়েছে এবং এটি আইডিয়া, ফিডব্যাক, ডকুমেন্টেশন, বাগ রিপোর্ট, কর্পোরা ও টেস্টিং-এর মতো অবদানকে স্বাগত জানায়।