Text Models (LLM)alibaba-cloud

معرفی و مستندات مدل هوش مصنوعی qwen2.5-coder-32b-instruct

مستندات مدل qwen2.5-coder-32b-instruct ارائه شده توسط ای آی کار (AI-KAR)

معرفی و بررسی فنی

⚡ وضعیت پشتیبانی از زبان فارسی

این مدل از زبان فارسی به صورت متوسط پشتیبانی می‌کند. درک و تولید متون فارسی توسط این مدل امکان‌پذیر است، اما ممکن است در برخی موارد با مشکلاتی مواجه شود.

معرفی مدل qwen2.5-coder-32b-instruct

مدل qwen2.5-coder-32b-instruct، جدیدترین مدل متمرکز بر کدنویسی از سری Qwen است. این مدل با ۳۲ میلیارد پارامتر، قوی‌ترین عضو این خانواده محسوب می‌شود و در زمینه‌های کدنویسی، ریاضیات و وظایف عمومی عملکرد بسیار خوبی دارد. این مدل برای توسعه‌دهندگانی طراحی شده که به دنبال یک ابزار قدرتمند برای تولید، تکمیل و درک کد هستند.

قابلیت‌های کلیدی

  • تولید کد: این مدل قادر است کد را در زبان‌های برنامه‌نویسی مختلف تولید کند. تنها کافی است شرح مختصری از عملکرد مورد نظر ارائه دهید.
  • تکمیل کد: با ارائه بخشی از کد، مدل می‌تواند بقیه آن را تکمیل کند. این قابلیت به خصوص در پروژه‌های بزرگ و پیچیده بسیار مفید است.
  • اشکال‌زدایی کد: مدل می‌تواند خطاهای موجود در کد را شناسایی و پیشنهاداتی برای رفع آن‌ها ارائه دهد.
  • توضیح کد: مدل می‌تواند کد را به زبان طبیعی توضیح دهد. این قابلیت به درک بهتر کد و مستندسازی آن کمک می‌کند.
  • تبدیل کد: مدل می‌تواند کد را از یک زبان برنامه‌نویسی به زبان دیگر تبدیل کند.
  • حل مسائل ریاضی: این مدل می‌تواند مسائل ریاضی را حل کند و راه‌حل‌های آن‌ها را ارائه دهد.
  • انجام وظایف عمومی: علاوه بر کدنویسی و ریاضیات، این مدل می‌تواند وظایف عمومی دیگری مانند ترجمه زبان، خلاصه‌سازی متن و پاسخ به سوالات را نیز انجام دهد.

نحوه استفاده

برای استفاده از این مدل، ابتدا باید یک حساب کاربری در وب‌سایت ای آی کار (AI-KAR) ایجاد کنید و یک کلید API دریافت کنید. سپس می‌توانید از طریق API به مدل دسترسی پیدا کنید و درخواست‌های خود را ارسال کنید. در این مستندات، نمونه‌هایی از کد برای زبان‌های برنامه‌نویسی مختلف ارائه شده است که می‌توانید از آن‌ها برای شروع کار استفاده کنید.

پارامترهای API

API این مدل دارای پارامترهای مختلفی است که می‌توانید از آن‌ها برای کنترل رفتار مدل استفاده کنید. در بخش API Schema، توضیحات کاملی در مورد هر یک از این پارامترها ارائه شده است.

مزایا

  • عملکرد بالا: این مدل در زمینه‌های مختلف عملکرد بسیار خوبی دارد.
  • قابلیت‌های متنوع: این مدل قابلیت‌های متنوعی را ارائه می‌دهد.
  • استفاده آسان: استفاده از این مدل از طریق API بسیار آسان است.

نتیجه‌گیری

مدل qwen2.5-coder-32b-instruct یک ابزار قدرتمند و کارآمد برای توسعه‌دهندگان است که می‌تواند به آن‌ها در انجام وظایف مختلف کدنویسی کمک کند. با استفاده از این مدل، می‌توانید سرعت و کیفیت کار خود را به طور قابل توجهی افزایش دهید.

مشخصات فنی (API References)

پارامترنوعتوضیحات و مقادیر
model
stringRequired
مدل مورد استفاده برای تولید پاسخ. مقدار این پارامتر باید 'Qwen/Qwen2.5-Coder-32B-Instruct' باشد.
مقادیر مجاز (کلیک برای کپی):
messages
one of[]Required
لیستی از پیام‌ها که مکالمه را تا این لحظه تشکیل می‌دهند. بسته به مدلی که استفاده می‌کنید، انواع مختلف پیام (modalities) مانند متن، اسناد (txt، pdf)، تصاویر و صدا پشتیبانی می‌شوند.
max_tokens
number
حداکثر تعداد توکن‌هایی که می‌توان در تکمیل چت تولید کرد. این مقدار می‌تواند برای کنترل هزینه‌های متن تولید شده از طریق API استفاده شود.
stream
boolean
اگر روی True تنظیم شود، داده‌های پاسخ مدل به صورت جریانی (stream) با استفاده از رویدادهای ارسال شده توسط سرور (server-sent events) به کلاینت ارسال می‌شوند.
مقادیر مجاز (کلیک برای کپی):
stream_options
object
تنظیمات مربوط به استریم کردن پاسخ.
tools
object[]
لیستی از ابزارهایی که مدل می‌تواند فراخوانی کند. در حال حاضر، فقط توابع به عنوان ابزار پشتیبانی می‌شوند. از این برای ارائه لیستی از توابعی استفاده کنید که مدل می‌تواند ورودی‌های JSON را برای آن‌ها تولید کند. حداکثر 128 تابع پشتیبانی می‌شود.
tool_choice
any of
کنترل می‌کند که کدام ابزار (در صورت وجود) توسط مدل فراخوانی شود. none به این معنی است که مدل هیچ ابزاری را فراخوانی نمی‌کند و در عوض یک پیام تولید می‌کند. auto به این معنی است که مدل می‌تواند بین تولید یک پیام یا فراخوانی یک یا چند ابزار انتخاب کند. required به این معنی است که مدل باید یک یا چند ابزار را فراخوانی کند. تعیین یک ابزار خاص از طریق {"type": "function", "function": {"name": "my_function"}} مدل را مجبور می‌کند که آن ابزار را فراخوانی کند.
مقادیر مجاز (کلیک برای کپی):
parallel_tool_calls
boolean
تعیین می‌کند که آیا فراخوانی موازی توابع در هنگام استفاده از ابزار فعال شود یا خیر.
response_format
one of
یک شیء که فرمتی را مشخص می‌کند که مدل باید خروجی دهد.
echo
boolean
اگر True باشد، پاسخ شامل prompt خواهد بود. می‌تواند با logprobs برای برگرداندن prompt logprobs استفاده شود.
temperature
number
چه دمای نمونه‌برداری (sampling temperature) استفاده شود. مقادیر بالاتر مانند 0.8 خروجی را تصادفی‌تر می‌کنند، در حالی که مقادیر پایین‌تر مانند 0.2 آن را متمرکزتر و قطعی‌تر می‌کنند. ما معمولاً توصیه می‌کنیم این یا top_p را تغییر دهید، اما نه هر دو را.
top_p
number
جایگزینی برای نمونه‌برداری با دما، به نام نمونه‌برداری هسته‌ای (nucleus sampling)، که در آن مدل نتایج توکن‌ها را با جرم احتمال top_p در نظر می‌گیرد. بنابراین 0.1 به این معنی است که فقط توکن‌هایی که شامل 10٪ جرم احتمال برتر هستند در نظر گرفته می‌شوند. ما معمولاً توصیه می‌کنیم این یا temperature را تغییر دهید، اما نه هر دو را.
n
integer
چند انتخاب تکمیل چت (chat completion choices) برای هر پیام ورودی تولید شود. توجه داشته باشید که هزینه شما بر اساس تعداد توکن‌های تولید شده در تمام انتخاب‌ها محاسبه می‌شود. n را به عنوان 1 نگه دارید تا هزینه‌ها را به حداقل برسانید.
stop
any of
حداکثر 4 دنباله که API تولید توکن‌های بیشتر را متوقف می‌کند. متن برگشتی شامل دنباله توقف نخواهد بود.
logprobs
boolean
آیا احتمال لگاریتمی (log probabilities) توکن‌های خروجی برگردانده شود یا خیر. اگر True باشد، احتمال لگاریتمی هر توکن خروجی که در محتوای پیام برگردانده شده است را برمی‌گرداند.
top_logprobs
number
یک عدد صحیح بین 0 و 20 که تعداد محتمل‌ترین توکن‌ها را برای بازگشت در هر موقعیت توکن مشخص می‌کند، هر کدام با یک احتمال لگاریتمی مرتبط. اگر این پارامتر استفاده شود، logprobs باید روی True تنظیم شود.
logit_bias
object
احتمال ظاهر شدن توکن‌های مشخص شده در تکمیل را تغییر دهید. یک شیء JSON را می‌پذیرد که توکن‌ها (مشخص شده توسط شناسه توکن آن‌ها در توکن‌ساز) را به یک مقدار بایاس مرتبط از -100 تا 100 نگاشت می‌کند. از نظر ریاضی، بایاس به logits تولید شده توسط مدل قبل از نمونه‌برداری اضافه می‌شود. اثر دقیق در هر مدل متفاوت خواهد بود، اما مقادیر بین -1 و 1 باید احتمال انتخاب را کاهش یا افزایش دهند. مقادیری مانند -100 یا 100 باید منجر به ممنوعیت یا انتخاب انحصاری توکن مربوطه شوند.
frequency_penalty
number
عدد بین -2.0 و 2.0. مقادیر مثبت، توکن‌های جدید را بر اساس فراوانی موجود آن‌ها در متن تا کنون جریمه می‌کنند، و احتمال تکرار عین به عین همان خط توسط مدل را کاهش می‌دهند.
prediction
object
پیکربندی برای یک خروجی پیش‌بینی‌شده، که می‌تواند زمان پاسخ را در زمانی که بخش‌های بزرگی از پاسخ مدل از قبل مشخص هستند، بسیار بهبود بخشد.
presence_penalty
number
مقادیر مثبت، توکن‌های جدید را بر اساس اینکه آیا در متن تا کنون ظاهر شده‌اند جریمه می‌کنند، و احتمال صحبت کردن مدل در مورد موضوعات جدید را افزایش می‌دهند.
seed
integer
این ویژگی در نسخه بتا است. اگر مشخص شود، سیستم ما تمام تلاش خود را می‌کند تا به طور قطعی نمونه‌برداری کند، به طوری که درخواست‌های مکرر با همان seed و پارامترها باید نتیجه یکسانی را برگردانند.
min_p
number
عددی بین 0.001 و 0.999 که می‌تواند به عنوان جایگزینی برای top_p و top_k استفاده شود.
top_k
number
فقط از بین K گزینه برتر برای هر توکن بعدی نمونه‌برداری کنید. برای حذف پاسخ‌های با احتمال کم "long tail" استفاده می‌شود. فقط برای موارد استفاده پیشرفته توصیه می‌شود. معمولاً فقط باید از temperature استفاده کنید.
repetition_penalty
number
عددی که تنوع متن تولید شده را با کاهش احتمال تکرار دنباله‌های تکراری کنترل می‌کند. مقادیر بالاتر تکرار را کاهش می‌دهند.

نمونه کدهای درخواست

نکته مهم برای توسعه‌دهندگان:

برای احراز هویت، حتما کلید API خود را جایگزین YOUR_API_KEY کنید. هدر Authorization الزامی است.

import requests
import json  # for getting a structured output with indentation
response = requests.post(
    "https://api.ai-kar.com/v1/chat/completions",
    headers={
        # Insert your AI-KAR API Key instead of <YOUR_AI-KARAPI_KEY>:
        "Authorization":"Bearer <YOUR_AI-KARAPI_KEY>",
        "Content-Type":"application/json"
    },
    json={
        "model":"Qwen/Qwen2.5-Coder-32B-Instruct",
        "messages":[
            {
                "role":"user",
                "content":"Hello"  # insert your prompt here, instead of Hello
            }
        ]
    }
)
data = response.json()
print(json.dumps(data, indent=4))

نمونه پاسخ موفق (JSON)

RESPONSE (200 OK)
{
  "id": "text",
  "object": "text",
  "created": 1,
  "choices": [
    {
      "index": 1,
      "message": {
        "role": "text",
        "content": "text",
        "refusal": null,
        "annotations": [
          {
            "type": "text",
            "url_citation": {
              "end_index": 1,
              "start_index": 1,
              "title": "text",
              "url": "text"
            }
          }
        ],
        "audio": {
          "id": "text",
          "data": "text",
          "transcript": "text",
          "expires_at": 1
        },
        "tool_calls": [
          {
            "id": "text",
            "type": "text",
            "function": {
              "arguments": "text",
              "name": "text"
            }
          }
        ]
      },
      "finish_reason": "stop",
      "logprobs": {
        "content": [
          {
            "bytes": [
              1
            ],
            "logprob": 1,
            "token": "text",
            "top_logprobs": [
              {
                "bytes": [
                  1
                ],
                "logprob": 1,
                "token": "text"
              }
            ]
          }
        ],
        "refusal": []
      }
    }
  ],
  "model": "text",
  "usage": {
    "prompt_tokens": 1,
    "completion_tokens": 1,
    "total_tokens": 1,
    "completion_tokens_details": {
      "accepted_prediction_tokens": 1,
      "audio_tokens": 1,
      "reasoning_tokens": 1,
      "rejected_prediction_tokens": 1
    },
    "prompt_tokens_details": {
      "audio_tokens": 1,
      "cached_tokens": 1
    }
  }
}