Function calling (LLM) (BN)

From Systems analysis Wiki
Jump to navigation Jump to search

Function Calling (ফাংশন কলিং) — এটি বৃহৎ ভাষা মডেলে (LLM) একটি প্রক্রিয়া, যা মডেলকে বাহ্যিক টুল এবং API-এর সাথে যোগাযোগ করতে দেয়। এই প্রক্রিয়ায় মডেল সরাসরি পাঠ্য উত্তরের পরিবর্তে ফাংশন কল করার জন্য কাঠামোবদ্ধ ডেটা (সাধারণত JSON) তৈরি করে[1]

অর্থাৎ, মডেল ব্যবহারকারীর অনুরোধের ভিত্তিতে নির্ধারণ করে যে প্রদত্ত সেট থেকে কোন ফাংশনটি কোন প্যারামিটার দিয়ে কল করতে হবে। এই প্রক্রিয়া LLM-এর প্রয়োগক্ষেত্র বিস্তৃত করে, কারণ এটি প্রাকৃতিক ভাষা এবং বাস্তব কার্যক্রমের মধ্যে একটি ইন্টারফেস হিসেবে কাজ করতে পারে। এটি AI-কে বাহ্যিক সিস্টেমের সাথে একীভূত করার সুযোগ খুলে দেয়: মডেল আপ-টু-ডেট তথ্য অনুরোধ করতে, অপারেশন সম্পন্ন করতে বা সেবা ব্যবহার করতে পারে, যা বুদ্ধিমান অ্যাসিস্ট্যান্ট এবং স্বায়ত্তশাসিত এজেন্ট তৈরিতে বিশেষভাবে মূল্যবান। বাহ্যিক টুলের ব্যবহার বিশ্বস্ত উৎসে প্রবেশের মাধ্যমে হ্যালুসিনেশন (কাল্পনিক তথ্য) এর ঝুঁকিও কমায়[2]

ইতিহাস ও বাস্তবায়নের পদ্ধতি

প্রাথমিক পদ্ধতি (প্রম্পটিং এবং Toolformer)

ভাষা মডেলকে টুল কল করতে শেখানোর ধারণাটি ২০২২–২০২৩ সালে গড়ে ওঠে। প্রাথমিক পদ্ধতিগুলো জটিল প্রম্পটিং প্রযুক্তির উপর নির্ভর করত। উদাহরণস্বরূপ, ২০২২ সালে ReAct পদ্ধতি প্রস্তাব করা হয়েছিল, যেখানে মডেল কথোপকথনের সময় একটি টেক্সটে এনকোড করা যুক্তি এবং কার্যক্রম (টুল কল) পর্যায়ক্রমে সম্পন্ন করত।

একটি গুরুত্বপূর্ণ পদক্ষেপ ছিল Toolformer মডেলের আবির্ভাব, যা ২০২৩ সালের শুরুতে Meta-র গবেষকরা উপস্থাপন করেন। Toolformer প্রদর্শন করেছিল যে LLM-কে বিশেষভাবে fine-tuning করা যায় যাতে এটি টেক্সট প্রম্পটের ভিত্তিতে স্বাধীনভাবে বাহ্যিক টুল (ক্যালকুলেটর, সার্চ ইঞ্জিন, ক্যালেন্ডার) কল করতে পারে এবং তৈরি করা টেক্সটে বিশেষ API কল token সন্নিবেশ করতে পারে[3]

আনুষ্ঠানিক সমর্থন এবং বিকাশ

OpenAI একটি বিশেষ মাইলফলক চিহ্নিত করেছে, যখন ২০২৩ সালের জুনে তারা আনুষ্ঠানিকভাবে GPT-3.5 এবং GPT-4 মডেলের জন্য তাদের API-তে Function Calling সমর্থন চালু করে[4]। মডেলের নতুন সংস্করণগুলো এমন পরিস্থিতি চিহ্নিত করতে এবং সঠিকভাবে কাঠামোবদ্ধ আর্গুমেন্ট সহ JSON অবজেক্ট তৈরি করতে fine-tuning করা হয়েছিল, যেখানে ব্যবহারকারীর অনুরোধে বাহ্যিক ফাংশন কল প্রয়োজন। OpenAI এই সক্ষমতাকে "GPT-কে বাহ্যিক টুল ও API-এর সাথে নির্ভরযোগ্যভাবে সংযুক্ত করার নতুন উপায়" হিসেবে অভিহিত করেছে।

উন্মুক্ত উদ্যোগ

বাণিজ্যিক বাস্তবায়নের পরে সঠিক ফাংশন কল তৈরিতে fine-tuning করা উন্মুক্ত মডেল আবির্ভূত হয়েছে।

  • Gorilla: UC Berkeley-র একটি প্রকল্প, LLaMA-র একটি fine-tuned সংস্করণ যা হাজার হাজার বিভিন্ন API-তে কল তৈরি করতে সক্ষম। এই ধরনের মডেল মূল্যায়নের জন্য Berkeley Function-Calling Leaderboard benchmark তৈরি করা হয়েছে[5]
  • ToolAlpaca, ToolLLaMA, Hermes: সিন্থেটিক ফাংশন কল উদাহরণের উপর fine-tuned উন্মুক্ত মডেলের একটি সিরিজ, যা প্রায়শই আরও শক্তিশালী মডেল দ্বারা তৈরি।

কার্যপ্রণালী

Function Calling ব্যবহারের প্রক্রিয়ায় সাধারণত কয়েকটি ধাপ অন্তর্ভুক্ত থাকে:

  1. ফাংশন সংজ্ঞায়ন। ডেভেলপার আগে থেকে মডেলের জন্য উপলব্ধ ফাংশনগুলির (যেমন, বাহ্যিক API) একটি সেট নির্ধারণ করেন এবং সাধারণত JSON Schema ফরম্যাটে তাদের সিগনেচার ও উদ্দেশ্য বর্ণনা করেন।
  2. অনুরোধ বিশ্লেষণ। কথোপকথনের সময় মডেল ব্যবহারকারীর উদ্দেশ্য বিশ্লেষণ করে এবং স্বাধীনভাবে সিদ্ধান্ত নেয় যে উত্তর দেওয়ার জন্য সংজ্ঞায়িত ফাংশনগুলির মধ্যে একটি কল করা প্রয়োজন কিনা।
  3. কল তৈরি। যদি কোনো কার্যক্রম প্রয়োজন হয়, LLM সাধারণ টেক্সটের পরিবর্তে একটি বিশেষ কাঠামোবদ্ধ আউটপুট (যেমন, ফাংশনের নাম এবং আর্গুমেন্ট সহ JSON) তৈরি করে। যদি কল প্রয়োজন না হয়, মডেল সাধারণ পাঠ্য উত্তর দেয়।
  4. ফাংশন নির্বাহ। বাহ্যিক প্রোগ্রাম (চ্যাটবট শেল বা এজেন্ট) JSON গ্রহণ করে, প্রস্তাবিত প্যারামিটার সহ নির্দিষ্ট ফাংশনের বাস্তব কল সম্পন্ন করে এবং ফলাফল মডেলে ফেরত পাঠায়।
  5. চূড়ান্ত উত্তর গঠন। মডেল প্রাপ্ত তথ্য ব্যবহার করে ব্যবহারকারীর জন্য চূড়ান্ত উত্তর তৈরি করে[4]

এই বহু-ধাপ প্রক্রিয়া পরিচালনার জন্য মডেল প্রশিক্ষণের সময় বিশেষ ডায়ালগ ফরম্যাট ব্যবহার করা হয়, যেমন OpenAI-এর ChatML মার্কআপ, যেখানে \"ব্যবহারকারী\" এবং \"অ্যাসিস্ট্যান্ট\" ভূমিকার পাশাপাশি কল ফলাফল পাঠানোর জন্য \"ফাংশন\" ভূমিকা চালু করা হয়েছে।

প্রয়োগ ও সুবিধা

ফাংশন কল করার সক্ষমতা LLM দিয়ে সমাধানযোগ্য কাজের পরিসর উল্লেখযোগ্যভাবে বিস্তৃত করে।

  • বাহ্যিক API-এর সাথে একীভূতকরণ। মডেল আপ-টু-ডেট তথ্যের প্রয়োজনীয় অনুরোধের উত্তর দিতে বাহ্যিক সেবা কল করতে পারে (যেমন, আবহাওয়া, মুদ্রার বিনিময় হার, সংবাদ পেতে)।
  • ব্যবহারকারীর কার্যক্রম স্বয়ংক্রিয়করণ। LLM নিয়মিত কাজ সম্পন্ন করতে পারে: ইমেল পাঠানো, ক্যালেন্ডারে ইভেন্ট তৈরি, অনলাইন স্টোরে অর্ডার দেওয়া।
  • ডেটাবেস ও বিশ্লেষণে প্রবেশ। প্রাকৃতিক ভাষার অনুরোধগুলো ডেটা বের করা ও বিশ্লেষণের জন্য অভ্যন্তরীণ API কল বা SQL কোয়েরিতে রূপান্তরিত হতে পারে।
  • কাঠামোবদ্ধ তথ্য উত্তোলন। LLM নিজে দীর্ঘ টেক্সট থেকে তথ্য (যেমন, নাম, তারিখ, ঠিকানা) বের করে কাঠামোবদ্ধ JSON অ্যারে হিসেবে ফেরত দিতে পারে, যা পরবর্তী প্রোগ্রামেটিক প্রক্রিয়াকরণের জন্য সুবিধাজনক।

নিরাপত্তা সমস্যা

মডেলের সক্ষমতা বাড়ানোর পাশাপাশি Function Calling নতুন ঝুঁকিও বহন করে।

  • অযাচাইকৃত আউটপুট। বাহ্যিক টুলের সাথে মডেলের মিথস্ক্রিয়া সতর্কতার সাথে সুরক্ষিত করতে হবে। যদি মডেল API থেকে ক্ষতিকর বা ভুল মান পায়, তাহলে এটি উত্তরে অন্তর্ভুক্ত করতে বা তার ভিত্তিতে অন্য ফাংশন কল করতে পারে, যা অপ্রত্যাশিত পরিণতি ডেকে আনে।
  • ফাংশন আর্গুমেন্টের মাধ্যমে আক্রমণ। গবেষকরা Function Calling মোডের জন্য নির্দিষ্ট দুর্বলতা আবিষ্কার করেছেন। ২০২৫ সালে একটি আক্রমণ প্রদর্শিত হয়েছে যার নাম \"Function Calling-এর অন্ধকার দিক\"। এর সারমর্ম হলো মডেলকে একটি বিশেষ \"ফাংশন\" অফার করা, যার আর্গুমেন্টের ভেতরে একটি নিষিদ্ধ নির্দেশনা (jailbreak পেলোড) লুকানো থাকে। মডেল ফাংশন কলের নীতি অনুসরণ করে নিয়ম-লঙ্ঘনকারী কন্টেন্ট সম্বলিত আর্গুমেন্ট তৈরি করে এবং এভাবে মডারেশন ফিল্টার এড়িয়ে যায়। পরীক্ষায় দেখা গেছে GPT-4 এবং Claude সহ ছয়টি আধুনিক মডেলে এই আক্রমণ ৯০%-এরও বেশি ক্ষেত্রে সফল হয়েছে[2]

এই ধরনের ঘটনা প্রতিরোধের জন্য মডেলকে শুধুমাত্র বিশ্বস্ত টুল সরবরাহ করার, সমালোচনামূলক কার্যক্রম সম্পন্ন করার আগে ব্যবহারকারীর নিশ্চিতকরণ চালু করার এবং বিশেষ \"প্রতিরক্ষামূলক\" prompt ও বিপজ্জনক কন্টেন্টের জন্য আর্গুমেন্টের কঠোর যাচাইকরণ ব্যবহার করার পরামর্শ দেওয়া হয়।

তথ্যসূত্র

  • OpenAI-এর Function Calling-এর আনুষ্ঠানিক ঘোষণা
  • Gorilla LLM প্রকল্পের পৃষ্ঠা
  • Apideck (2024). An Introduction to Function Calling and Tool Use. Apideck Blog.
  • LangChain (2025). Tool Calling (Documentation). LangChain Docs.
  • Mistral AI (2025). Function Calling – Documentation. Mistral Docs.
  • Hopsworks (2024). What is Function Calling with LLMs?. Hopsworks Dictionary.
  • Hopsworks (2024). Unlocking the Power of Function Calling with LLMs. Hopsworks Blog.
  • University of California, Berkeley (2025). Berkeley Function Calling Leaderboard V3. Online Resource.

সাহিত্য

  • Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. ACL 2025.
  • OpenAI (2023). Function Calling and Other API Updates. OpenAI Blog.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
  • Liu, W. et al. (2024). ToolACE: Winning the Points of LLM Function Calling. arXiv:2409.00920.
  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.

টীকা

  1. «What is Function Calling with LLMs?». Hopsworks. [১]
  2. 2.0 2.1 Wu, Z. et al. «The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models». Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing, 2025. [২]
  3. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv:2302.04761, 2023. [৩]
  4. 4.0 4.1 «Function calling and other API updates». OpenAI, 2023. [৪]
  5. «Gorilla: Large Language Model Connected to Massive APIs». University of California, Berkeley. [৫]