OpenAI
এই পেজটি মেশিন দিয়ে অনুবাদ করা হয়েছে। মূল ইংরেজি আর্টিকেল দেখুন

OpenAI API দিয়ে টোকেনের সম্ভাবনা বদলাতে logit bias ব্যবহার

মডেলের আউটপুট পরিবর্তন করতে logit bias প্যারামিটার কীভাবে ব্যবহার করবেন তা জানুন

আপডেট করা হয়েছে: 17 days ago

Logit_bias একটি ঐচ্ছিক প্যারামিটার, যা মডেল-জেনারেটেড আউটপুটে নির্দিষ্ট টোকেনগুলো দেখা দেওয়ার সম্ভাবনা পরিবর্তন করে.

এই প্যারামিটারটি একটি JSON অবজেক্ট গ্রহণ করে, যা টোকেনগুলোকে -100 (যা বেশিরভাগ ক্ষেত্রে সেই টোকেনটি জেনারেট হওয়া আটকাবে) থেকে 100 (টোকেনটির একচেটিয়া নির্বাচন, যার ফলে এটি জেনারেট হওয়ার সম্ভাবনা বেশি হয়) পর্যন্ত সংশ্লিষ্ট বায়াস মানের সঙ্গে ম্যাপ করে. -1 ও 1-এর মতো মাঝারি মান কোনো টোকেন নির্বাচিত হওয়ার সম্ভাবনা কম মাত্রায় পরিবর্তন করবে.

যেহেতু প্যারামিটারটি টেক্সট নয়, টোকেন গ্রহণ করে, তাই টেক্সটকে টোকেন আইডিতে রূপান্তর করতে একটি টোকেনাইজার টুল ব্যবহার করা উচিত. চলুন কয়েকটি উদাহরণ দেখে নেওয়া যাক.

উদাহরণ ১: ‘time’ সরান

যদি আমরা “Once upon a,” প্রম্পট দিয়ে Completions এন্ডপয়েন্ট কল করি, তাহলে কমপ্লিশনটি খুব সম্ভবত “ time.” দিয়ে শুরু হবে.

“time” শব্দটি টোকেনাইজ হয়ে আইডি 2435 হয় এবং “ time” শব্দটি (যার শুরুতে একটি স্পেস আছে) টোকেনাইজ হয়ে আইডি 640 হয়. এগুলো কমপ্লিশনে দেখা দেওয়া নিষিদ্ধ করতে আমরা logit_bias-এর মাধ্যমে -100 পাস করতে পারি, যেমন:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "You finish user's sentences."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

এখন, প্রম্পট “Once upon a” থেকে কমপ্লিশন হিসেবে “midnight dreary, while I pondered, weak and weary.” তৈরি হয়.

খেয়াল করুন, “time” শব্দটি কোথাও নেই, কারণ আমরা logit_bias ব্যবহার করে কার্যত ওই টোকেনটি নিষিদ্ধ করেছি.

উদাহরণ ২: লক্ষ্যভিত্তিক logit bias মান দিয়ে দিকনির্দেশনা দিন

চলুন আরেকটি উদাহরণ দেখি, একটি রেসিপি জেনারেটর প্রম্পট ব্যবহার করে.

অনেক রেসিপিতে হাঁড়ি ব্যবহার করার পরামর্শ থাকে, কিন্তু ধরা যাক আমাদের কোনো হাঁড়ি নেই. আমাদের কমপ্লিশনের অংশ হিসেবে যেন pot শব্দটি জেনারেট না হয়, আমরা তা চাইব. “Pot” টোকেনাইজ করলে 1787 হয়, তাই নিচের মতো আমাদের logit_bias সেট করে আমরা এটি আমাদের জেনারেশন থেকে বাদ দিতে পারি.

logit_bias={1787:-100}

এখন আমাদের কমপ্লিশনে তার বদলে “saucepan” শব্দটি থাকতে পারে. চমৎকার.

উদাহরণ ৩: কোনো শব্দ দেখা দেওয়ার সম্ভাবনা বাড়ানো

ধরা যাক, আমরা কোনো শব্দ দেখা দেওয়ার সম্ভাবনা বাড়াতে চাই.

উদাহরণস্বরূপ, হয়তো আমরা এমন একটি সাইট চালাচ্ছি যেখানে মাইক্রোওয়েভ দিয়ে বানানো যায় এমন রেসিপি দেওয়া হয়, তাই আমরা নিশ্চিত করতে চাই যে রেসিপিতে “microwave” শব্দটি থাকবে. Microwave টোকেনাইজ করলে ID 27000 হয়. এই টোকেনটি দেখা দেওয়ার সম্ভাবনা আমরা একটি ধনাত্মক logit_bias সেট করে বাড়াতে পারি, এভাবে:

logit_bias={27000:5}

এখন, আমাদের কমপ্লিশনে “microwave” শব্দটি থাকার সম্ভাবনা বেশি.

আমরা logit_bias 5 সেট করেছি, কারণ আমরা দেখেছি logit_bias 1 সেট করলে প্রায়ই কমপ্লিশনে “microwave” শব্দটি দেখা যেত না, আর 10-এর মতো বেশি logit_bias মান দিলে কমপ্লিশনে “ microwave” শব্দটি অতিরিক্ত বেশি দেখা যেত.

এই নিবন্ধটি কি সহায়ক ছিল?