paint-brush
LiteLLM কনফিগারেশন: বিশ্বস্তভাবে 100+ LLM কল করুনদ্বারা@krrish
2,951 পড়া
2,951 পড়া

LiteLLM কনফিগারেশন: বিশ্বস্তভাবে 100+ LLM কল করুন

দ্বারা Krrish Dholakia3m2023/09/22
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

LiteLLM হল Openai-python sdk-এর একটি ড্রপ-ইন প্রতিস্থাপন। আপনাকে 100+ LLM কল করতে দিচ্ছে। কনফিগার ফাইলগুলির সাথে, এটি এখন আপনাকে কোনো সার্ভার-সাইড কোড পরিবর্তন না করে উৎপাদনে নতুন মডেল যোগ করতে দেয়।
featured image - LiteLLM কনফিগারেশন: বিশ্বস্তভাবে 100+ LLM কল করুন
Krrish Dholakia HackerNoon profile picture
0-item
1-item


সমস্যাটি

একাধিক LLM কল করার জন্য প্রদানকারী/মডেল-নির্দিষ্ট কনফিগারেশন জড়িত। এমনকি যদি আপনি I/O একত্রিত করেন, তবুও মডেল/প্রোভাইডার-নির্দিষ্ট এজ-কেসগুলি পরিচালনা করার জন্য আপনার একটি উপায় প্রয়োজন।


আমরা গত সপ্তাহে এর মুখোমুখি হয়েছিলাম যখন অ্যানথ্রোপিক আমাদের বলেছিল যে আমরা তাদের বিষয়বস্তু নীতি লঙ্ঘন করেছি। যেহেতু, আমরা আমাদের ওপেন-সোর্স প্রক্সি সার্ভারের মাধ্যমে আমাদের সম্প্রদায়ের LLM যেমন Claude-2 ইত্যাদিতে অ্যাক্সেস প্রদান করি।


OpenAI মডারেশন এন্ডপয়েন্টের মাধ্যমে ক্যোয়ারী চেক করা ক্যোয়ারীগুলোকে ধীর করে দেবে, তাই আমরা এটি শুধুমাত্র Anthropic এর মডেলে চালাতে চেয়েছিলাম।


 if model in ["claude-instant-1", "claude-2"]: # run moderations check return litellm.completion(model, messages)


কিন্তু এই মত শর্তযুক্ত যুক্তি বাগ বাড়ে. আমরা আগে এই সঠিক সমস্যার মুখোমুখি হয়েছিলাম, এবং আমাদের জন্য এই সমস্যাটি সমাধান করার জন্য LiteLLM তৈরি করেছি (বিমূর্ত লাইব্রেরি যা LLM API কলগুলিকে সরলীকৃত করেছে)।


tldr;

  • আমরা আমাদের সার্ভারে শর্তযুক্ত যুক্তি চাইনি
  • কোন মডেল/প্রদানকারীর জন্য এটি এই চেকটি চালায় তা নিয়ন্ত্রণ করার জন্য আমাদের একটি উপায় প্রয়োজন

সমাধান: কনফিগার ফাইল

আমাদের সমাধান ছিল LiteLLM আমাদের জন্য এটি পরিচালনা করবে এবং একটি কনফিগার ফাইলের মাধ্যমে এটির যুক্তি নিয়ন্ত্রণ করবে। এটি আমাদের সার্ভার কোড থেকে শর্তসাপেক্ষ যুক্তিকে সরিয়ে দিয়েছে , এবং এখনও আমাদের প্রদানকারী/মডেলের নির্দিষ্ট বিবরণ নিয়ন্ত্রণ করার অনুমতি দিয়েছে।


এটি আমাদের অন্যান্য পরিস্থিতি যেমন প্রসঙ্গ উইন্ডো ত্রুটি, সর্বোচ্চ টোকেন ইত্যাদি পরিচালনা করতে সক্ষম করে।


এখানে আমাদের সম্পূর্ণ কোড:


 import litellm import os config = { "default_fallback_models": ["gpt-3.5-turbo", "claude-instant-1", "j2-ultra"], "model": { "claude-instant-1": { "needs_moderation": True }, "gpt-3.5-turbo": { "error_handling": { "ContextWindowExceededError": {"fallback_model": "gpt-3.5-turbo-16k"} } } } } # set env var os.environ["OPENAI_API_KEY"] = "sk-litellm-5b46387675a944d2" # [OPTIONAL] replace with your openai key os.environ["ANTHROPIC_API_KEY"] = "sk-litellm-5b46387675a944d2" # [OPTIONAL] replace with your anthropic key sample_text = "how does a court case get to the Supreme Court?" * 1000 messages = [{"content": sample_text, "role": "user"}] response = completion_with_config(model="gpt-3.5-turbo", messages=messages, config=config) print(response) # should be gpt-3.5-turbo-16k


কনফিগার ফাইলগুলি বর্তমানে পরিচালনা করে:

  • প্রম্পট লজিক - প্রদত্ত প্রম্পটের জন্য সঠিক মডেল বাছাই করা, সেইসাথে একটি প্রম্পট ছাঁটাই করা যদি এটি যেকোনো উপলব্ধ মডেলের চেয়ে বড় হয়
  • ফলব্যাক লজিক - আপনাকে ডিফল্ট ফলব্যাক এবং সেইসাথে মডেল-নির্দিষ্ট সেট করতে দেয় (উদাঃ উপরের প্রসঙ্গ উইন্ডো ত্রুটি)।
  • সংযম - যদি কোন প্রদানকারীর (যেমন অ্যানথ্রোপিক) আপনাকে আপনার অনুরোধগুলি সংযত করার প্রয়োজন হয়


সময়ের সাথে সাথে, এটি অন্যান্য মডেল-নির্দিষ্ট পরামিতিগুলি পরিচালনা করবে যেমন সর্বোচ্চ টোকেন সেট করা, প্রম্পট ফর্ম্যাটিং ইত্যাদি। ধারণা/পরামর্শগুলি স্বাগত!

উপসংহার

LiteLLM ইতিমধ্যেই LLM প্রদানকারীদের কলিং সরলীকৃত করেছে, OpenAI ChatCompletion-এর এন্ডপয়েন্টের জন্য ড্রপ-ইন প্রতিস্থাপন সহ।


কনফিগার ফাইলগুলির সাথে, এটি এখন আপনাকে সার্ভার-সাইড কোড পরিবর্তন না করে উৎপাদনে নতুন মডেল যোগ করতে দেয়।


সামগ্রিকভাবে, LiteLLM যে কেউ দ্রুত এবং সহজে উৎপাদনে অ-ওপেনএআই মডেল যোগ করতে চায় তাদের জন্য একটি চমৎকার পছন্দ।


আমরা সক্রিয়ভাবে এই প্রকল্পটি বাড়াতে চেষ্টা করছি তাই আপনার দক্ষতার স্তর যাই হোক না কেন আমরা অবদানকে স্বাগত জানাই! আপনি অনুপস্থিত বৈশিষ্ট্য/বাগ খুঁজে পেলে বা বিদ্যমান সমস্যাগুলিতে অবদান রাখলে একটি সমস্যা খুলুন। নতুন আপডেট আসার সাথে সাথে আপনি যদি আমাদের অগ্রগতি অনুসরণ করতে চান তবে আমাদের GitHub-এ তারকাচিহ্নিত করুন