Text Models (LLM)mistral-ai

معرفی و مستندات مدل هوش مصنوعی mistral-7b-instruct

مستندات مدل mistral-7b-instruct ارائه شده توسط ای ای کار (AI-KAR)

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

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

این مدل از زبان فارسی به صورت متوسط پشتیبانی می‌کند. درک نسبی از دستورات فارسی دارد اما ممکن است در تولید متون پیچیده و ظریف فارسی دچار مشکل شود.

مدل mistral-7b-instruct یک نسخه پیشرفته از مدل Mistral-7B است که به طور خاص برای وظایف مبتنی بر دستورالعمل، fine-tune شده است. این مدل به منظور بهبود قابلیت‌های تولید و درک زبان طراحی شده است. این مدل می‌تواند در زمینه‌های مختلفی از جمله پاسخ به سوالات، تولید متن خلاقانه، ترجمه زبان، خلاصه سازی متون و تولید کد مورد استفاده قرار گیرد. مدل mistral-7b-instruct با استفاده از مجموعه داده‌های گسترده‌ای از دستورالعمل‌ها و متون آموزشی، توانایی درک و پیروی از دستورالعمل‌های پیچیده را به دست آورده است. این مدل قادر است با دقت بالایی به سوالات پاسخ دهد و متونی را تولید کند که از نظر گرامری صحیح، روان و مرتبط با موضوع باشند. یکی از ویژگی‌های برجسته این مدل، توانایی آن در تولید متن خلاقانه است. مدل mistral-7b-instruct می‌تواند داستان‌ها، شعرها و سایر انواع متون خلاقانه را با سبک‌ها و لحن‌های مختلف تولید کند. این مدل همچنین می‌تواند در ترجمه زبان مورد استفاده قرار گیرد. مدل mistral-7b-instruct قادر است متون را از یک زبان به زبان دیگر با دقت بالایی ترجمه کند. این مدل می‌تواند در خلاصه سازی متون نیز مورد استفاده قرار گیرد. مدل mistral-7b-instruct قادر است متون طولانی را به خلاصه‌های کوتاه و دقیقی تبدیل کند. این مدل همچنین می‌تواند در تولید کد مورد استفاده قرار گیرد. مدل mistral-7b-instruct قادر است کد را در زبان‌های برنامه نویسی مختلف تولید کند. برای استفاده از این مدل، ابتدا باید یک حساب کاربری در وب‌سایت ای آی کار (AI-KAR) ایجاد کنید. پس از ایجاد حساب کاربری، باید یک کلید API تولید کنید. سپس می‌توانید از طریق API به مدل دسترسی پیدا کنید. برای این کار، باید یک درخواست HTTP POST به آدرس `https://api.ai-kar.com/v1/chat/completions` ارسال کنید. درخواست باید شامل یک بدنه JSON باشد که حاوی پارامترهای مورد نظر شما است. پارامترهای مورد نیاز عبارتند از `model` و `messages`. پارامتر `model` باید نام مدل مورد نظر شما را مشخص کند. پارامتر `messages` باید لیستی از پیام‌ها باشد که می‌خواهید به مدل ارسال کنید. هر پیام باید شامل یک نقش (`role`) و یک محتوا (`content`) باشد. نقش می‌تواند `user` یا `assistant` باشد. محتوا باید متن پیام باشد. پس از ارسال درخواست، مدل یک پاسخ JSON را برمی‌گرداند که حاوی پاسخ مدل به پیام شما است. پاسخ شامل یک شناسه (`id`)، یک شیء (`object`)، یک زمان ایجاد (`created`)، یک لیست از انتخاب‌ها (`choices`)، نام مدل (`model`) و اطلاعات مربوط به مصرف توکن (`usage`) است. هر انتخاب شامل یک شاخص (`index`)، یک دلیل پایان (`finish_reason`)، احتمالات لگاریتمی (`logprobs`) و یک پیام (`message`) است. پیام شامل یک نقش (`role`) و یک محتوا (`content`) است. محتوا شامل پاسخ مدل به پیام شما است.

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

پارامترنوعتوضیحات و مقادیر
model
stringRequired
مدل مورد استفاده برای تولید پاسخ. مقادیر مجاز: mistralai/Mistral-7B-Instruct-v0.1, mistralai/Mistral-7B-Instruct-v0.2, mistralai/Mistral-7B-Instruct-v0.3
مقادیر مجاز (کلیک برای کپی):
messages
arrayRequired
لیستی از پیام‌ها که مکالمه را تا به اینجا تشکیل می‌دهند. بسته به مدلی که استفاده می‌کنید، انواع مختلف پیام (modalities) مانند متن، اسناد (txt, pdf)، تصاویر و صدا پشتیبانی می‌شوند.
max_tokens
number
حداکثر تعداد توکن‌هایی که می‌توانند در تکمیل چت تولید شوند. این مقدار می‌تواند برای کنترل هزینه‌های متن تولید شده از طریق API استفاده شود.
stream
boolean
اگر روی True تنظیم شود، داده‌های پاسخ مدل به صورت جریانی (stream) و با استفاده از رویدادهای ارسال شده توسط سرور (server-sent events) به کلاینت ارسال می‌شوند.
stream_options
object
تنظیمات مربوط به استریم کردن پاسخ.
response_format
object
شیئی که فرمت خروجی مدل را مشخص می‌کند.
echo
boolean
اگر True باشد، پاسخ شامل prompt خواهد بود. می‌تواند با logprobs برای برگرداندن logprobs مربوط به prompt استفاده شود.
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
حداکثر 4 دنباله (sequence) که API تولید توکن‌های بیشتر را متوقف می‌کند. متن برگشتی شامل دنباله توقف نخواهد بود.
logprobs
boolean
اینکه آیا احتمالات لگاریتمی (log probabilities) توکن‌های خروجی برگردانده شوند یا خیر. اگر True باشد، احتمالات لگاریتمی هر توکن خروجی که در محتوای پیام برگردانده شده است را برمی‌گرداند.
top_logprobs
number
یک عدد صحیح بین 0 و 20 که تعداد محتمل‌ترین توکن‌ها را برای بازگشت در هر موقعیت توکن مشخص می‌کند، که هر کدام دارای یک احتمال لگاریتمی مرتبط هستند. اگر این پارامتر استفاده شود، logprobs باید روی True تنظیم شود.
logit_bias
object
احتمال ظاهر شدن توکن‌های مشخص شده در تکمیل را تغییر می‌دهد. یک شیء JSON را می‌پذیرد که توکن‌ها (مشخص شده توسط شناسه توکن آنها در tokenizer) را به یک مقدار بایاس (bias) مرتبط از -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":"mistralai/Mistral-7B-Instruct-v0.3",
        "messages":[
            {
                "role":"user",
                "content":"Hello"  # insert your prompt here, instead of Hello
            }
        ]
    }
)
data = response.json()
print(json.dumps(data, indent=2, ensure_ascii=False))

نمونه پاسخ موفق (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
    }
  }
}