AI/LLM සඳහා Python මූලිකාංග | Sinhala Tutorial

හැඳින්වීම: AI ලෝකයට පිවිසීමට Python
ආයුබෝවන් යාලුවනේ! කොහොමද සැප සනීප? 🧑💻 අද කාලේ ලෝකයේ හැමතැනම කතාබහට ලක්වෙන විෂයක් තමයි Artificial Intelligence (AI) සහ Large Language Models (LLMs) කියන්නේ. මේ ක්ෂේත්ර දෙකේම රජු වගේ ඉන්න Programming Language එක තමයි Python. ඇත්තටම කිව්වොත්, Python නැතුව AI ගැන කතා කරන්න අමාරුයි. 😅
ඔයා Software Engineer කෙනෙක් වෙන්න හීන දකින කෙනෙක්ද? එහෙමත් නැත්නම් දැනටමත් මේ ක්ෂේත්රයේ ඉන්න කෙනෙක්, AI / LLM පැත්තට යන්න ආස කෙනෙක්ද? එහෙනම් මේ ලිපිය ඔයාට ගොඩක් වැදගත් වෙයි. අපි මේකෙන් Python වල මූලිකම දේවල්, ඒ කියන්නේ Syntax, Data Structures, Functions, Object-Oriented Programming (OOP) වගේම AI වලට අවශ්ය Python Ecosystem එක ගැනත් කතා කරනවා. මේ හැමදේම අපි සරලව, ඔයාට තේරෙන සිංහලෙන් පැහැදිලි කරනවා.
වැඩේ එච්චර අමාරු නෑ, පොඩ්ඩක් අවධානයෙන් මේ ටික බලන් ඉන්න, අන්තිමට ඔයාට Python ගැන හොඳ අවබෝධයක් ලැබෙයි. එහෙනම් වැඩේට බහිමුද? 😎
1. Python මූලිකාංග: සරලව ආරම්භ කරමු
Python කියන්නේ Coding වලට අලුත් කෙනෙක්ට වුණත් ඉක්මනින්ම ඉගෙන ගන්න පුළුවන් සරල, කියවන්න පහසු Programming Language එකක්. ඒක තමයි AI වගේ සංකීර්ණ දේවල් කරන්න Python මෙච්චර ජනප්රිය වෙන්න එක හේතුවක්.
1.1. Python Syntax: Code ලියන හැටි
Python වලට තමන්ටම ආවේණික ලිවීමේ රටාවක් (Syntax) තියෙනවා. වෙනත් Language වල වගේ Curly Brackets ({}
) නැතිව Python වල Code Block එකක් identify කරන්නේ Indentation (ඉඩ තැබීම) මගින්. ඒ කියන්නේ, එකම Code Block එකක තියෙන Line ටික එකම මට්ටමට ඉස්සරහට තල්ලු කරලා (Indent කරලා) තියෙන්න ඕනේ. සාමාන්යයෙන් Spaces 4ක් නැත්නම් Tab එකක් මේකට භාවිතා කරනවා.
පළමු Python Program එක: “Hello, World!”
සාම්ප්රදායිකව ඕනෑම Programming Language එකක් ඉගෙන ගන්න පටන් ගනිද්දි ලියන පළවෙනි Program එක තමයි "Hello, World!" කියන එක. Python වල ඒක මෙහෙම ලියනවා:
print("ආයුබෝවන් ලෝකය!") # මේක Comment එකක්, Python මේක Run කරන්නේ නෑ
මෙහිදී print()
කියන්නේ Python වල Built-in Function එකක්. ඒක අපි දෙන Text එක Screen එකේ පෙන්නන්න (Output කරන්න) භාවිතා කරනවා. #
ලකුණෙන් පස්සේ තියෙන දේවල් Comments විදිහට සලකනවා. ඒවා Programmer කෙනෙක්ට Code එක තේරුම් ගන්න උදව් වෙනවා මිසක් Program එක Run වෙද්දි බලපාන්නේ නෑ.
1.2. Variables: දත්ත ගබඩා කරන තැන්
Variable එකක් කියන්නේ Program එකක් ඇතුලේ දත්ත (Data) තාවකාලිකව ගබඩා කරලා තියාගන්න පුළුවන් නමක් තියෙන මතක ස්ථානයක් වගේ දෙයක්. Python වල Variable එකක් Declare කරන්න වෙනම Keyword එකක් අවශ්ය නෑ. කෙලින්ම Variable එකට නමක් දීලා Value එකක් Assign කරන්න පුළුවන්.
# Variable වලට Value Assign කිරීම
name = "අනුර"
age = 25
is_student = True
height = 5.9
print(f"නම: {name}, වයස: {age}, ශිෂ්යයෙක්ද: {is_student}, උස: {height} අඩි")
1.3. Data Types: දත්ත වර්ග
Python වල විවිධ වර්ගයේ දත්ත ගබඩා කරන්න පුළුවන්. ප්රධාන දත්ත වර්ග ටිකක් පහත දැක්වෙනවා:
- Integers (
int
): පූර්ණ සංඛ්යා (උදා:10
,-5
,1000
) - Floating Point Numbers (
float
): දශම සංඛ්යා (උදා:3.14
,-0.5
,2.0
) - Strings (
str
): අකුරු, වචන, වාක්ය ("Hello"
,'Python is fun'
). මේවා Single Quote (' '
) හෝ Double Quotes (" "
) ඇතුලේ ලියන්න පුළුවන්. - Booleans (
bool
):True
හෝFalse
කියන Values දෙක විතරයි තියෙන්නේ. මේවා තත්ත්වයන් (Conditions) Check කරන්න භාවිතා කරනවා.
ඔයාට Variable එකක Data Type එක දැනගන්න ඕන නම්, type()
Function එක භාවිතා කරන්න පුළුවන්:
num = 10
text = "AI"
is_active = False
print(type(num)) # Output: <class 'int'>
print(type(text)) # Output: <class 'str'>
print(type(is_active)) # Output: <class 'bool'>
2. Data Structures: දත්ත කාර්යක්ෂමව ගබඩා කරන හැටි
Program එකකදී අපිට තනි දත්තයක් විතරක් නෙවෙයි, දත්ත ගොඩක් එකට ගබඩා කරලා ඒ දත්ත එක්ක වැඩ කරන්න වෙන අවස්ථා ඕන තරම් එනවා. Python වල මේකට ගොඩක් හොඳ Built-in Data Structures ටිකක් තියෙනවා. මේවා AI සහ Data Science වලදී දත්ත organise කරන්න අත්යවශ්යයි.
2.1. Lists: ලැයිස්තු
List එකක් කියන්නේ Ordered (පිළිවෙලකට තියෙන), Changeable (වෙනස් කරන්න පුළුවන්) දත්ත එකතුවක්. Duplicate Values තියාගන්නත් පුළුවන්. Square Brackets ([]
) ඇතුලේ කොමා වලින් වෙන් කරලා Data Elements ලියනවා.
fruits = ["ඇපල්", "කෙසෙල්", "තැඹිලි", "ඇපල්"]
print(fruits) # Output: ['ඇපල්', 'කෙසෙල්', 'තැඹිලි', 'ඇපල්']
print(fruits[0]) # Output: ඇපල් (Index 0 තමයි පළවෙනි Element එක)
fruits.append("අඹ") # අඹ එකතු කිරීම
fruits.remove("කෙසෙල්") # කෙසෙල් ඉවත් කිරීම
print(fruits) # Output: ['ඇපල්', 'තැඹිලි', 'ඇපල්', 'අඹ']
print(len(fruits)) # Output: 4 (List එකේ Elements ගණන)
2.2. Tuples: ටියුපල්
Tuple එකක් කියන්නේ Ordered (පිළිවෙලකට තියෙන), Unchangeable (වෙනස් කරන්න බැරි) දත්ත එකතුවක්. මේවත් Duplicate Values තියාගන්න පුළුවන්. Round Brackets (()
) ඇතුලේ කොමා වලින් වෙන් කරලා Data Elements ලියනවා.
coordinates = (10.0, 20.5, 30.0)
print(coordinates) # Output: (10.0, 20.5, 30.0)
print(coordinates[1]) # Output: 20.5
# coordinates.append(40.0) # මේක Error එකක් දෙනවා, මොකද Tuples වෙනස් කරන්න බෑ!
Tuples විශේෂයෙන් භාවිතා වෙන්නේ වෙනස් වෙන්න ඕන නැති Data Set වලට (උදා: Point එකක Co-ordinates).
2.3. Dictionaries: යතුරු-අගය යුගල (Key-Value Pairs)
Dictionary එකක් කියන්නේ Unordered (පිළිවෙලක් නැති), Changeable (වෙනස් කරන්න පුළුවන්) දත්ත එකතුවක්. මේවා Data ගබඩා කරන්නේ Key-Value Pairs විදිහට. ඒ කියන්නේ, හැම Value එකකටම Unique Key එකක් තියෙනවා. Curly Brackets ({}
) ඇතුලේ Key-Value Pairs ලියනවා.
student = {
"නම": "චාමර",
"වයස": 22,
"උපාධිය": "පරිගණක විද්යාව"
}
print(student) # Output: {'නම': 'චාමර', 'වයස': 22, 'උපාධිය': 'පරිගණක විද්යාව'}
print(student["නම"]) # Output: චාමර (Key එක දීලා Value එක ගන්නවා)
student["වයස"] = 23 # Value එකක් වෙනස් කිරීම
student["ගම් පළාත"] = "ගාල්ල" # අලුත් Key-Value Pair එකක් එකතු කිරීම
print(student) # Output: {'නම': 'චාමර', 'වයස': 23, 'උපාධිය': 'පරිගණක විද්යාව', 'ගම් පළාත': 'ගාල්ල'}
Dictionaries AI වලදී Data Process කරන්න, Configuration Settings තියාගන්න වගේ දේවල් වලට ගොඩක් වැදගත්.
2.4. Sets: කට්ටල
Set එකක් කියන්නේ Unordered (පිළිවෙලක් නැති), Unindexed (Index නැති), Unique Values විතරක් තියාගන්න පුළුවන් දත්ත එකතුවක්. ඒ කියන්නේ Duplicate Values මේකේ තියාගන්න බෑ. Curly Brackets ({}
) ඇතුලේ Values ලියනවා.
unique_numbers = {1, 2, 3, 2, 4}
print(unique_numbers) # Output: {1, 2, 3, 4} (2 එක සැරයක් විතරයි තියෙන්නේ)
unique_numbers.add(5) # Element එකතු කිරීම
unique_numbers.remove(1) # Element ඉවත් කිරීම
print(unique_numbers) # Output: {2, 3, 4, 5}
Sets දත්ත වල තියෙන Unique Values ඉක්මනින් හොයාගන්න, නැත්නම් දත්ත ගොඩක් අතරින් පොදු දේවල් (Intersection) හොයාගන්න වගේ දේවල් වලට භාවිතා කරනවා.
3. Functions: වැඩ පහසු කරගමු
Function එකක් කියන්නේ එක නිශ්චිත කාර්යයක් ඉටු කරන, නැවත නැවත භාවිතා කරන්න පුළුවන් Code Block එකක්. අපි Program එකක් ලියද්දි එකම Code ටික ඕනෑවට වඩා ලියන එක වළක්වා ගන්න Functions භාවිතා කරනවා. මේකෙන් Code එක Clean, කියවන්න පහසු සහ Maintain කරන්න ලේසියි.
3.1. Function එකක් Define කිරීම සහ Call කිරීම
Function එකක් Define කරන්නේ def
Keyword එක භාවිතා කරලා. Function එකේ නම, ඒකට දෙන Parameters (වර්ගල) සහ Function එක කරන කාර්යය ඒක ඇතුලේ ලියනවා.
# Function එකක් Define කිරීම
def greet(name): # name කියන්නේ parameter එකක්
print(f"ආයුබෝවන්, {name}!")
# Function එකක් Call කිරීම
greet("කසුන්") # Output: ආයුබෝවන්, කසුන්!
greet("පියුමි") # Output: ආයුබෝවන්, පියුමි!
3.2. Return Values: Function එකෙන් Output එකක් ලබා ගැනීම
සමහර Functions වලට මොකක් හරි Calculation එකක් කරලා, ඒ Result එක ආපහු දෙන්න පුළුවන්. මේකට return
Keyword එක භාවිතා කරනවා.
def calculate_area(length, width):
area = length * width
return area # Calculation result එක ආපහු දෙනවා
# Function එකෙන් එන Value එක Variable එකක Save කරගැනීම
room_area = calculate_area(5, 7)
print(f"කාමරයේ වර්ගඵලය: {room_area} වර්ග අඩි") # Output: කාමරයේ වර්ගඵලය: 35 වර්ග අඩි
building_area = calculate_area(12, 15)
print(f"ගොඩනැගිල්ලේ වර්ගඵලය: {building_area} වර්ග අඩි") # Output: ගොඩනැගිල්ලේ වර්ගඵලය: 180 වර්ග අඩි
4. Object-Oriented Programming (OOP): සංකීර්ණ දේවල් සරලව
Object-Oriented Programming (OOP) කියන්නේ Program ලියන්න තියෙන විධික්රමයක් (Paradigm එකක්). මේකෙන් Real-world objects වගේ දේවල් Software එක ඇතුලේ නිරූපණය කරන්න පුළුවන්. AI වලදී සංකීර්ණ Models, Data Sets වගේ දේවල් Manage කරන්න OOP ගොඩක් වැදගත් වෙනවා.
4.1. Classes සහ Objects
- Class: Class එකක් කියන්නේ Blueprint එකක් නැත්නම් සැකිල්ලක් (Template) වගේ දෙයක්. මේකෙන් එකම වර්ගයේ Objects හදන්න පුළුවන්.
- Object: Object එකක් කියන්නේ Class එකකින් හදපු Instance එකක්. ඒ කියන්නේ, Blueprint එකෙන් හදපු Actual Item එක.
Class එකකට Attributes (විශේෂාංග - Data) සහ Methods (ක්රියාකාරකම් - Functions) තියෙන්න පුළුවන්.
උදාහරණය: Student Class එකක්
class Student:
# Constructor Method එක - Object එකක් හැදෙනකොට මුලින්ම Run වෙනවා
def __init__(self, name, age, major):
self.name = name # Attribute
self.age = age # Attribute
self.major = major # Attribute
# Method එකක් - Object එකක් මගින් Perform කරන Action එකක්
def introduce(self):
print(f"මගේ නම {self.name}. මට අවුරුදු {self.age}යි. මම {self.major} හදාරනවා.")
def update_major(self, new_major):
self.major = new_major
print(f"{self.name} ගේ ප්රධාන විෂය {self.major} ලෙස update කළා.")
# Student Class එකෙන් Objects හදනවා (Instances)
student1 = Student("සමන්", 20, "පරිගණක විද්යාව")
student2 = Student("නිලූෂා", 21, "ගණිතය")
# Objects වල Methods Call කරනවා
student1.introduce() # Output: මගේ නම සමන්. මට අවුරුදු 20යි. මම පරිගණක විද්යාව හදාරනවා.
student2.introduce() # Output: මගේ නම නිලූෂා. මට අවුරුදු 21යි. මම ගණිතය හදාරනවා.
# Object එකක Attribute එකක් වෙනස් කිරීම
student1.update_major("Artificial Intelligence")
student1.introduce() # Output: මගේ නම සමන්. මට අවුරුදු 20යි. මම Artificial Intelligence හදාරනවා.
මේ Student
Class එකෙන් අපි student1
සහ student2
කියන Objects හැදුවා. ඒ හැම Object එකකටම තමන්ගේම name
, age
, major
කියන Attributes සහ introduce()
, update_major()
කියන Methods තියෙනවා.
OOP මගින් Code එක Modular කරන්න, නැවත භාවිතා කරන්න (Reusability) සහ විශාල Project පහසුවෙන් Manage කරන්න උදව් වෙනවා. AI Frameworks වලදී Models, Layers, Optimizers වගේ දේවල් Class විදිහට Define කරලා තියෙන්නේ මේ OOP Concept එකට අනුවයි.
5. AI සහ LLMs සඳහා Python Ecosystem එක
Python AI සහ LLMs වලට මෙච්චර සුදුසු වෙන්න එක ප්රධාන හේතුවක් තමයි ඒකට තියෙන විශාල Library සහ Frameworks ගණන. මේවා සංකීර්ණ ගණනය කිරීම්, දත්ත විශ්ලේෂණය සහ Machine Learning Models හදන්න අවශ්ය මෙවලම් සපයනවා. මේවා නැතුව AI Project එකක් කරන්න හිතන්නවත් බෑ.
5.1. ප්රධාන Python Libraries සහ Frameworks
- NumPy: Numerical Python කියන්නේ Scientific Computing සඳහා භාවිතා කරන මූලිකම Library එක. විශේෂයෙන් Multi-dimensional Arrays (Matrices) සහ ඒවා මත Perform කරන වේගවත් ගණනය කිරීම් සඳහා NumPy අත්යවශ්යයි. Neural Networks වලට අවශ්ය Calculations වලට මේක පදනම.
- Pandas: Data Analysis සහ Manipulation සඳහා භාවිතා කරන Powerful Library එකක්. Spreadsheets වගේ DataFrames වලින් දත්ත හැසිරවීම, Data Clean කිරීම, Analyze කිරීම වගේ දේවල් පහසුවෙන් කරන්න පුළුවන්. Data Science Project එකක මුලින්ම වැඩ කරන්නේ Pandas එක්ක තමයි.
- Matplotlib / Seaborn: මේවා Data Visualization Libraries. AI Models වල Outputs, Data Patterns වගේ දේවල් Graph, Chart විදිහට පෙන්නන්න මේවා භාවිතා කරනවා. Data Insights හොයාගන්න මේවා වැදගත්.
- Scikit-learn: Machine Learning Algorithms විශාල ප්රමාණයක් තියෙන Library එකක්. Classification, Regression, Clustering වගේ Traditional Machine Learning Tasks වලට මේක ගොඩක් භාවිතා වෙනවා. LLM Pre-processing වලදී සමහර Pre-training Tasks වලටත් මේකේ Algorithms උදව් වෙනවා.
- TensorFlow / PyTorch: මේවා Deep Learning Frameworks. Neural Networks සහ LLMs හදන්න, Train කරන්න සහ Deploy කරන්න මේවා තමයි ප්රධාන වශයෙන් භාවිතා වෙන්නේ. මේවාට GPU Acceleration Support එක තියෙන නිසා සංකීර්ණ ගණනය කිරීම් ඉතා වේගයෙන් කරන්න පුළුවන්. දැනට ලෝකයේ තියෙන ප්රධානම LLMs (GPT, LLaMA වගේ) හදලා තියෙන්නේ මේ වගේ Frameworks භාවිතා කරලා.
- Hugging Face Transformers: LLMs එක්ක වැඩ කරනවා නම් Hugging Face කියන්නේ අත්යවශ්යම Platform එකක්. මේකේ Pre-trained Models, Tokenizers, Training Scripts වගේ දේවල් ගොඩක් තියෙනවා. නවීන LLM Applications හදන්න මේක නැතුවම බෑ.
මේ Libraries සහ Frameworks නිසා Python AI/LLM Development වලට ගොඩක්ම පහසු වෙනවා. ඒවා සංකීර්ණ ගණිතමය කටයුතු සහ දත්ත සැකසීම පහසු කරවනවා, ඒ වගේම Developer කෙනෙක්ට Model Logic එකට වැඩි අවධානයක් දෙන්න ඉඩ සලසනවා.
නිගමනය: ඔයාගේ AI ගමනට සුභ පැතුම්!
හොඳයි යාලුවනේ, මේ ලිපියෙන් අපි Python Programming වල මූලිකම දේවල් ගැන කතා කළා. Variables වලින් පටන් අරන් Data Structures, Functions, Object-Oriented Programming දක්වාම අපි ආවා. අන්තිමට, AI සහ LLM Development වලට අත්යවශ්ය Python Ecosystem එක ගැනත් අපි සාකච්ඡා කළා.
Python වල මේ මූලික කරුණු ටික හරියට තේරුම් ගත්තා නම්, AI, Data Science, Machine Learning වගේ ක්ෂේත්ර වලට පිවිසෙන්න ඔයාට ගොඩක් හොඳ පදනමක් දැන් තියෙනවා. මතක තියාගන්න, Programming කියන්නේ ඉගෙන ගන්නවාට වඩා Practice කරන්න ඕන දෙයක්. මේ Code Snippets ටික ඔයාගේ Computer එකේ Try කරලා බලන්න. අලුතෙන් පොඩි පොඩි Programs ලියලා බලන්න. එතකොට තමයි ඔයාගේ දැනුම වැඩි වෙන්නේ.
AI සහ LLM කියන්නේ ලෝකය වෙනස් කරන තාක්ෂණයන්. ඒ වෙනසට දායක වෙන්න ඔයාටත් දැන් මේ පදනමෙන් පුළුවන්. අනාගතයේදී AI Project වලදී Python කොයිතරම් බලගතුද කියලා ඔයාටම තේරෙයි.
මේ ලිපිය ගැන ඔයාගේ අදහස්, ප්රශ්න පහළින් Comment කරන්න. ඔයාගේ Python/AI ගමනට අපි සුභ පතනවා! 💪