يسمح لك الجيل المعزز للاسترجاع (RAG) بتوفير نموذج لغة كبير (LLM) مع إمكانية الوصول إلى البيانات من مصادر المعرفة الخارجية مثل المستودعات وقواعد البيانات وواجهات برمجة التطبيقات دون الحاجة إلى ضبطها. عند استخدام الذكاء الاصطناعي التوليدي للإجابة على الأسئلة، يتيح RAG لـ LLMs الإجابة على الأسئلة بالمعلومات الأكثر صلة وحداثة والاستشهاد بمصادر بياناتهم بشكل اختياري للتحقق منها.
يستخدم حل RAG النموذجي لاسترجاع المعرفة من المستندات نموذج التضمينات لتحويل البيانات من مصادر البيانات إلى التضمينات وتخزين هذه التضمينات في قاعدة بيانات متجهة. عندما يطرح المستخدم سؤالاً، فإنه يبحث في قاعدة بيانات المتجهات ويسترجع المستندات الأكثر تشابهًا مع استعلام المستخدم. بعد ذلك، يقوم بدمج المستندات المستردة واستعلام المستخدم في موجه معزز يتم إرساله إلى LLM لإنشاء النص. هناك نموذجان في هذا التنفيذ: نموذج التضمين ونموذج LLM الذي يولد الاستجابة النهائية.
في هذا المنشور ، نوضح كيفية الاستخدام أمازون ساجميكر ستوديو لبناء حل للإجابة على أسئلة RAG.
استخدام دفاتر الملاحظات للإجابة على الأسئلة المستندة إلى RAG
يستلزم تنفيذ RAG عادةً تجربة نماذج التضمين المختلفة، وقواعد البيانات المتجهة، ونماذج إنشاء النص، والمطالبات، مع تصحيح أخطاء التعليمات البرمجية أيضًا حتى تحصل على نموذج أولي وظيفي. الأمازون SageMaker توفر أجهزة كمبيوتر Jupyter المحمولة المُدارة والمزودة بمثيلات وحدة معالجة الرسومات (GPU)، مما يتيح لك إجراء التجارب بسرعة خلال هذه المرحلة الأولية دون تشغيل بنية تحتية إضافية. هناك خياران لاستخدام دفاتر الملاحظات في SageMaker. الخيار الأول هو التشغيل السريع أجهزة الكمبيوتر المحمولة متاح من خلال SageMaker Studio. في SageMaker Studio، بيئة التطوير المتكاملة (IDE) المصممة خصيصًا لتعلم الآلة، يمكنك تشغيل دفاتر الملاحظات التي تعمل على أنواع مثيلات مختلفة وبتكوينات مختلفة، والتعاون مع الزملاء، والوصول إلى ميزات إضافية مصممة لهذا الغرض للتعلم الآلي (ML). الخيار الثاني هو استخدام مثيل دفتر SageMaker، وهو مثيل حساب ML مُدار بالكامل يقوم بتشغيل تطبيق Jupyter Notebook.
في هذا المنشور، نقدم حل RAG الذي يعمل على زيادة معرفة النموذج ببيانات إضافية من مصادر المعرفة الخارجية لتوفير استجابات أكثر دقة خاصة بالمجال المخصص. نحن نستخدم جهاز كمبيوتر محمولاً واحدًا من نوع SageMaker Studio يعمل على نظام ml.g5.2xlarge
مثيل (1 A10G GPU) و اللاما 2 7b دردشة hf، الإصدار الدقيق من Llama 2 7b، والذي تم تحسينه لحالات استخدام الحوار من Hugging Face Hub. نحن نستخدم منشورين على مدونة AWS Media & Entertainment كعينة للبيانات الخارجية، والتي نقوم بتحويلها إلى عمليات تضمين باستخدام ملف BAAI/bge-small-en-v1.5 التضمينات. نقوم بتخزين التضمينات فيها كوز الصنوبر، قاعدة بيانات قائمة على المتجهات توفر بحثًا عالي الأداء ومطابقة التشابه. نناقش أيضًا كيفية الانتقال من التجربة في دفتر الملاحظات إلى نشر النماذج الخاصة بك إلى نقاط نهاية SageMaker للاستدلال في الوقت الفعلي عند إكمال النموذج الأولي الخاص بك. يمكن استخدام نفس النهج مع نماذج مختلفة وقواعد بيانات المتجهات.
حل نظرة عامة
يوضح الرسم البياني التالي بنية الحل.
يتكون تنفيذ الحل من خطوتين عاليتي المستوى: تطوير الحل باستخدام دفاتر ملاحظات SageMaker Studio، ونشر النماذج للاستدلال.
قم بتطوير الحل باستخدام دفاتر ملاحظات SageMaker Studio
أكمل الخطوات التالية لبدء تطوير الحل:
- قم بتحميل نموذج الدردشة Llama-2 7b من Hugging Face Hub في دفتر الملاحظات.
- قم بإنشاء قالب موجه باستخدام لانجشين واستخدمه لإنشاء مطالبات لحالة الاستخدام الخاصة بك.
- بالنسبة للمطالبات من 1 إلى 2 أمثلة، أضف نصًا ثابتًا ذا صلة من المستندات الخارجية كسياق سريع وقم بتقييم ما إذا كانت جودة الاستجابات قد تحسنت.
- بافتراض أن الجودة تتحسن، قم بتنفيذ سير عمل الإجابة على سؤال RAG:
- اجمع المستندات الخارجية التي يمكن أن تساعد النموذج في الإجابة بشكل أفضل على الأسئلة في حالة الاستخدام الخاصة بك.
- قم بتحميل نموذج تضمينات BGE واستخدمه لإنشاء تضمينات لهذه المستندات.
- قم بتخزين هذه التضمينات في فهرس Pinecone.
- عندما يطرح المستخدم سؤالاً، قم بإجراء بحث تشابه في Pinecone وأضف المحتوى من المستندات الأكثر تشابهًا إلى سياق المطالبة.
انشر النماذج على SageMaker للاستدلال عليها على نطاق واسع
عندما تحقق أهداف الأداء الخاصة بك، يمكنك نشر النماذج في SageMaker لتستخدمها تطبيقات الذكاء الاصطناعي التوليدية:
- انشر نموذج الدردشة Llama-2 7b إلى نقطة نهاية SageMaker في الوقت الفعلي.
- انشر ملف BAAI/bge-small-en-v1.5 نموذج التضمين إلى نقطة نهاية SageMaker في الوقت الفعلي.
- استخدم النماذج المنشورة في سؤالك للإجابة على تطبيقات الذكاء الاصطناعي التوليدية.
في الأقسام التالية، نرشدك عبر خطوات تنفيذ هذا الحل في دفاتر ملاحظات SageMaker Studio.
المتطلبات الأساسية المسبقة
لاتباع الخطوات الواردة في هذا المنشور، يجب أن يكون لديك حساب AWS وحساب إدارة الهوية والوصول AWS دور (IAM) مع أذونات لإنشاء موارد الحل والوصول إليها. إذا كنت جديدًا على AWS، فراجع قم بإنشاء حساب AWS مستقل.
لاستخدام دفاتر ملاحظات SageMaker Studio في حساب AWS الخاص بك، تحتاج إلى المجال SageMaker بملف تعريف مستخدم لديه أذونات لتشغيل تطبيق SageMaker Studio. إذا كنت جديدًا في SageMaker Studio، فإن إعداد الاستوديو السريع هي أسرع طريقة للبدء. بنقرة واحدة، يقوم SageMaker بتزويد مجال SageMaker بالإعدادات المسبقة الافتراضية، بما في ذلك إعداد ملف تعريف المستخدم ودور IAM ومصادقة IAM والوصول إلى الإنترنت العام. دفتر الملاحظات لهذا المنصب يفترض ml.g5.2xlarge
نوع الطلب. لمراجعة حصتك أو زيادتها، افتح وحدة تحكم AWS Service Quotas، واختر خدمات AWS في جزء التنقل ، اختر الأمازون SageMaker، وقم بالإشارة إلى القيمة الخاصة بتطبيقات Studio KernelGateway التي تعمل عليها ml.g5.2xlarge
الحالات.
بعد تأكيد حد حصتك، ستحتاج إلى إكمال التبعيات لاستخدام دردشة Llama 2 7b.
دردشة Llama 2 7b متاحة ضمن رخصة لاما 2. للوصول إلى Llama 2 على Hugging Face، يتعين عليك إكمال بعض الخطوات أولاً:
- قم بإنشاء حساب Hugging Face إذا لم يكن لديك حساب بالفعل.
- أكمل النموذج "طلب الوصول إلى الإصدار التالي من Llama" الموجود على Meta موقع الكتروني.
- طلب الوصول إلى دردشة اللاما 2 7 ب على عناق الوجه.
بعد منحك حق الوصول، يمكنك إنشاء رمز وصول جديد للوصول إلى النماذج. لإنشاء رمز وصول، انتقل إلى الإعدادات صفحة على موقع Hugging Face.
يجب أن يكون لديك حساب في Pinecone لاستخدامه كقاعدة بيانات متجهة. يتوفر Pinecone على AWS عبر سوق AWS. يوفر موقع Pinecone أيضًا خيار إنشاء ملف حساب مجاني الذي يأتي مع أذونات لإنشاء فهرس واحد، وهو ما يكفي لأغراض هذه المقالة. لاسترداد مفاتيح Pinecone، افتح الملف وحدة تحكم كوز الصنوبر واختر مفاتيح API.
قم بإعداد دفتر الملاحظات والبيئة
لاتباع التعليمات البرمجية الموجودة في هذا المنشور، افتح SageMaker Studio وقم باستنساخ ما يلي مستودع جيثب. بعد ذلك، افتح دفتر الملاحظات studio-local-gen-ai/rag/RAG-with-Llama-2-on-Studio.ipynb واختر صورة PyTorch 2.0.0 Python 3.10 GPU المحسنة، وPython 3 kernel، و ml.g5.2xlarge
كنوع المثيل. إذا كانت هذه هي المرة الأولى التي تستخدم فيها دفاتر ملاحظات SageMaker Studio، فارجع إلى قم بإنشاء أو فتح دفتر ملاحظات Amazon SageMaker Studio.
لإعداد بيئة التطوير، تحتاج إلى تثبيت مكتبات Python اللازمة، كما هو موضح في الكود التالي:
%%writefile requirements.txt
sagemaker>=2.175.0
transformers==4.33.0
accelerate==0.21.0
datasets==2.13.0
langchain==0.0.297
pypdf>=3.16.3
pinecone-client
sentence_transformers
safetensors>=0.3.3
!pip install -U -r requirements.txt
قم بتحميل النموذج المُدرب مسبقًا والرمز المميز
بعد استيراد المكتبات المطلوبة، يمكنك تحميل الملف دردشة لاما-2 7ب النموذج جنبًا إلى جنب مع الرموز المميزة الخاصة به من Hugging Face. يتم تخزين هذه العناصر النموذجية المحملة في الدليل المحلي داخل SageMaker Studio. يمكّنك هذا من إعادة تحميلها بسرعة في الذاكرة عندما تحتاج إلى استئناف عملك في وقت مختلف.
import torch from transformers import ( AutoTokenizer, LlamaTokenizer, LlamaForCausalLM, GenerationConfig, AutoModelForCausalLM
)
import transformers tg_model_id = "meta-llama/Llama-2-7b-chat-hf" #the model id in Hugging Face
tg_model_path = f"./tg_model/{tg_model_id}" #the local directory where the model will be saved tg_model = AutoModelForCausalLM.from_pretrained(tg_model_id, token=hf_access_token,do_sample=True, use_safetensors=True, device_map="auto", torch_dtype=torch.float16
tg_tokenizer = AutoTokenizer.from_pretrained(tg_model_id, token=hf_access_token) tg_model.save_pretrained(save_directory=tg_model_path, from_pt=True)
tg_tokenizer.save_pretrained(save_directory=tg_model_path, from_pt=True)
اطرح سؤالاً يتطلب معلومات حديثة
يمكنك الآن البدء في استخدام النموذج وطرح الأسئلة. تتوقع نماذج الدردشة Llama-2 أن يلتزم الموجه بالتنسيق التالي:
<s>[INST] <<SYS>>
system_prompt
<<SYS>>
{{ user_message }} [/INST]
يمكنك استخدام قالب موجه من LangChain لإنشاء وصفة بناءً على تنسيق الموجه، بحيث يمكنك بسهولة إنشاء المطالبات من الآن فصاعدا:
from langchain import PromptTemplate template = """<s>[INST] <<SYS>>nYou are an assistant for question-answering tasks. You are helpful and friendly. Use the following pieces of retrieved context to answer the query. If you don't know the answer, you just say I don't know. Use three sentences maximum and keep the answer concise.
<<SYS>>n
{context}n
{question} [/INST] """
prompt_template = PromptTemplate( template=template, input_variables=['context','question'] )
لنطرح على النموذج سؤالاً يحتاج إلى معلومات حديثة من عام 2023. يمكنك استخدام LangChain وتحديدًا LLMChain نوع السلسلة وتمرير LLM كمعلمات، ونموذج المطالبة الذي قمت بإنشائه مسبقًا، والسؤال:
question = "When can I visit the AWS M&E Customer Experience Center in New York City?" tg_tokenizer.add_special_tokens( {"pad_token": "[PAD]"} )
tg_tokenizer.padding_side = "left" tg_pipe = transformers.pipeline(task='text-generation', model=tg_model, tokenizer=tg_tokenizer, num_return_sequences=1, eos_token_id=tg_tokenizer.eos_token_id, pad_token_id=tg_tokenizer.eos_token_id, max_new_tokens=400, temperature=0.7) from langchain.chains import LLMChain
from langchain.llms import HuggingFacePipeline llm=HuggingFacePipeline(pipeline=tg_pipe, model_kwargs={'temperature':0.7})
llm_chain = LLMChain(llm=llm, prompt=prompt_template)
no_context_response = llm_chain.predict(context="", question=question)
print(no_context_response)
نحصل على الإجابة المولدة التالية:
شكرا لك على التواصل! مركز تجربة عملاء AWS M&E في مدينة نيويورك مغلق حاليًا للزيارات بسبب جائحة فيروس كورونا (COVID-19). ومع ذلك، يمكنك التحقق من موقعهم الرسمي على الإنترنت أو حساباتهم على وسائل التواصل الاجتماعي لمعرفة أي تحديثات حول موعد إعادة فتح المركز. وفي هذه الأثناء، يمكنك استكشاف جولاتهم الافتراضية ومواردهم المتاحة عبر الإنترنت.
قم بتحسين الإجابة عن طريق إضافة سياق إلى الموجه
الجواب الذي أنشأناه ليس صحيحا تماما. دعونا نرى ما إذا كان بإمكاننا تحسينه من خلال توفير بعض السياق. يمكنك إضافة مقتطف من هذا المنصب تعلن AWS عن مركز تجربة العملاء الجديد للرصد والتقييم في نيويورك، والذي يتضمن تحديثات حول الموضوع اعتبارًا من عام 2023:
context = """Media and entertainment (M&E) customers continue to face challenges in creating more content, more quickly, and distributing it to more endpoints than ever before in their quest to delight viewers globally. Amazon Web Services (AWS), along with AWS Partners, have showcased the rapid evolution of M&E solutions for years at industry events like the National Association of Broadcasters (NAB) Show and the International Broadcast Convention (IBC). Until now, AWS for M&E technology demonstrations were accessible in this way just a few weeks out of the year. Customers are more engaged than ever before; they want to have higher quality conversations regarding user experience and media tooling. These conversations are best supported by having an interconnected solution architecture for reference. Scheduling a visit of the M&E Customer Experience Center will be available starting November 13th, please send an email to AWS-MediaEnt-CXC@amazon.com."""
استخدم LLMChain مرة أخرى وقم بتمرير النص السابق كسياق:
context_response = llm_chain.predict(context=context, question=question)
print(context_response)
الرد الجديد يجيب على السؤال بمعلومات حديثة:
يمكنك زيارة مركز تجربة عملاء AWS M&E في مدينة نيويورك بدءًا من 13 نوفمبر. يرجى إرسال بريد إلكتروني إلى AWS-MediaEnt-CXC@amazon.com لتحديد موعد الزيارة.
لقد أكدنا أنه من خلال إضافة السياق الصحيح، يتم تحسين أداء النموذج. يمكنك الآن تركيز جهودك على إيجاد وإضافة السياق المناسب للسؤال المطروح. بمعنى آخر، قم بتنفيذ RAG.
تنفيذ الإجابة على أسئلة RAG باستخدام تضمينات BGE وPinecone
في هذه المرحلة، يجب عليك تحديد مصادر المعلومات لتعزيز معرفة النموذج. يمكن أن تكون هذه المصادر صفحات ويب داخلية أو مستندات داخل مؤسستك، أو مصادر بيانات متاحة للعامة. ولأغراض هذا المنشور ومن أجل التبسيط، اخترنا منشورين على مدونة AWS تم نشرهما في عام 2023:
هذه المنشورات متاحة بالفعل كمستندات PDF في دليل مشروع البيانات في SageMaker Studio للوصول إليها بسرعة. لتقسيم المستندات إلى أجزاء يمكن التحكم فيها، يمكنك استخدام RecursiveCharacterTextSplitter الطريقة من LangChain:
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import PyPDFDirectoryLoader loader = PyPDFDirectoryLoader("./data/") documents = loader.load() text_splitter=RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=5
)
docs = text_splitter.split_documents(documents)
بعد ذلك، استخدم نموذج التضمين BGE bge-صغير-ar التي أنشأتها أكاديمية بكين للذكاء الاصطناعي (BAAI) المتوفر على Hugging Face لإنشاء تضمينات هذه القطع. قم بتنزيل النموذج وحفظه في الدليل المحلي في الاستوديو. نحن نستخدم fp32 بحيث يمكن تشغيله على وحدة المعالجة المركزية الخاصة بالمثيل.
em_model_name = "BAAI/bge-small-en"
em_model_path = f"./em-model" from transformers import AutoModel
# Load model from HuggingFace Hub
em_model = AutoModel.from_pretrained(em_model_name,torch_dtype=torch.float32)
em_tokenizer = AutoTokenizer.from_pretrained(em_model_name,device="cuda") # save model to disk
em_tokenizer.save_pretrained(save_directory=f"{em_model_path}/model",from_pt=True)
em_model.save_pretrained(save_directory=f"{em_model_path}/model",from_pt=True)
em_model.eval()
استخدم التعليمة البرمجية التالية لإنشاء وظيفة embedding_generator، والتي تأخذ أجزاء المستند كمدخلات وتقوم بإنشاء عمليات التضمين باستخدام نموذج BGE:
# Tokenize sentences
def tokenize_text(_input, device): return em_tokenizer( [_input], padding=True, truncation=True, return_tensors='pt' ).to(device) # Run embedding task as a function with model and text sentences as input
def embedding_generator(_input, normalize=True): # Compute token embeddings with torch.no_grad(): embedded_output = em_model( **tokenize_text( _input, em_model.device ) ) sentence_embeddings = embedded_output[0][:, 0] # normalize embeddings if normalize: sentence_embeddings = torch.nn.functional.normalize( sentence_embeddings, p=2, dim=1 ) return sentence_embeddings[0, :].tolist() sample_sentence_embedding = embedding_generator(docs[0].page_content)
print(f"Embedding size of the document --->", len(sample_sentence_embedding))
في هذا المنشور، نعرض سير عمل RAG باستخدام Pinecone، وهو نظام سحابي مُدار ومُدار قاعدة بيانات المتجهات الذي يقدم أيضًا API للبحث عن التشابه. أنت حر في إعادة كتابة الكود التالي لاستخدام قاعدة بيانات المتجهات المفضلة لديك.
نقوم بتهيئة أ عميل بايثون كوز الصنوبر وقم بإنشاء فهرس بحث متجه جديد باستخدام طول مخرجات نموذج التضمين. نحن نستخدم فئة Pinecone المضمنة في LangChain لاستيعاب التضمينات التي أنشأناها في الخطوة السابقة. يحتاج إلى ثلاث معلمات: المستندات المطلوب استيعابها، ووظيفة مولد التضمينات، واسم فهرس Pinecone.
import pinecone
pinecone.init( api_key = os.environ["PINECONE_API_KEY"], environment = os.environ["PINECONE_ENV"]
)
#check if index already exists, if not we create it
index_name = "rag-index"
if index_name not in pinecone.list_indexes(): pinecone.create_index( name=index_name, dimension=len(sample_sentence_embedding), ## 384 for bge-small-en metric='cosine' ) #insert the embeddings
from langchain.vectorstores import Pinecone
vector_store = Pinecone.from_documents( docs, embedding_generator, index_name=index_name
)
مع تحميل نموذج الدردشة Llama-2 7B في الذاكرة والتضمينات المدمجة في فهرس Pinecone، يمكنك الآن دمج هذه العناصر لتحسين استجابات Llama 2 لحالة استخدام الإجابة على الأسئلة. لتحقيق ذلك، يمكنك استخدام LangChain استرجاع سؤال وجواب، والذي يعمل على زيادة الموجه الأولي بالمستندات الأكثر تشابهًا من متجر المتجهات. عن طريق الإعداد return_source_documents=True
، يمكنك رؤية المستندات الدقيقة المستخدمة لإنشاء الإجابة كجزء من الرد، مما يسمح لك بالتحقق من دقة الإجابة.
from langchain.chains import RetrievalQA
import textwrap #helper method to improve the readability of the response
def print_response(llm_response): temp = [textwrap.fill(line, width=100) for line in llm_response['result'].split('n')] response = 'n'.join(temp) print(f"{llm_response['query']}n n{response}'n n Source Documents:") for source in llm_response["source_documents"]: print(source.metadata) llm_qa_chain = RetrievalQA.from_chain_type( llm=llm, #the Llama-2 7b chat model chain_type='stuff', retriever=vector_store.as_retriever(search_kwargs={"k": 2}), # perform similarity search in Pinecone return_source_documents=True, #show the documents that were used to answer the question chain_type_kwargs={"prompt": prompt_template}
)
print_response(llm_qa_chain(question))
نحصل على الجواب التالي:
س: متى يمكنني زيارة مركز تجربة عملاء AWS M&E في مدينة نيويورك؟
ج: يسعدني تقديم المساعدة! وفقًا للسياق، سيكون مركز تجربة عملاء AWS M&E في مدينة نيويورك متاحًا للزيارات بدءًا من 13 نوفمبر. يمكنك إرسال بريد إلكتروني إلى AWS-MediaEnt-CXC@amazon.com لتحديد موعد الزيارة.
وثائق المصدر:
{'page': 4.0, 'source': 'data/AWS تعلن عن مركز جديد لتجربة العملاء للرصد والتقييم في مدينة نيويورك _ AWS for M&E Blog.pdf'}
{'page': 2.0, 'source': 'data/AWS تعلن عن مركز جديد لتجربة العملاء للرصد والتقييم في مدينة نيويورك _ AWS for M&E Blog.pdf'}
دعونا نجرب سؤالًا مختلفًا:
question2=" How many awards have AWS Media Services won in 2023?"
print_response(llm_qa_chain(question2))
نحصل على الجواب التالي:
س: ما عدد الجوائز التي فازت بها AWS Media Services في عام 2023؟
ج: وفقًا لمنشور المدونة، فازت AWS Media Services بخمس جوائز صناعية في عام 2023.
وثائق المصدر:
{'page': 0.0, 'source': 'data/AWS Media Services تحصل على جوائز صناعية _ AWS for M&E Blog.pdf'}
{'page': 1.0, 'source': 'data/AWS Media Services تحصل على جوائز صناعية _ AWS for M&E Blog.pdf'}
بعد إنشاء مستوى كافٍ من الثقة، يمكنك نشر النماذج إلى نقاط نهاية SageMaker للاستدلال في الوقت الفعلي. تتم إدارة نقاط النهاية هذه بالكامل وتوفر الدعم للقياس التلقائي.
يقدم SageMaker استدلالًا كبيرًا للنماذج باستخدام حاويات استدلال النماذج الكبيرة (LMIs)، والتي يمكننا استخدامها لنشر نماذجنا. تأتي هذه الحاويات مجهزة بمكتبات مفتوحة المصدر مثبتة مسبقًا مثل DeepSpeed، مما يسهل تنفيذ تقنيات تحسين الأداء مثل توازي الموتر أثناء الاستدلال. بالإضافة إلى ذلك، يستخدمون DJLServing كخادم نموذجي متكامل تم إنشاؤه مسبقًا. DJLServing هو حل عالمي عالي الأداء لخدمة النماذج يوفر الدعم للتجميع الديناميكي والقياس التلقائي للعامل، وبالتالي زيادة الإنتاجية.
في نهجنا، نستخدم SageMaker LMI مع DJLServing وDeepSpeed Inference لنشر نماذج Llama-2-chat 7b وBGE إلى نقاط نهاية SageMaker التي تعمل على ml.g5.2xlarge
الحالات، مما يتيح الاستدلال في الوقت الحقيقي. إذا أردت أن تتبع هذه الخطوات بنفسك، راجع المرفق مفكرة للحصول على تعليمات مفصلة.
سوف تحتاج إلى اثنين ml.g5.2xlarge
حالات النشر. لمراجعة حصتك أو زيادتها، افتح وحدة تحكم AWS Service Quotas، واختر خدمات AWS في جزء التنقل ، اختر الأمازون SageMaker، والرجوع إلى قيمة ml.g5.2xlarge
لاستخدام نقطة النهاية.
توضح الخطوات التالية عملية نشر النماذج المخصصة لسير عمل RAG على نقطة نهاية SageMaker:
- انشر ملف اللاما-2 7 ب نموذج الدردشة إلى نقطة نهاية SageMaker في الوقت الفعلي التي تعمل على
ml.g5.2xlarge
مثال لإنشاء نص سريع. - انشر ملف BAAI/bge-small-en-v1.5 نموذج التضمين لنقطة نهاية SageMaker في الوقت الفعلي التي تعمل على
ml.g5.2xlarge
مثال. وبدلاً من ذلك، يمكنك نشر نموذج التضمين الخاص بك. - اطرح سؤالاً واستخدم LangChain استرجاع سؤال وجواب لتعزيز المطالبة بالمستندات الأكثر تشابهًا من Pinecone، هذه المرة باستخدام النموذج المنشور في نقطة النهاية في الوقت الفعلي لـ SageMaker:
# convert your local LLM into SageMaker endpoint LLM
llm_sm_ep = SagemakerEndpoint( endpoint_name=tg_sm_model.endpoint_name, # <--- Your text-gen model endpoint name region_name=region, model_kwargs={ "temperature": 0.05, "max_new_tokens": 512 }, content_handler=content_handler,
) llm_qa_smep_chain = RetrievalQA.from_chain_type( llm=llm_sm_ep, # <--- This uses SageMaker Endpoint model for inference chain_type='stuff', retriever=vector_store.as_retriever(search_kwargs={"k": 2}), return_source_documents=True, chain_type_kwargs={"prompt": prompt_template}
)
- استخدم LangChain للتحقق من أن نقطة نهاية SageMaker مع نموذج التضمين تعمل كما هو متوقع بحيث يمكن استخدامها لاستيعاب المستند في المستقبل:
response_model = smr_client.invoke_endpoint( EndpointName=em_sm_model.endpoint_name, <--- Your embedding model endpoint name Body=json.dumps({ "text": "This is a sample text" }), ContentType="application/json",
) outputs = json.loads(response_model["Body"].read().decode("utf8"))['outputs']
تنظيف
أكمل الخطوات التالية لتنظيف مواردك:
- عند الانتهاء من العمل في دفتر ملاحظات SageMaker Studio الخاص بك، تأكد من إيقاف تشغيل
ml.g5.2xlarge
على سبيل المثال لتجنب أي رسوم عن طريق اختيار أيقونة التوقف. يمكنك أيضًا إعداد البرامج النصية لتكوين دورة الحياة لإغلاق الموارد تلقائيًا عند عدم استخدامها.
- إذا قمت بنشر النماذج على نقاط نهاية SageMaker، فقم بتشغيل التعليمات البرمجية التالية في نهاية دفتر الملاحظات لحذف نقاط النهاية:
#delete your text generation endpoint
sm_client.delete_endpoint( EndpointName=tg_sm_model.endpoint_name
)
# delete your text embedding endpoint
sm_client.delete_endpoint( EndpointName=em_sm_model.endpoint_name
)
- أخيرًا، قم بتشغيل السطر التالي لحذف فهرس Pinecone:
pinecone.delete_index(index_name)
وفي الختام
توفر دفاتر ملاحظات SageMaker طريقة مباشرة لبدء رحلتك باستخدام برنامج Retrieval Augmented Generation. إنها تسمح لك بالتجربة بشكل تفاعلي مع العديد من النماذج والتكوينات والأسئلة دون تشغيل بنية تحتية إضافية. في هذا المنشور، أظهرنا كيفية تحسين أداء دردشة Llama 2 7b في سؤال يجيب على حالة الاستخدام باستخدام LangChain، ونموذج تضمينات BGE، وPinecone. للبدء، قم بتشغيل SageMaker Studio وقم بتشغيل مفكرة متوفر في ما يلي جيثب ريبو. رجاء شارك أفكارك في قسم التعليقات!
عن المؤلفين
أناستاسيا تسيفيليكا هو مهندس حلول التعلم الآلي والذكاء الاصطناعي في AWS. تعمل مع العملاء في أوروبا والشرق الأوسط وإفريقيا وتساعدهم في تصميم حلول التعلم الآلي على نطاق واسع باستخدام خدمات AWS. عملت في مشاريع في مجالات مختلفة بما في ذلك معالجة اللغة الطبيعية (NLP) و MLOps وأدوات Low Code No Code.
براناف مورثي هو مهندس حلول متخصص في الذكاء الاصطناعي / التعلم الآلي في AWS. يركز على مساعدة العملاء في بناء وتدريب ونشر وترحيل أعباء عمل التعلم الآلي (ML) إلى SageMaker. عمل سابقًا في صناعة أشباه الموصلات في تطوير نماذج الرؤية الحاسوبية الكبيرة (CV) ومعالجة اللغة الطبيعية (NLP) لتحسين عمليات أشباه الموصلات. في أوقات فراغه ، يستمتع بلعب الشطرنج والسفر.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/machine-learning/use-amazon-sagemaker-studio-to-build-a-rag-question-answering-solution-with-llama-2-langchain-and-pinecone-for-fast-experimentation/
- :لديها
- :يكون
- :ليس
- :أين
- $ UP
- 1
- 10
- 100
- 13
- 16
- 2023
- 33
- 500
- 7
- a
- AC
- الأكاديمية
- الوصول
- الوصول إلى البيانات
- يمكن الوصول
- وفقا
- حسابي
- الحسابات
- دقة
- دقيق
- التأهيل
- تضيف
- مضيفا
- إضافي
- وبالإضافة إلى ذلك
- انضمت
- مرة أخرى
- AI
- AI / ML
- السماح
- السماح
- يسمح
- على طول
- سابقا
- أيضا
- أمازون
- الأمازون SageMaker
- أمازون ساجميكر ستوديو
- أمازون ويب سيرفيسز
- أمازون ويب سيرفيسز (أوس)
- an
- و
- تعلن
- إجابة
- الأجوبة
- أي وقت
- واجهات برمجة التطبيقات
- التطبيق
- التطبيقات
- نهج
- التطبيقات
- هندسة معمارية
- هي
- مصطنع
- الذكاء الاصطناعي
- AS
- تطلب
- تقييم
- المساعد
- جمعية
- يفترض
- At
- زيادة
- المعزز
- الزيادات
- التحقّق من المُستخدم
- السيارات
- تلقائيا
- متاح
- تجنب
- منحت
- الجوائز
- AWS
- على أساس
- BE
- كان
- قبل
- أفضل
- أفضل
- المدونة
- المقالات والأخبار
- الجسدي
- بث
- نساعدك في بناء
- مدمج
- by
- CAN
- حقيبة
- الحالات
- مركز
- سلسلة
- السلاسل
- التحديات
- اسعارنا محددة من قبل وزارة العمل
- التحقق
- شطرنج
- اختار
- اختيار
- اختيار
- المدينة
- فئة
- نظيف
- انقر
- صندوق توظيف برأس مال محدود
- الكود
- تعاون
- الزملاء
- COM
- دمج
- يجمع بين
- تأتي
- يأتي
- تعليقات
- إكمال
- إحصاء
- الكمبيوتر
- رؤية الكمبيوتر
- مختصرا
- الثقة
- الاعداد
- تم تأكيد
- يتكون
- كنسولات
- حاويات
- محتوى
- سياق الكلام
- استمر
- اتفاقية
- المحادثات
- تحول
- المقابلة
- استطاع
- كوفيد-19
- وباء COVID-19
- خلق
- خلق
- خلق
- حاليا
- على
- زبون
- تجربة العملاء
- العملاء
- البيانات
- قاعدة البيانات
- قواعد البيانات
- تقرر
- الترتيب
- فرحة
- شرح
- تظاهر
- التبعيات
- نشر
- نشر
- نشر
- نشر
- مفصلة
- تطوير
- التطوير التجاري
- جهاز
- حوار
- مختلف
- بحث
- توزيع
- تفرق
- وثيقة
- وثائق
- نطاق
- المجالات
- دون
- لا
- إلى أسفل
- بإمكانك تحميله
- اثنان
- أثناء
- ديناميكي
- e
- في وقت سابق
- بسهولة
- جهود
- عناصر
- البريد الإلكتروني
- تضمين
- EMEA
- تمكن
- تمكين
- النهاية
- نقطة النهاية
- مخطوب
- تعزيز
- ترفيه
- تماما
- البيئة
- مسلح
- أنشئ
- أحداث
- EVER
- تطور
- مثال
- موجود
- توقع
- متوقع
- الخبره في مجال الغطس
- تجربة
- اكتشف
- خارجي
- استخراج
- الوجه
- تيسير
- FAST
- أسرع
- المميزات
- قليل
- نهائي
- العثور على
- الاسم الأول
- لأول مرة
- خمسة
- تركز
- ويركز
- اتباع
- متابعيك
- في حالة
- النموذج المرفق
- شكل
- إلى الأمام
- مجانًا
- ودود
- تبدأ من
- تماما
- وظيفة
- وظيفي
- مستقبل
- ربح
- توليد
- ولدت
- يولد
- جيل
- توليدي
- الذكاء الاصطناعي التوليدي
- مولد كهربائي
- دولار فقط واحصل على خصم XNUMX% على جميع
- على الصعيد العالمي
- الأهداف
- الذهاب
- وحدة معالجة الرسوميات:
- منح
- سعيد
- يملك
- وجود
- he
- مساعدة
- مفيد
- مساعدة
- يساعد
- رفيع المستوى
- أداء عالي
- أعلى
- له
- ضرب
- كيفية
- كيفية
- لكن
- HTML
- HTTPS
- محور
- تعانق الوجه
- i
- IBC
- اي كون
- ID
- هوية
- if
- يوضح
- صورة
- تنفيذ
- التنفيذ
- تحقيق
- استيراد
- تحسن
- تحسن
- يحسن
- in
- في أخرى
- يشمل
- بما فيه
- القيمة الاسمية
- في ازدياد
- مؤشر
- العالمية
- أحداث الصناعة
- معلومات
- البنية التحتية
- في البداية
- إدخال
- تثبيت
- مثل
- تعليمات
- المتكاملة
- رؤيتنا
- مترابطة
- داخلي
- عالميا
- Internet
- الدخول إلى الإنترنت
- إلى
- IT
- انها
- رحلة
- JPG
- جسون
- م
- احتفظ
- مفاتيح
- علم
- المعرفة
- لغة
- كبير
- إطلاق
- تعلم
- اليسار
- الطول
- مستوى
- المكتبات
- مثل
- مما سيحدث
- خط
- اللاما نوع من الجمال
- LLM
- تحميل
- محمل
- محلي
- منخفض
- آلة
- آلة التعلم
- جعل
- التحكم
- تمكن
- كثير
- مطابقة
- أقصى
- غضون ذلك
- الوسائط
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- مييتااا
- البيانات الوصفية
- طريقة
- الهجرة
- ML
- MLOps
- نموذج
- عارضات ازياء
- الأكثر من ذلك
- أكثر
- يجب
- NAB
- الاسم
- محليات
- طبيعي
- معالجة اللغات الطبيعية
- التنقل
- قائمة الإختيارات
- ضروري
- حاجة
- إحتياجات
- جديد
- وصول جديد
- نيويورك
- مدينة نيويورك
- التالي
- البرمجة اللغوية العصبية
- لا
- مفكرة
- نوفمبر
- الآن
- of
- عرض
- عروض
- رسمي
- الموقع الرسمي
- on
- ONE
- online
- جاكيت
- المصدر المفتوح
- الأمثل
- خيار
- مزيد من الخيارات
- or
- منظمة
- OS
- أخرى
- لنا
- خارج
- الخطوط العريضة
- الناتج
- النتائج
- الخاصة
- وسادة
- صفحة
- وباء
- خبز
- المعلمات
- جزء
- شركاء
- pass
- نفذ
- أداء
- أذونات
- مرحلة جديدة
- قطعة
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- لعب
- من فضلك
- منشور
- المنشورات
- المفضل
- يقدم
- سابق
- سابقا
- عملية المعالجة
- العمليات
- معالجة
- ملفي الشخصي
- تنفيذ المشاريع
- مشروع ناجح
- النموذج
- النماذج
- تزود
- توفير
- جمهور
- علانية
- نشرت
- أغراض
- بايثون
- pytorch
- جودة
- بحث
- سؤال
- الأسئلة المتكررة
- سريع
- بسرعة
- سريع
- بسرعة
- الوصول إلى
- في الوقت الحقيقي
- الأخيرة
- وصفة
- الرجوع
- مرجع
- بخصوص
- ذات الصلة
- إعادة فتح
- تطلب
- مطلوب
- المتطلبات الأساسية
- يتطلب
- الموارد
- استجابة
- ردود
- نتيجة
- استئنف
- عائد أعلى
- مراجعة
- حق
- النوع
- يجري
- تشغيل
- sagemaker
- صالح
- نفسه
- حفظ
- تم الحفظ
- قول
- حجم
- التحجيم
- جدول
- جدولة
- بحث
- البحث
- الثاني
- أقسام
- انظر تعريف
- أشباه الموصلات
- إرسال
- أرسلت
- الخادم
- الخدمة
- خدماتنا
- طقم
- ضبط
- مشاركة
- هي
- إظهار
- عرضت
- أظهرت
- غلق
- غلق
- مماثل
- بساطة
- عزباء
- المقاس
- So
- العدالة
- وسائل التواصل الاجتماعي
- حل
- الحلول
- بعض
- مصدر
- مصادر
- متخصص
- محدد
- على وجه التحديد
- مستقل
- بداية
- بدأت
- ابتداء
- ساكن
- خطوة
- خطوات
- قلة النوم
- متجر
- تخزين
- فروعنا
- صريح
- ستوديو
- هذه
- كاف
- الدعم
- مدعومة
- بالتأكيد
- بسرعة
- يأخذ
- مهمة
- المهام
- تقنيات
- تكنولوجيا
- قالب
- نص
- من
- أن
- •
- من مشاركة
- منهم
- هناك.
- وبالتالي
- تشبه
- هم
- ثلاثة
- عبر
- الإنتاجية
- الوقت
- إلى
- رمز
- tokenize
- أدوات
- موضوع
- شعلة
- رحلات
- قطار
- محولات
- انتقال
- السفر
- صحيح
- محاولة
- اثنان
- نوع
- أنواع
- نموذجي
- عادة
- مع
- عالمي
- حتى
- حديث جديد
- آخر التحديثات
- الأستعمال
- تستخدم
- حالة الاستخدام
- مستعمل
- مستخدم
- تجربة المستخدم
- يستخدم
- استخدام
- الاستفادة من
- قيمنا
- مختلف
- التحقق
- تحقق من
- الإصدار
- بواسطة
- المشاهدين
- افتراضي
- جولات افتراضية
- رؤية
- رؤيتنا
- قم بزيارتنا
- الزيارات
- سير
- تريد
- طريق..
- we
- الويب
- خدمات ويب
- الموقع الإلكتروني
- أسابيع
- كان
- متى
- كلما
- التي
- في حين
- سوف
- مع
- في غضون
- بدون
- وون
- كلمات
- للعمل
- عمل
- عامل
- سير العمل
- عامل
- أعمال
- عام
- سنوات
- نيويورك
- أنت
- حل متجر العقارات الشامل الخاص بك في جورجيا
- نفسك
- زفيرنت