Text Models (LLM)meta

معرفی و مستندات مدل هوش مصنوعی llama-3-chat-hf

مستندات مربوط به مدل llama-3-chat-hf ارائه شده توسط متا، با پشتیبانی ای ای کار (AI-KAR).

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

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

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

مدل llama-3-chat-hf یک مدل زبان بزرگ (LLM) است که توسط متا توسعه داده شده و برای کاربردهای گفتگومحور بهینه شده است. این مدل بر اساس معماری ترانسفورمر ساخته شده و با استفاده از مجموعه داده‌های عظیمی از متن و کد آموزش داده شده است. هدف اصلی این مدل، ارائه پاسخ‌های دقیق، مرتبط و جذاب در مکالمات است. این مدل قادر است به سوالات پاسخ دهد، اطلاعات را خلاصه کند، متن‌های مختلف را تولید کند (مانند ایمیل، مقاله، کد و غیره)، و در وظایف مختلف خلاقانه به کاربران کمک کند. مدل llama-3-chat-hf در بسیاری از بنچمارک‌های صنعتی عملکرد بهتری نسبت به سایر مدل‌های متن‌باز دارد. این مدل به طور خاص برای درک و پاسخگویی به درخواست‌های پیچیده و چند مرحله‌ای طراحی شده است. یکی از ویژگی‌های برجسته این مدل، توانایی آن در حفظ انسجام و پیوستگی در طول مکالمات طولانی است. این مدل می‌تواند تاریخچه گفتگو را به خاطر بسپارد و پاسخ‌هایی ارائه دهد که با متن قبلی مرتبط باشند. علاوه بر این، مدل llama-3-chat-hf از قابلیت‌های استدلال و منطق قوی برخوردار است. این مدل می‌تواند مسائل را تحلیل کند، الگوها را شناسایی کند و بر اساس شواهد موجود، نتیجه‌گیری کند. این قابلیت‌ها به مدل اجازه می‌دهند تا در وظایفی مانند حل مسئله، برنامه‌ریزی و تصمیم‌گیری به کاربران کمک کند. مدل llama-3-chat-hf همچنین از قابلیت‌های تولید زبان طبیعی پیشرفته برخوردار است. این مدل می‌تواند متن‌هایی را تولید کند که از نظر گرامری صحیح، روان و طبیعی باشند. این قابلیت به مدل اجازه می‌دهد تا در وظایفی مانند نوشتن مقاله، تولید محتوا و ترجمه زبان به کاربران کمک کند. برای استفاده از این مدل، کاربران می‌توانند از طریق API ارائه شده توسط ای ای کار (AI-KAR) به آن دسترسی پیدا کنند. API این مدل امکان ارسال درخواست‌های مختلف و دریافت پاسخ‌های متناسب را فراهم می‌کند. کاربران می‌توانند پارامترهای مختلفی را برای کنترل رفتار مدل تنظیم کنند، مانند دمای نمونه‌برداری، حداکثر تعداد توکن‌ها و غیره. این مدل به طور مداوم در حال بهبود و توسعه است. متا به طور منظم نسخه‌های جدیدی از این مدل را با قابلیت‌های بیشتر و عملکرد بهتر منتشر می‌کند. ای ای کار (AI-KAR) نیز همواره در تلاش است تا آخرین نسخه‌های این مدل را در اختیار کاربران خود قرار دهد.

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

پارامترنوعتوضیحات و مقادیر
model
stringRequired
مدل مورد استفاده برای تولید پاسخ. مقدار این فیلد باید 'meta-llama/Llama-3-70b-chat-hf' باشد.
مقادیر مجاز (کلیک برای کپی):
messages
one of[]Required
لیستی از پیام‌ها که مکالمه را تا به اینجا تشکیل می‌دهند. بسته به مدلی که استفاده می‌کنید، انواع مختلفی از پیام‌ها (modalities) مانند متن، اسناد (txt, pdf)، تصاویر و صدا پشتیبانی می‌شوند.
max_tokens
number
حداکثر تعداد توکن‌هایی که می‌توان در تکمیل چت تولید کرد. این مقدار می‌تواند برای کنترل هزینه‌های متن تولید شده از طریق API استفاده شود.
stream
boolean
اگر روی True تنظیم شود، داده‌های پاسخ مدل به صورت جریانی (stream) به کلاینت ارسال می‌شوند، به این معنی که به محض تولید هر بخش از پاسخ، به کلاینت فرستاده می‌شود.
مقادیر مجاز (کلیک برای کپی):
stream_options
object
تنظیمات مربوط به استریم کردن پاسخ.
echo
boolean
اگر True باشد، پاسخ شامل پرامپت (prompt) نیز خواهد بود. می‌تواند با logprobs برای برگرداندن logprobs پرامپت استفاده شود.
مقادیر مجاز (کلیک برای کپی):
temperature
number
دمای نمونه‌برداری برای استفاده. مقادیر بالاتر مانند 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 دنباله (sequence) که API تولید توکن‌های بیشتر را متوقف می‌کند. متن برگشتی شامل دنباله توقف نخواهد بود.
logprobs
boolean
اینکه آیا احتمالات لگاریتمی (log probabilities) توکن‌های خروجی برگردانده شوند یا خیر. اگر True باشد، احتمالات لگاریتمی هر توکن خروجی را که در محتوای پیام برگردانده شده است، برمی‌گرداند.
مقادیر مجاز (کلیک برای کپی):
top_logprobs
number
یک عدد صحیح بین 0 و 20 که تعداد محتمل‌ترین توکن‌ها را برای بازگشت در هر موقعیت توکن مشخص می‌کند، که هر کدام دارای یک احتمال لگاریتمی مرتبط هستند. اگر این پارامتر استفاده شود، logprobs باید روی True تنظیم شود.
logit_bias
object
احتمال ظاهر شدن توکن‌های مشخص شده در تکمیل را تغییر می‌دهد. یک شی JSON را می‌پذیرد که توکن‌ها (مشخص شده توسط شناسه توکن آنها در tokenizer) را به یک مقدار بایاس مرتبط از -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 گزینه برتر برای هر توکن بعدی نمونه‌برداری کنید. برای حذف پاسخ‌های کم احتمال "دنباله بلند" استفاده می‌شود. فقط برای موارد استفاده پیشرفته توصیه می‌شود. معمولاً فقط باید از 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":"meta-llama/Llama-3-70b-chat-hf",
        "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
    }
  }
}