برنامه نویسی

راهنمای شروع کننده: راهنمای پایان به پایان برای ساختمان با LLMS در Sagemaker

به راهنمای مبتدیان خوش آمدید: راهنمای پایان به پایان برای ساختمان با LLMS در Sagemaker! این راهنما برای توسعه دهندگان تازه با AWS ، Sagemaker یا AI تولیدی ساخته شده است. در این قدم به قدم ، شما یاد می گیرید که چگونه محیط AWS خود را تنظیم کنید ، اجزای کلیدی Sagemaker را درک کنید و با مدل های بزرگ زبان (LLM) در محیط ایجاد کنید و در عین حال اطمینان حاصل کنید که دانش و اعتماد به نفس عملی را به دست می آورید پروژه های هوش مصنوعی خود را شروع کنید.

پیش نیازهای

  • دانش فنی اساسی: شما باید درک بنیادی از پایتون ، محاسبات ابری و اصول اولیه هوش مصنوعی داشته باشید.
  • تنظیم حساب AWS: اطمینان حاصل کنید که یک حساب AWS فعال دارید. اگر هنوز یکی از آنها را تنظیم نکرده اید ، لطفاً این ویدیو را برای یک راهنمای گام به گام در مورد ایجاد و فعال سازی حساب AWS خود تماشا کنید.

تنظیم محیط AWS خود

قبل از شروع استفاده از Amazon Sagemaker ، داشتن یک محیط AWS به خوبی پیکربندی ، ایمن و سازمان یافته ضروری است. در این بخش شما را از طریق دسترسی به کنسول مدیریت AWS ، پیدا کردن Sagemaker و درک بهترین شیوه ها برای تنظیم محیط شما راهنمایی می کند.
پیمایش کنسول AWS
این دستورالعمل های گام به گام را برای دسترسی به کنسول مدیریت AWS و یافتن سرویس Sagemaker دنبال کنید:
به کنسول مدیریت AWS دسترسی پیدا کنید:

  • مرحله 1: مرورگر وب خود را باز کرده و به کنسول مدیریت AWS در https://aws.amazon.com/console/ بروید.
  • مرحله 2: با استفاده از اعتبار حساب AWS خود وارد شوید. اگر حساب کاربری ندارید ، به راهنمای تنظیم حساب AWS که قبلاً ارائه شده است مراجعه کنید. کنسول AWS رابط کاربری است که یک مرور کلی و دسترسی به خدمات وب آمازون (AWS) را ارائه می دهد. رابط شبیه به این است:

کنسول مدیریت AWS

خدمات AWS را پیدا کنید

  • مرحله 3: پس از ورود به سیستم ، صفحه اصلی کنسول مدیریت AWS را مشاهده خواهید کرد ، که یک شبکه یا لیست خدمات AWS را نشان می دهد.
  • مرحله 4: در نوار جستجوی برتر ، “Sagemaker” را تایپ کنید. همانطور که تایپ می کنید ، کنسول خدمات مربوط به جستجوی شما را فیلتر می کند.
  • مرحله 5: از نتایج جستجو ، ممکن است چندین سرویس مربوط به Sagemaker را مشاهده کنید (به عنوان مثال ، “Amazon Sagemaker” و “Amazon Sagemaker Studio”). برای دسترسی به صفحه اختصاصی سرویس ، روی “Amazon Sagemaker” کلیک کنید.
  • مرحله 6: شما اکنون در کنسول Sagemaker هستید ، جایی که می توانید تنظیم دامنه خود ، ایجاد نوت بوک و پیکربندی منابع دیگر را شروع کنید.

یادداشت: از تاریخ 3 دسامبر 2024 ، Amazon Sagemaker با تمرکز بر ساخت ، آموزش و استقرار مدل های یادگیری ماشین ، به Amazon Sagemaker AI تغییر نام داد و نسل بعدی Amazon Sagemaker با داده ها ، تجزیه و تحلیل ها و قابلیت های هوش مصنوعی به یک بستر یکپارچه تبدیل شده است.

Amazon Sagemaker UI راه اندازی می کند

بهترین شیوه های محیط

تنظیم محیط AWS به طور ایمن و به روش سازمان یافته به دلایل مختلف بسیار مهم است:

  • IAM نقش ها و مجوزها: قانون حداقل امتیازات را اعمال کنید. برای کاهش آسیب پذیری از نقش های مختلف هنگام کار بر روی کارهای مختلف استفاده کنید.
  • احراز هویت چند عاملی: MFA را برای یک لایه اضافی از امنیت ورود به سیستم فعال کنید.
  • مدیریت اعتبار: از ذخیره داده های حساس مانند کلیدهای دسترسی مستقیم ، استفاده از مدیر اسرار AWS یا استفاده از متغیرهای محیط خودداری کنید.
  • نامگذاری کنوانسیون ها: از نامگذاری مداوم برای شناسایی و مدیریت منابع استفاده کنید.
  • برچسب زدن منابع: منابع را می توان با استفاده از پروژه ، محیط زیست یا مرکز هزینه برای ساده کردن ردیابی و گروه بندی برچسب گذاری کرد.
  • جداسازی محیط: از حساب های AWS جداگانه یا VPC برای پروژه ها یا مراحل مختلف برای جلوگیری از دسترسی متقابل استفاده کنید.
  • مدیریت هزینه: هشدارهای صورتحساب را تنظیم کرده و استفاده از ابزارهایی مانند AWS Cost Explorer را کنترل کنید.
  • مستند سازی: برای اطمینان از قوام و کارآیی ، رویه های خود را مستند کنید.

پیکربندی Sagemaker Amazon

در این بخش ، ما پیکربندی Amazon Sagemaker را برای داشتن یک محیط امن و ساختار یافته و آماده برای پروژه های LLM خود داریم. ما تنظیم یک دامنه استودیویی یکپارچه ، دسترسی به مدل های بستر آمازون ، راه اندازی یک ابر خصوصی مجازی (VPC) و بررسی برخی از تنظیمات اضافی را پوشش خواهیم داد. برای ادامه بر روی “ایجاد یک دامنه استودیوی متحد” کلیک کنید.

ایجاد یک دامنه استودیویی متحد

برای شروع کار با توسعه در Amazon Sagemaker ، باید یک دامنه استودیویی متحد ایجاد کنیم. از این دامنه به عنوان یک کانتینر/گردش کار متمرکز برای سازماندهی و مدیریت کاربران ، پروژه ها و منابع فکر کنید. دامنه تنظیمات ، تنظیمات و مجوزهای مختلف را مدیریت می کند.

ایجاد یک UI دامنه استودیویی متحد

ابتدا می توانید تصمیم بگیرید که یک تنظیم سریع یا دستی را دنبال کنید. من توصیه می کنم تنظیم سریع را انتخاب کنید زیرا به حداقل پیکربندی نیاز دارد و برای اهداف اکتشاف بهترین است. سر بعدی به پایین 'تنظیمات تنظیم سریعبرای پیکربندی دامنه ما. مراحل کلیدی برای تنظیم دامنه شامل موارد زیر است:

  • ایجاد دامنه: یک دامنه با نام سفارشی ایجاد کنید یا از پیش فرض استفاده کنید (domain-MM-DD-YYYY-HHMMSS تولید شده در پرتاب). این نام دائمی است و برای شناسایی فضای کاری استفاده می شود.
  • نقش اعدام دامنه: این نقش Sagemaker Studio را قادر می سازد تا از طرف شما در خدمات مختلف AWS عملیاتی را انجام دهد.
  • نقش خدمات دامنه: این نقش توسط خدمات پس زمینه در Sagemaker برای عملکرد صحیح استفاده می شود.
  • رمزهای: به طور پیش فرض ، داده های شما به طور خودکار رمزگذاری می شوند اما اگر کنترل بیشتری را ترجیح می دهید ، می توانید از طریق سرویس مدیریت کلید AWS (KMS) به استفاده از کلید رمزگذاری خود خود بپردازید.

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

دسترسی به بستر آمازون

در مرحله بعد ، ما باید به آمازون Bedrock دسترسی پیدا کنیم – خدماتی که مدلهای بنیادی تولید AI کاملاً مدیریت شده را ارائه می دهد. ما از این اتصالات برای مورد استفاده LLM استفاده خواهیم کرد. نحوه اعطای دسترسی شامل.

  • شروع روند کار: در تنظیم دامنه Sagemaker خود ، به دنبال گزینه “دسترسی به” به مدل های Bedrock Amazon باشید.
  • مدل ها را فعال کنید: از شما خواسته می شود بسته به مورد استفاده خود ، “همه مدل ها را فعال کنید” یا مدل های خاص را انتخاب کنید.
  • مراحل خاص ارائه دهنده: برخی از ارائه دهندگان مدل (به عنوان مثال ، انسان شناسی) ممکن است اطلاعات بیشتری را در مورد مورد استفاده در نظر گرفته شده شما درخواست کنند. دستورالعمل های ارائه شده روی صفحه را دنبال کنید.
  • تأیید: پس از اعطای دسترسی ، تأیید کنید که مدل ها فعال شده و در تنظیمات دامنه Sagemaker شما ظاهر می شوند ، همانطور که در زیر مشاهده می شود.

دسترسی به مدل های بستر آمازون

پیکربندی VPC

یک ابر خصوصی مجازی (VPC) بخش جدا شده خود شما از ابر AWS است. این امکان را به شما می دهد تا منابع AWS را در یک شبکه مجازی که تعریف می کنید ، راه اندازی کنید و از امنیت پیشرفته و اتصال کنترل شده اطمینان حاصل کنید. این جداسازی ضروری است زیرا مدل های پایه ای را که توسط آمازون بستر جدا شده از داده های ما جدا شده است ، نگه می دارد.

انتخاب یا ایجاد VPC

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

درک زیر شبکه ها

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

تنظیمات اضافی

گذشته از این تنظیمات اصلی ، محیط شما پیکربندی زیر را برای ادغام محیط شما خواهد داشت:

  • نقش ارائه دهنده: برای تأمین و مدیریت منابع (مانند سطل S3 برای پروژه ها) استفاده می شود.
  • نقش دسترسی را مدیریت کنید: مجوزها را برای مدیریت دسترسی به داده ها و پروژه های مشترک در سازمان خود کمک می کند.
  • سطل آمازون S3: Sagemaker برای ذخیره پروژه داده ها و مصنوعات به یک سطل S3 نیاز دارد. این سیستم یا از یک سطل پیش فرض استفاده می کند یا در صورت لزوم یک دستگاه جدید ایجاد می کند.
  • VPC و زیر شبکه: همانطور که بحث شد ، VPC و حداقل سه زیر شبکه را در مناطق مختلف در دسترس بودن انتخاب کنید ، اما اگر VPC ایجاد کنید ، به طور خودکار زیر شبکه های مربوطه را ایجاد می کند.

VPC و زیر شبکه ها

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

ما آماده ایجاد دامنه خود هستیم. بعد استودیوی متحد را بارگذاری کنید و خود را با رابط آشنا کنید.

یادداشت: هنگامی که نمونه استودیوی Sagemaker را راه اندازی می کنید ، در اصل یک نمونه EC2 در پشت صحنه می چرخد ​​تا محیط نوت بوک Jupyter را اجرا کند. Sagemaker نمونه EC2 را برای شما مدیریت می کند و مقررات و مقیاس بندی زیرساخت های اساسی را بر اساس نیازهای پروژه شما انجام می دهد. همچنین بهترین روشها برای خاتمه (حذف) نمونه EC2 پس از اتمام پروژه و نمونه دیگر برای جلوگیری از هزینه های غیر ضروری و اطمینان از مدیریت مناسب منابع لازم نیست.

ساختن برنامه LLM خود

در این بخش یک برنامه LLM با استفاده از یک نوت بوک JupyterLab در Sagemaker تهیه می شود. ما یک خط لوله بازیابی ساده و ساده و ساده (RAG) با Llamaindex ایجاد خواهیم کرد. خط لوله RAG پایه دانش اضافی خود را به طور خاص از نمونه ای از مستندات AWS در مورد برنامه های AI شریک زندگی Sagemaker منبع می دهد. سپس ما سند را به تعبیه تبدیل می کنیم ، محتوا را در یک فروشگاه بردار فهرست می کنیم و با استفاده از مدل های بستر متصل از طریق Llamaindex ، نمایش داده ها را اجرا می کنیم.

یک خط لوله پارچه ای ساده

نمونه توسعه

ایجاد یک پروژه جدید:

  • با استودیوی Sagemaker که قبلاً باز شده است ، روی برگه پروژه ها کلیک کنید.
  • روی ایجاد پروژه جدید کلیک کنید.
  • یک نام پروژه (به عنوان مثال ، ساده و ساده) و توضیحی برای پروژه وارد کنید.
  • برای جابجایی صفحه سفارشی سازی پارامترهای Blueprint ، روی ادامه کلیک کنید.
  • برای پاسخگویی به نیازهای توسعه و عملیاتی خاص خود ، پارامترهای طرح فقط پیکربندی اساسی هستند – مانند محدودیت های ذخیره سازی ، حفظ ورود به سیستم و تنظیمات ادغام. ما می توانیم پیش برویم و از پارامترهای پیش فرض استفاده کنیم.
  • انتخاب ها را مرور کنید ، روی “ایجاد پروژه” کلیک کنید و منتظر بمانید تا محیط پروژه خود اولیه شود.
  • در پروژه جدید خود می توانید با getting_started.ipynb و یک نمونه نوت بوک را از طریق JupyterLab در برگه ساخت انتخاب کنید.
  • برای اهداف اکتشاف ، این نمونه نوت بوک به شما امکان می دهد تا خط لوله خود را به صورت مکرر بسازید و آزمایش کنید.

توسعه برنامه

محیط نمونه JupyterLab در حال حاضر با برخی از بسته های پیش نصب شده همراه است ، می توانید از این دستور استفاده کنید pip list در ترمینال برای دیدن این بسته ها. یک بسته مهم از پیش نصب شده این است boto3، که کیت توسعه نرم افزار AWS Python (SDK) برای کمک به تعامل با خدمات AWS مانند اتصال به سطل S3 است.

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

pip install llama-index llama-index-llms-bedrock llama-index-embeddings-bedrock llama-index-readers-web

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

** Llamaindex ** یک چارچوب منبع باز برای ارکستر داده های مورد نیاز برای تقویت زمینه در ساخت برنامه های LLM است. این در Python و TypeScript عرضه می شود و از اتصالات مدل Bedrock Amazon خود برای ساختن برنامه RAG ساده و ساده لوحانه ما و همچنین استفاده از یک صفحه وب به عنوان پایگاه دانش خارجی ما استفاده خواهد کرد. بیایید ماژول های مربوطه را وارد کنیم.

import logging
import sys
from IPython.display import Markdown, display
import os

import boto3
from llama_index.readers.web import SimpleWebPageReader
from llama_index.core import VectorStoreIndex
from llama_index.core.settings import Settings
from llama_index.core.node_parser import SentenceSplitter

from llama_index.llms.bedrock import Bedrock
from llama_index.embeddings.bedrock import BedrockEmbedding

logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در مرحله بعد ، ما باید اعتبار AWS را برای تأیید اعتبار ، مجوز ، امنیت و انجمن حساب مشخص کنیم. برای به دست آوردن یک کلید دسترسی AWS ، به کنسول مدیریت AWS خود بروید ، روی خود کلیک کنید نام نمایه، انتخاب کنید اعتبارنامه امنیتی، به بخش Access Keys بروید ، کلیک کنید کلید دسترسی جدید ایجاد کنید، سپس کلیک کنید نشان دادن کلید دسترسی برای آشکار کردن آن ، و در نهایت ذخیره و بارگیری کلید.

AWS کلید دسترسی را ایجاد کنید

در مرحله بعد ، ما آن اعتبارنامه ها را به شرح زیر مشخص خواهیم کرد:

aws_access_key_id="AWS Access Key ID to use"
aws_secret_access_key="AWS Secret Access Key to use"
region_name="AWS Region to use, eg. us-east-1"
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بعد ، ما از متا استفاده خواهیم کرد llama3-70B مدل برای مدل تعبیه متن Titan-embed-titan و آمازون. همچنین ، ما از یک تقسیم کننده جمله برای استراتژی متن متن استفاده خواهیم کرد. این مدل ها و استراتژی های متن متن را می توان به شرح زیر مشخص کرد و در پیکربندی تنظیمات Llamaindex ذخیره شد:

llm = Bedrock(model="meta.llama3-70b-instruct-v1:0", 
              context_size=8200,
              aws_access_key_id=aws_access_key_id,
              aws_secret_access_key=aws_secret_access_key,
              region_name=region_name)

embed_model = BedrockEmbedding(model_name="amazon.titan-embed-text-v1",
                               aws_access_key_id=aws_access_key_id,
                               aws_secret_access_key=aws_secret_access_key,
                               region_name=region_name)

# Configure global settings
Settings.text_splitter = SentenceSplitter(chunk_size=1024, chunk_overlap=10)
Settings.llm = llm
Settings.embed_model = embed_model
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

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

# Load HTML web page as a document
document = SimpleWebPageReader(html_to_text=True).load_data(['https://docs.aws.amazon.com/sagemaker/latest/dg/partner-apps.html'])

# Indexing document using vector store
index = VectorStoreIndex.from_documents(document, show_progress=True)

query_engine = index.as_query_engine()
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بیایید برخی از سؤالات را به شرح زیر پردازش کنیم:

response = query_engine.query("What is the AWS AI partnership about?")
display(Markdown(f"{response}"))

response = query_engine.query("What is DeepChecks offering in the partnership?")
display(Markdown(f"{response}"))
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

خروجی خط لوله RAG

یادداشت های نهایی

این راهنما نحوه راه اندازی یک محیط امن و سازمان یافته AWS ، پیکربندی Sagemaker Amazon را با یک دامنه استودیویی یکپارچه نشان می دهد و خدمات مانند Amazon Bedrock را برای دسترسی به مدل های AI تولیدی ادغام می کند. با تکیه بر این تنظیم قوی AWS ، راهنما نحوه تهیه یک برنامه ساده RAG را با استفاده از ابزارهای منبع باز مانند Llamaindex نشان می دهد.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا