AWS Bedrock හි AI21 Jurassic-2 Models | සිංහල මාර්ගෝපදේශය | LLMs | Prompt Engineering
හලෝ යාළුවනේ! කොහොමද ඔයාලට? අද අපි කතා කරන්න යන්නේ AI ලෝකයේ අලුත්ම සහ hottest topic එකක් ගැන. ඒ තමයි Large Language Models (LLMs). විශේෂයෙන්ම, AWS Bedrock කියන සේවාව හරහා අපිට access කරන්න පුළුවන් AI21 Labs එකේ Jurassic-2 models ගැන.
AI කියන්නේ දැන් අපේ දෛනික ජීවිතයට අත්යවශ්ය දෙයක් බවට පත් වෙලා. Chatbots වලින් පටන් අරන්, content creation, data analysis වගේ ගොඩක් දේවල් වලට AI දැන් පාවිච්චි කරනවා. ඉතින්, developer කෙනෙක් විදියට අපිට මේ AI models ගැන දැනගෙන ඉන්න එක ගොඩක් වැදගත්. AWS Bedrock කියන්නේ මේ වගේ foundational models (FM) පහසුවෙන් අපේ applications වලට integrate කරගන්න පුළුවන් managed service එකක්. ඒකෙන් අපිට AI models infrastructure ගැන හිතන්නේ නැතුව, models වල capabilities විතරක් පාවිච්චි කරන්න පුළුවන්.
මේ ලිපියෙන් අපි AI21 Labs Jurassic-2 models මොනවද, ඒවායේ තියෙන විශේෂාංග මොනවද, අපේ project එකට හරියන model එක තෝරාගන්නේ කොහොමද, prompt engineering techniques පාවිච්චි කරලා හොඳම results ගන්න හැටි සහ තවත් ගොඩක් දේවල් ගැන සිංහලෙන් කතා කරනවා. මේක ඇත්තටම අපේ developers ලාට AI projects වලට පාවිච්චි කරන්න නියම අවස්ථාවක්. එහෙනම්, අපි පටන් ගමු!
AI21 Labs Jurassic-2 Models: සම්පූර්ණ දළ විශ්ලේෂණයක්
AI21 Labs කියන්නේ AI field එකේ ඉහළම තැනක ඉන්න company එකක්. එයාලගේ Jurassic-2 models කියන්නේ භාෂාව තේරුම් ගන්න, generate කරන්න පුළුවන් ඉතා powerful, state-of-the-art models. මේවා AWS Bedrock හරහා අපිට පහසුවෙන් API calls විදියට පාවිච්චි කරන්න පුළුවන්.
Jurassic-2 models වල ප්රධාන variants තුනක් තියෙනවා. මේවා එකිනෙකට වෙනස් හැකියාවන් සහ සම්පත් භාවිතයන් (resource usage) තියෙනවා. ඒ නිසා, අපේ project එකේ අවශ්යතාවයට අනුව model එක තෝරාගන්න එක ගොඩක් වැදගත්.
Jurassic-2 Ultra (j2-ultra)
- හැකියාව: මේක තමයි Jurassic-2 series එකේ වඩාත්ම දියුණුම සහ බලවත්ම (most powerful) model එක. ඉතා සංකීර්ණ භාෂා කාර්යයන් (complex language tasks) සඳහා නිර්මාණය කර තිබෙනවා.
- භාවිත: Deep analysis, creative content generation, multi-step reasoning, advanced summarization, සහ complex information extraction වගේ දේවල් වලට මේක ඉතාම සුදුසුයි.
- විශේෂාංග: වැඩි නිරවද්යතාවයක් (accuracy) සහ සියුම් තොරතුරු හඳුනාගැනීමේ හැකියාවක් (nuance detection) තියෙනවා. ඒ වගේම, දීර්ඝ prompts සහ responses handle කරන්න පුළුවන්.
Jurassic-2 Mid (j2-mid)
- හැකියාව: Ultra model එකට වඩා තරමක් කුඩා වුණත්, මෙයත් ඉතා ඉහළ මට්ටමේ කාර්ය සාධනයක් (high performance) පෙන්නුම් කරනවා. බොහෝ සාමාන්ය LLM කාර්යයන් සඳහා ප්රශස්ත විසඳුමක්.
- භාවිත: Summarization, question answering, content creation (blog posts, articles), chatbots, code generation වගේ දේවල් වලට හොඳයි.
- විශේෂාංග: වේගය සහ කාර්ය සාධනය (performance) අතර හොඳ සමබරතාවයක් (balance) තියෙනවා. බොහෝ businesses වලට අවශ්ය වන tasks වලට හොඳින් ගැලපෙනවා.
Jurassic-2 Light (j2-light)
- හැකියාව: මේක තමයි series එකේ කුඩාම සහ වේගවත්ම (fastest) model එක. සරල භාෂා කාර්යයන් සහ අඩු latency අවශ්ය වන applications සඳහා නිර්මාණය කර තිබෙනවා.
- භාවිත: Simple text generation, basic chatbots, sentiment analysis, text classification, grammar correction වගේ දේවල් වලට මේක ඉතාම සුදුසුයි.
- විශේෂාංග: අඩු සම්පත් භාවිතය (lower resource consumption) සහ වේගවත් ප්රතිචාර කාලය (faster response times). Cost-effective වීමත් මේකේ තවත් වාසියක්.
සෑම Jurassic-2 Model එකක් සඳහාම ප්රශස්ත භාවිතයන් (Optimal Use Cases)
මේ models තුනම එක වගේ වැඩ වලට නෙවෙයි හොඳ. ඒ නිසා, අපේ project එකට හරියන model එක තෝරාගන්න එක ගොඩක් වැදගත්. වැරදි model එකක් තෝරාගත්තොත් cost එක වැඩි වෙන්න, නැත්නම් අපේ අවශ්යතාවයට ගැලපෙන output එකක් නොලැබෙන්න පුළුවන්.
Jurassic-2 Ultra (j2-ultra) සඳහා භාවිතයන්:
- Creative Content Generation: නවකතා, කවි, ගීත, නාට්ය පිටපත් වගේ නිර්මාණශීලී ලිවීම් වලට.
- Complex Analysis & Research: විශාල documentations වලින් key insights extract කරගැනීම, complex data sets විශ්ලේෂණය කිරීම, executive summaries හදනවා වගේ දේවල් වලට.
- Multi-turn Conversations: සංකීර්ණ chatbots, virtual assistants වැනි දීර්ඝ සහ ගැඹුරු සංවාද පවත්වා ගැනීමට.
- Academic Writing & Research Summaries: විද්යාත්මක ලිපි, පර්යේෂණ වාර්තා සාරාංශ කිරීම සහ ඒවායේ ප්රධාන අදහස් හඳුනාගැනීම.
Jurassic-2 Mid (j2-mid) සඳහා භාවිතයන්:
- General Content Creation: Blog posts, marketing copy, social media updates වගේ දේවල් ඉක්මනින් සහ කාර්යක්ෂමව නිර්මාණය කිරීමට.
- Customer Support Chatbots: නිතර අසන ප්රශ්න වලට (FAQs) පිළිතුරු දීම, basic support queries handle කිරීම.
- Information Retrieval & Q&A: Documents වලින් specific information සොයාගැනීම සහ ප්රශ්න වලට පිළිතුරු දීම.
- Text Summarization: ලිපි, ඊමේල්, වාර්තා වැනි දේවල් කෙටියෙන් සාරාංශ කිරීමට.
Jurassic-2 Light (j2-light) සඳහා භාවිතයන්:
- Basic Chatbots & FAQs: සරල chatbot interactions සහ කෙටි ප්රශ්න වලට පිළිතුරු දීම.
- Text Classification: Spam detection, sentiment analysis (ධනාත්මකද, ඍණාත්මකද වගේ දේවල් හඳුනාගැනීම).
- Grammar & Spelling Correction: කෙටි text segments වල වැරදි හඳුනාගෙන නිවැරදි කිරීම.
- Quick Response Generation: Social media comments වලට ඉක්මන් replies දීම වගේ දේවල් වලට.
Jurassic-2 සඳහා Prompt Engineering ප්රගුණ කිරීම
LLMs එක්ක වැඩ කරනකොට, "Prompt Engineering" කියන්නේ අනිවාර්යයෙන්ම දැනගන්න ඕන දෙයක්. සරලව කිව්වොත්, model එකට අපි දෙන instructions තමයි prompt එක. මේක හරියට දුන්නොත් තමයි අපිට හොඳම output එක ගන්න පුළුවන්. හරියට අපේ යාලුවෙක්ට වැඩක් කියනවා වගේ තමයි. අපි කොච්චර පැහැදිලිව වැඩේ කියනවද, ඒ අනුව තමයි එයා වැඩේ කරන්නේ.
ප්රධාන Prompt Engineering මූලධර්ම:
- පැහැදිලිකම (Clarity): ඔබ model එකෙන් බලාපොරොත්තු වන දේ ඉතා පැහැදිලිව සහ නිශ්චිතව (specific) සඳහන් කරන්න.
- සන්දර්භය (Context): අවශ්ය නම්, model එකට කාර්යය තේරුම් ගැනීමට උපකාර වන අමතර තොරතුරු (background information) ලබා දෙන්න.
- උදාහරණ (Examples): 'Few-shot prompting' කියන technique එක පාවිච්චි කරලා, අපිට අවශ්ය output format එක මොකක්ද කියලා model එකට උදාහරණ කිහිපයක් දෙන්න පුළුවන්.
- සීමාවන් (Constraints): output එකේ දිග, format එක, tone එක වගේ දේවල් ගැන සීමාවන් (restrictions) සඳහන් කරන්න.
ප්රායෝගික උදාහරණයක්: Python සහ Boto3 භාවිතයෙන් Jurassic-2 කැඳවීම
දැන් අපි බලමු Python code එකක් පාවිච්චි කරලා AWS Bedrock runtime client එක හරහා Jurassic-2 model එකක් invoke කරන්නේ කොහොමද කියලා. මේ සඳහා අපිට boto3 library එක අවශ්ය වෙනවා. ඔබගේ AWS credentials හරියට configure කරලා තියෙන්න ඕනේ.
import boto3
import json
# AWS client එක configure කරගන්න
# Make sure your AWS credentials are set up (e.g., via AWS CLI or environment variables)
bedrock_runtime = boto3.client(
service_name='bedrock-runtime',
region_name='us-east-1' # ඔබගේ AWS Region එක මෙතන දෙන්න, e.g., 'ap-southeast-1' (Singapore) or 'us-east-1' (N. Virginia)
)
def invoke_jurassic_2(prompt_text, model_id, max_tokens=200, temperature=0.7):
"""
Jurassic-2 model එකක් invoke කිරීම සඳහා function එකක්.
"""
body = json.dumps({
"prompt": prompt_text,
"maxTokens": max_tokens,
"temperature": temperature,
"topP": 1, # 'topP' parameter එක වැඩි වෙන තරමට model එකේ output එක වඩාත් diverse වෙනවා.
"stopSequences": [], # Model එකට output එක නවත්වන්න ඕන sequence එකක් මෙතන දෙන්න පුnලුවන්.
"countPenalty": {"scale": 0}, # වචන නැවත නැවත එන එක අඩු කරන්න පුළුවන්.
"presencePenalty": {"scale": 0},
"frequencyPenalty": {"scale": 0}
})
response = bedrock_runtime.invoke_model(
body=body,
modelId=model_id,
accept="application/json",
contentType="application/json"
)
response_body = json.loads(response.get('body').read())
return response_body['completions'][0]['data']['text']
# --- විවිධ Jurassic-2 models සඳහා උදාහරණ Prompts ---
# 1. Jurassic-2 Mid භාවිතයෙන් සරල ප්රශ්නයකට පිළිතුරු දීම
prompt_1 = "ශ්රී ලංකාවේ අගනුවර කුමක්ද?"
print(f"<h3>ප්රශ්නය (Mid): {prompt_1}</h3>")
print(f"<p>පිළිතුර: {invoke_jurassic_2(prompt_1, 'ai21.jurassic-2-mid-v1')}</p>\n")
# 2. Jurassic-2 Ultra භාවිතයෙන් නිර්මාණශීලී කතාවක් ලිවීම
prompt_2 = "මට 'කම්මැලි' නොවී වැඩ කරන ආකාරය ගැන කෙටි, අභිප්රේරණාත්මක (motivational) කතාවක් ලියන්න. කතාවේ ප්රධාන චරිතය දිනක් හදිසියේම ක්රියාශීලී වන ආකාරය විස්තර කරන්න."
print(f"<h3>ප්රශ්නය (Ultra): {prompt_2}</h3>")
print(f"<p>පිළිතුර: {invoke_jurassic_2(prompt_2, 'ai21.jurassic-2-ultra-v1', max_tokens=300, temperature=0.8)}</p>\n")
# 3. Jurassic-2 Light භාවිතයෙන් වාක්යයක් සරල කිරීම
prompt_3 = "Simplify the following sentence: 'The proliferation of intricate technological apparatuses necessitates a comprehensive understanding of their underlying operational principles to ensure seamless integration and optimal functionality.'"
print(f"<h3>ප්රශ්නය (Light): {prompt_3}</h3>")
print(f"<p>පිළිතුර: {invoke_jurassic_2(prompt_3, 'ai21.jurassic-2-light-v1', max_tokens=100, temperature=0.5)}</p>\n")
# 4. Few-shot Prompting උදාහරණයක් (Mid model සඳහා)
prompt_4 = "<b>ප්රශ්න සහ පිළිතුරු රටාව:</b>\nප්රශ්නය: සූර්යයා යනු කුමක්ද?\nපිළිතුර: සූර්යයා යනු අපේ සෞරග්රහ මණ්ඩලයේ මධ්යයේ පිහිටා ඇති තාරකාවකි.\n---\nප්රශ්නය: ජලයෙහි රසායනික සූත්රය කුමක්ද?\nපිළිතුර: H2O\n---\nප්රශ්නය: ශ්රී ලංකාවේ ජාතික පක්ෂියා කවුද?\nපිළිතුර:"
print(f"<h3>ප්රශ්නය (Few-shot, Mid): {prompt_4.split('---\n')[-1].strip()}</h3>") # Display only the last question
print(f"<p>පිළිතුර: {invoke_jurassic_2(prompt_4, 'ai21.jurassic-2-mid-v1', max_tokens=50, temperature=0.1)}</p>\n")
Code Explanation:
boto3.client('bedrock-runtime', ...): Bedrock runtime service එකට access ලබා දෙනවා.invoke_jurassic_2function එක, අපේ prompt එක සහ model ID එක අරගෙන Bedrock API එක call කරනවා.bodyJSON object එකේ model එකට අවශ්ය parameter (parameters) තියෙනවා:prompt: අපි model එකට දෙන instruction එක.maxTokens: model එක generate කරන output එකේ උපරිම token ගණන (approximate word count).temperature: output එකේ නිර්මාණශීලීත්වය (creativity) සහ අහඹු බව (randomness) පාලනය කරනවා. 0 ට කිට්ටු වෙන්න වෙන්න output එක වඩාත් deterministic (නිශ්චිත) වෙනවා.topP: මේක probability mass එකක්. අඩු අගයක් දෙනකොට model එක වඩාත් conservative වෙනවා.
- උදාහරණ කිහිපයක් දීලා තියෙනවා, විවිධ prompts සහ models කොහොමද වැඩ කරන්නේ කියලා පෙන්නන්න. විශේෂයෙන් Few-shot Prompting කියන එකෙන් අපි model එකට උදාහරණ දීලා output format එක තේරුම් ගන්න උදව් කරනවා.
Model Customization සහ Prompt Templating
සමහර වෙලාවට default models අපේ specific needs වලට හරියටම ගැලපෙන්නේ නැති වෙන්න පුළුවන්. එතකොට අපිට model එක customize කරන්න වෙනවා. AI21 Labs Jurassic-2 models වලට direct fine-tuning capabilities AWS Bedrock එකේ දැනට public access වලට නැතත්, prompt engineering techniques හරහා අපිට මේ models අපේ අවශ්යතාවයට අනුව adapt කරගන්න පුළුවන්. මේක අපි 'Prompt Templating' කියලා හඳුන්වනවා.
Prompt Templating යනු කුමක්ද?
Prompt templating කියන්නේ නැවත නැවතත් පාවිච්චි කරන්න පුළුවන් prompt structures හදාගන්න එක. මේවාට dynamic values (variable values) ඇතුළත් කරන්න පුළුවන්. මේකෙන් අපිට එකම task එකක් සඳහා විවිධ inputs වලට model එක හරියට respond වෙන විදියට customize කරන්න පුළුවන්.
- උදාහරණයක්: Customer support chatbot එකක් සඳහා, අපිට "ප්රශ්නය: {පාරිභෝගිකයාගේ_ප්රශ්නය}. මේ සඳහා කෙටි, මිත්රශීලී පිළිතුරක් දෙන්න." වගේ template එකක් හදාගන්න පුළුවන්. මෙතන {පාරිභෝගිකයාගේ_ප්රශ්නය} කියන්නේ run-time එකේදී වෙනස් වන අගයක්.
- System Prompts: සමහර model implementations වල system prompt එකක් දෙන්න පුළුවන්. මේකෙන් model එකේ overall behavior එක තීරණය කරනවා (e.g., "You are a helpful assistant specialized in Sri Lankan history.").
- Few-shot Examples: කලින් code example එකේ තිබුණා වගේ, අපිට අවශ්ය output pattern එක model එකට තේරුම් කරවන්න උදාහරණ කිහිපයක් prompt එක ඇතුළත දෙන්න පුළුවන්.
මේ ක්රමවේද හරහා අපිට fine-tuning එකක් තරම් customization එකක් නොලැබුණත්, අපේ applications වලට අවශ්ය වන නිශ්චිත output patterns වලට model එක හුරු කරවන්න පුළුවන්.
කාර්ය සාධන මැන බැලීම සහ ඇගයීම (Performance Benchmarking)
ඕනෑම AI solution එකක් deploy කරන්න කලින්, ඒක හරියට වැඩ කරනවද, අපේ අවශ්යතා සපුරනවාද කියලා බලන එක ගොඩක් වැදගත්. මේක තමයි Performance Benchmarking කියලා කියන්නේ. Jurassic-2 models භාවිතා කරනකොටත් මේක අත්යවශ්යයි.
ප්රධාන මිනුම් දඬු (Key Metrics):
- නිරවද්යතාවය (Accuracy): Model එක කොයිතරම් දුරට නිවැරදි සහ අදාළ (relevant) පිළිතුරු දෙනවද?
- සුසංයෝගය (Coherence): Model එකේ output එක කොයිතරම් දුරට තර්කානුකූලද සහ ස්වාභාවිකද?
- අදාළත්වය (Relevance): Model එකේ output එක prompt එකට කෙලින්ම සම්බන්ධද?
- ප්රමාදය (Latency): Request එකක් යැව්වම, model එක ප්රතිචාරයක් දෙන්න කොයිතරම් කාලයක් ගන්නවද? (විශේෂයෙන් Real-time applications වලට මේක වැදගත්).
- පිරිවැය (Cost): Model එකක් invoke කරන්න යන වියදම. (විශාල scale එකකදී මේක ගොඩක් වැදගත් වෙනවා).
ඇගයීමේ ක්රම (Evaluation Strategies):
- Human Evaluation: මිනිසුන් ලවා model එකේ outputs review කරවීම. මේක තමයි වඩාත්ම නිවැරදි ක්රමය.
- Automated Metrics: ROUGE, BLEU, METEOR වගේ metrics පාවිච්චි කරලා summarization, translation වගේ tasks වල outputs evaluate කරන්න පුළුවන්.
- A/B Testing: එකම task එක සඳහා විවිධ models (හෝ එකම model එකේ විවිධ prompts) වල outputs compare කිරීම.
- User Feedback: Application එක භාවිත කරන අයගෙන් feedback ලබාගැනීම.
ඔබේ application එකට වඩාත්ම සුදුසු Jurassic-2 model එක තෝරාගැනීමට සහ prompt engineering strategy එක refine කිරීමට මෙම ඇගයීම් ක්රම උපකාරී වේ.
අවසන් වචනය
ඉතින් යාළුවනේ, මේ ලිපියෙන් ඔයාලට AI21 Labs Jurassic-2 models ගැන හොඳ අවබෝධයක් ලැබෙන්න ඇති කියලා හිතනවා. AWS Bedrock කියන platform එක හරහා මේ වගේ powerful LLMs අපේ applications වලට integrate කරගන්න එක දැන් බොහොම පහසුයි. Ultra, Mid, Light කියන models තුනේම තියෙන හැකියාවන් සහ ඒවා පාවිච්චි කරන්න පුළුවන් අවස්ථා ගැන අපි කතා කළා.
ඒ වගේම, Prompt Engineering කියන දේ LLMs එක්ක වැඩ කරනකොට කොයිතරම් වැදගත්ද කියලත්, ඒක ප්රායෝගිකව කරන හැටි Python code example එකකින් අපි ඉගෙන ගත්තා. Model customization සහ performance benchmarking කියන දේවල වැදගත්කම ගැනත් ඔයාලට දැන් හොඳට තේරෙනවා ඇති.
මේ AI field එක දිනෙන් දිනම දියුණු වෙනවා. ඒ නිසා, අලුත් දේවල් ඉගෙන ගන්න එක ගොඩක් වැදගත්. මම ඔයාලට recommend කරන්නේ මේවා අනිවාර්යයෙන්ම ඔයාගේ project වලට අත්හදා බලන්න කියලා. AWS Free Tier එකෙන් පටන් අරන්, Bedrock වල තියෙන models එක්ක වැඩ කරන්න පුළුවන්. එතකොට තමා මේවායේ නියම හැකියාවන් ඔයාලට තේරෙන්නේ.
ඔයාලගේ අත්දැකීම්, ප්රශ්න, හෝ මේ ගැන අලුතින් යමක් දැනගන්න තියෙනවා නම්, පහලින් comment කරන්න! අපි එකතු වෙලා මේ දැනුම බෙදා ගනිමු. Happy coding! 🚀