Code Llama 70B اکنون در Amazon SageMaker JumpStart | در دسترس است خدمات وب آمازون

Code Llama 70B اکنون در Amazon SageMaker JumpStart | در دسترس است خدمات وب آمازون

امروز، ما مشتاقیم اعلام کنیم که مدل‌های بنیاد Code Llama که توسط متا توسعه یافته است، از طریق Amazon SageMaker JumpStart برای استقرار با یک کلیک برای اجرای استنتاج. Code Llama یک مدل زبان بزرگ پیشرفته (LLM) است که قادر به تولید کد و زبان طبیعی در مورد کد از هر دو درخواست کد و زبان طبیعی است. می‌توانید این مدل را با SageMaker JumpStart امتحان کنید، یک مرکز یادگیری ماشین (ML) که دسترسی به الگوریتم‌ها، مدل‌ها و راه‌حل‌های ML را فراهم می‌کند تا بتوانید به سرعت با ML شروع کنید. در این پست، نحوه کشف و استقرار مدل Code Llama از طریق SageMaker JumpStart را بررسی می کنیم.

کد لاما

Code Llama مدلی است که توسط متا که بر روی Llama 2 ساخته شده است. این مدل پیشرفته برای بهبود بهره وری برای وظایف برنامه نویسی برای توسعه دهندگان با کمک به آنها در ایجاد کد با کیفیت بالا و مستند طراحی شده است. این مدل ها در Python، C++، Java، PHP، C#، TypeScript و Bash برتری دارند و این پتانسیل را دارند که در زمان توسعه دهندگان صرفه جویی کنند و گردش کار نرم افزار را کارآمدتر کنند.

این در سه نوع ارائه می شود که برای پوشش طیف گسترده ای از کاربردها مهندسی شده است: مدل پایه (Code Llama)، یک مدل تخصصی پایتون (Code Llama Python)، و یک مدل مطابق دستورالعمل برای درک دستورالعمل های زبان طبیعی (Code Llama Instruct). همه انواع Code Llama در چهار اندازه ارائه می شوند: پارامترهای 7B، 13B، 34B و 70B. انواع پایه و دستورالعمل 7B و 13B از پر کردن بر اساس محتوای اطراف پشتیبانی می کنند و آنها را برای برنامه های دستیار کد ایده آل می کند. این مدل‌ها با استفاده از Llama 2 به عنوان پایه طراحی شدند و سپس بر روی 500 میلیارد توکن داده‌های کد آموزش دیدند، با نسخه تخصصی پایتون که با افزایش 100 میلیارد توکن آموزش داده شد. مدل‌های Code Llama نسل‌های پایداری را با حداکثر 100,000 توکن زمینه ارائه می‌کنند. همه مدل‌ها بر روی دنباله‌های 16,000 توکن آموزش داده شده‌اند و بهبودهایی را در ورودی‌ها با حداکثر 100,000 توکن نشان می‌دهند.

مدل تحت همین موجود در دسترس است مجوز انجمن به عنوان Llama 2.

مدل های پایه در SageMaker

SageMaker JumpStart دسترسی به طیف وسیعی از مدل‌ها از هاب‌های مدل محبوب، از جمله Hugging Face، PyTorch Hub، و TensorFlow Hub را فراهم می‌کند، که می‌توانید در گردش کار توسعه ML خود در SageMaker استفاده کنید. پیشرفت‌های اخیر در ML منجر به پیدایش دسته جدیدی از مدل‌ها شده است که به آن‌ها می‌گویند مدل های پایه، که معمولاً بر روی میلیاردها پارامتر آموزش داده می شوند و با دسته بندی گسترده ای از موارد استفاده مانند خلاصه سازی متن، تولید هنر دیجیتال و ترجمه زبان سازگار هستند. از آنجایی که آموزش این مدل‌ها گران است، مشتریان می‌خواهند به جای آموزش این مدل‌ها، از مدل‌های پایه از پیش آموزش‌دیده موجود استفاده کنند و در صورت نیاز آن‌ها را تنظیم کنند. SageMaker لیستی از مدل‌هایی را ارائه می‌کند که می‌توانید از میان آنها در کنسول SageMaker انتخاب کنید.

می‌توانید مدل‌های پایه را از ارائه‌دهندگان مدل‌های مختلف در SageMaker JumpStart بیابید، که به شما امکان می‌دهد به سرعت با مدل‌های پایه شروع کنید. می توانید مدل های پایه را بر اساس وظایف مختلف یا ارائه دهندگان مدل پیدا کنید و به راحتی ویژگی های مدل و شرایط استفاده را بررسی کنید. همچنین می توانید این مدل ها را با استفاده از ویجت UI آزمایشی امتحان کنید. هنگامی که می خواهید از یک مدل پایه در مقیاس استفاده کنید، می توانید این کار را بدون ترک SageMaker با استفاده از نوت بوک های از پیش ساخته شده از ارائه دهندگان مدل انجام دهید. از آنجایی که مدل‌ها بر روی AWS میزبانی و مستقر می‌شوند، می‌توانید مطمئن باشید که داده‌های شما، چه برای ارزیابی یا استفاده از مدل در مقیاس استفاده شود، هرگز با اشخاص ثالث به اشتراک گذاشته نمی‌شود.

مدل Code Llama را در SageMaker JumpStart کشف کنید

برای استقرار مدل Code Llama 70B، مراحل زیر را انجام دهید Amazon SageMaker Studio:

  1. در صفحه اصلی SageMaker Studio، را انتخاب کنید شروع به کار در صفحه ناوبری

    Code Llama 70B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

  2. مدل های Code Llama را جستجو کنید و مدل Code Llama 70B را از لیست مدل های نشان داده شده انتخاب کنید.

    Code Llama 70B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

    اطلاعات بیشتر در مورد مدل را می توانید در کارت مدل Code Llama 70B بیابید.

    Code Llama 70B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

    تصویر زیر تنظیمات نقطه پایانی را نشان می دهد. می توانید گزینه ها را تغییر دهید یا از گزینه های پیش فرض استفاده کنید.

  3. موافقتنامه مجوز کاربر نهایی (EULA) را بپذیرید و انتخاب کنید گسترش.
    Code Llama 70B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

    همانطور که در تصویر زیر نشان داده شده است، فرآیند استقرار نقطه پایانی آغاز می شود.

    Code Llama 70B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

مدل را با SageMaker Python SDK اجرا کنید

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

برای استقرار با استفاده از نوت بوک، با انتخاب یک مدل مناسب شروع می کنیم، مشخص شده توسط model_id. می توانید هر یک از مدل های انتخاب شده را با کد زیر در SageMaker مستقر کنید:

from sagemaker.jumpstart.model import JumpStartModel model = JumpStartModel(model_id="meta-textgeneration-llama-codellama-70b")
predictor = model.deploy(accept_eula=False) # Change EULA acceptance to True

این مدل را در SageMaker با تنظیمات پیش‌فرض، از جمله نوع نمونه پیش‌فرض و تنظیمات پیش‌فرض VPC، مستقر می‌کند. شما می توانید این تنظیمات را با تعیین مقادیر غیر پیش فرض در آن تغییر دهید JumpStartModel. توجه داشته باشید که به طور پیش فرض، accept_eula تنظیم شده است False. باید تنظیم کنید accept_eula=True برای استقرار نقطه پایانی با موفقیت با انجام این کار، موافقت نامه مجوز کاربر و خط مشی استفاده قابل قبول را همانطور که قبلا ذکر شد می پذیرید. شما همچنین می توانید دانلود قرارداد مجوز

یک نقطه پایانی SageMaker را فراخوانی کنید

پس از استقرار نقطه پایانی، می توانید با استفاده از Boto3 یا SageMaker Python SDK استنتاج انجام دهید. در کد زیر از SageMaker Python SDK برای فراخوانی مدل برای استنتاج و چاپ پاسخ استفاده می‌کنیم:

def print_response(payload, response): print(payload["inputs"]) print(f"> {response[0]['generated_text']}") print("n==================================n")

تابع print_response محموله ای متشکل از محموله و پاسخ مدل را می گیرد و خروجی را چاپ می کند. Code Llama هنگام انجام استنتاج از پارامترهای زیادی پشتیبانی می کند:

  • بیشترین طول – مدل تا زمانی که طول خروجی (که شامل طول متن ورودی است) برسد، متن تولید می کند max_length. اگر مشخص شود، باید یک عدد صحیح مثبت باشد.
  • max_new_tokens – مدل تا زمانی که طول خروجی (به استثنای طول زمینه ورودی) به آن برسد، متن تولید می کند max_new_tokens. اگر مشخص شود، باید یک عدد صحیح مثبت باشد.
  • num_beams – این تعداد پرتوهای مورد استفاده در جستجوی حریصانه را مشخص می کند. اگر مشخص شود، باید یک عدد صحیح بزرگتر یا مساوی باشد num_return_sequences.
  • no_repeat_ngram_size - مدل تضمین می کند که دنباله ای از کلمات no_repeat_ngram_size در توالی خروجی تکرار نمی شود. اگر مشخص شده باشد، باید یک عدد صحیح مثبت بزرگتر از 1 باشد.
  • درجه حرارت - این امر تصادفی بودن خروجی را کنترل می کند. بالاتر temperature منجر به یک دنباله خروجی با کلمات کم احتمال و کمتر می شود temperature منجر به یک دنباله خروجی با کلمات با احتمال بالا می شود. اگر temperature 0 است، منجر به رمزگشایی حریصانه می شود. اگر مشخص شود، باید شناور مثبت باشد.
  • زود_توقف - اگر True، تولید متن زمانی به پایان می رسد که همه فرضیه های پرتو به پایان نشانه جمله برسند. اگر مشخص شده باشد، باید Boolean باشد.
  • do_sample - اگر True، مدل کلمه بعدی را بر اساس احتمال نمونه برداری می کند. اگر مشخص شده باشد، باید Boolean باشد.
  • top_k – در هر مرحله از تولید متن، مدل فقط از متن نمونه برداری می کند top_k به احتمال زیاد کلمات اگر مشخص شود، باید یک عدد صحیح مثبت باشد.
  • top_p - در هر مرحله از تولید متن، مدل از کوچکترین مجموعه ممکن کلمات با احتمال تجمعی نمونه برداری می کند. top_p. اگر مشخص شده باشد، باید شناور بین 0 و 1 باشد.
  • بازگشت_متن_کامل - اگر True، متن ورودی بخشی از متن تولید شده خروجی خواهد بود. اگر مشخص شده باشد، باید Boolean باشد. مقدار پیش فرض برای آن است False.
  • متوقف کردن – اگر مشخص شده باشد، باید فهرستی از رشته ها باشد. اگر هر یک از رشته های مشخص شده تولید شود، تولید متن متوقف می شود.

شما می توانید هر زیر مجموعه ای از این پارامترها را هنگام فراخوانی یک نقطه پایانی مشخص کنید. در مرحله بعد، نمونه ای از نحوه فراخوانی یک نقطه پایانی با این آرگومان ها را نشان می دهیم.

تکمیل کد

مثال‌های زیر نحوه تکمیل کد را نشان می‌دهند که در آن پاسخ نقطه پایانی مورد انتظار ادامه طبیعی دستور است.

ابتدا کد زیر را اجرا می کنیم:

prompt = """
import socket def ping_exponential_backoff(host: str): """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

خروجی زیر را دریافت می کنیم:

""" Pings the given host with exponential backoff. """ timeout = 1 while True: try: socket.create_connection((host, 80), timeout=timeout) return except socket.error: timeout *= 2

برای مثال بعدی ما کد زیر را اجرا می کنیم:

prompt = """
import argparse
def main(string: str): print(string) print(string[::-1])
if __name__ == "__main__": """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
predictor.predict(payload)

خروجی زیر را دریافت می کنیم:

parser = argparse.ArgumentParser(description='Reverse a string') parser.add_argument('string', type=str, help='String to reverse') args = parser.parse_args() main(args.string)

تولید کد

مثال‌های زیر تولید کد پایتون را با استفاده از Code Llama نشان می‌دهند.

ابتدا کد زیر را اجرا می کنیم:

prompt = """
Write a python function to traverse a list in reverse. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

خروجی زیر را دریافت می کنیم:

def reverse(list1): for i in range(len(list1)-1,-1,-1): print(list1[i]) list1 = [1,2,3,4,5]
reverse(list1)

برای مثال بعدی ما کد زیر را اجرا می کنیم:

prompt = """
Write a python function to to carry out bubble sort. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.1, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

خروجی زیر را دریافت می کنیم:

def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))

اینها نمونه هایی از کارهای مرتبط با کد با استفاده از Code Llama 70B هستند. می توانید از مدل برای تولید کدهای پیچیده تر استفاده کنید. ما شما را تشویق می کنیم که آن را با استفاده از موارد و نمونه های استفاده مرتبط با کد خود امتحان کنید!

پاک کردن

پس از اینکه نقاط پایانی را آزمایش کردید، مطمئن شوید که نقاط پایانی استنتاج SageMaker و مدل را حذف کرده اید تا از تحمیل هزینه جلوگیری کنید. از کد زیر استفاده کنید:

predictor.delete_endpoint()

نتیجه

در این پست Code Llama 70B را در SageMaker JumpStart معرفی کردیم. Code Llama 70B یک مدل پیشرفته برای تولید کد از دستورات زبان طبیعی و همچنین کد است. می‌توانید مدل را با چند مرحله ساده در SageMaker JumpStart اجرا کنید و سپس از آن برای انجام کارهای مرتبط با کد مانند تولید کد و تکمیل کد استفاده کنید. به عنوان گام بعدی، سعی کنید از مدل با موارد استفاده و داده های مربوط به کد خود استفاده کنید.


درباره نویسندگان

Code Llama 70B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.دکتر کایل اولریش یک دانشمند کاربردی با تیم آمازون SageMaker JumpStart است. علایق تحقیقاتی او شامل الگوریتم های یادگیری ماشین مقیاس پذیر، بینایی کامپیوتر، سری های زمانی، ناپارامتریک های بیزی و فرآیندهای گاوسی است. دکترای او از دانشگاه دوک است و مقالاتی در NeurIPS، Cell و Neuron منتشر کرده است.

Code Llama 70B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.دکتر فاروق صابر یک معمار ارشد راه حل های متخصص هوش مصنوعی و یادگیری ماشین در AWS است. او دارای مدرک دکتری و کارشناسی ارشد در مهندسی برق از دانشگاه تگزاس در آستین و کارشناسی ارشد در علوم کامپیوتر از موسسه فناوری جورجیا است. او بیش از 15 سال سابقه کار دارد و همچنین دوست دارد به دانشجویان کالج تدریس و راهنمایی کند. او در AWS به مشتریان کمک می کند تا مشکلات تجاری خود را در زمینه علم داده، یادگیری ماشین، بینایی کامپیوتر، هوش مصنوعی، بهینه سازی عددی و حوزه های مرتبط فرموله و حل کنند. او و خانواده اش که در دالاس، تگزاس مستقر هستند، عاشق سفر و رفتن به سفرهای جاده ای طولانی هستند.

Code Llama 70B is now available in Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.ژوئن برد یک مدیر محصول با SageMaker JumpStart است. او بر روی ساخت مدل های پایه به راحتی قابل کشف و استفاده برای کمک به مشتریان در ساخت برنامه های کاربردی هوش مصنوعی تمرکز دارد. تجربه او در آمازون همچنین شامل اپلیکیشن خرید موبایلی و تحویل آخرین مایل است.

تمبر زمان:

بیشتر از آموزش ماشین AWS