આજના સમયમાં આપણે દરેક જગ્યાએ AI (આર્ટિફિશિયલ ઈન્ટેલિજન્સ) જોઈ જોઈ રહ્યા છીએ! કોઈ એની સાથે વાત કરે છે, કોઈ ફોટો બનાવે છે, વિડિયો edit કરે છે અથવા ગેમ રમે છે! એટલું તો બધા જોઈ રહ્યા છે કે AI કામ કરે છે, પરંતુ મોટાભાગના લોકો માટે એ સવાલ હજી પણ થાય છે, “AI શું છે? એ કેવી રીતે કામ કરે છે? એ કેમ કરીને સાચો જવાબ આપે છે?” લોકો વિચારે છે કે શું AI વિચારતું હશે, શું એ સમજતું હશે, અથવા શું એ માનવ જેવી લાગણીઓ ધરાવે છે! આને સમજવું મહત્વપૂર્ણ છે, ખાસ કરીને એવી વ્યક્તિઓ માટે જેઓ ટેકનીકલ ફિલ્ડમાં નથી!
Part-1 માં આપણે સમજ્યું કે AI ક્યારેય વિચારતું નથી, એને લાગણીઓ નથી, અને એ dataset પરથી pattern અને probability વડે જવાબ આપે છે(વેલ, પહેલો પાર્ટ ન વાંચ્યો હોય તો મારા પ્રોફાઇલમાં મળી જશે)! હવે આપણે વધુ સરળ, સ્ટેપ બાય સ્ટેપ સમજીએ કે AI dataset(ડેટાસેટ)માંથી કેવી રીતે શીખે છે અને Python + CSV ધ્વારા Q&A model કેવી રીતે બનાવી શકીએ!
વેલ, Python(પાયથન, પાયથોન) એક સરળ પ્રોગ્રામિંગ ભાષા છે, જે માણસને સમજવામાં સરળ છે એટલે કે ઘણાં ડેવલપર્સ પાયથનથી જ તેમની જર્ની ચાલું કરે છે(હાં, મારી પણ પહેલી પ્રોગ્રામિંગ લેન્ગવેજ પાયથન જ હતી)!
CSV ફાઇલ એટલે એક સાદી ટેક્સ્ટ ફાઇલ, જેમાં એક પ્રશ્નો અને જવાબો લખેલા હોય છે!
Python અને CSV નો ઉપયોગ કરીને આપણે એક સરળ AI મોડેલ બનાવી શકીએ છીએ, જે પ્રશ્ન પૂછો એટલે જવાબ આપે. આ રીતે AI કેવી રીતે કામ કરે છે એ નોન પ્રોફેશનલ એટલે કે આ ફિલ્ડમાં ન હોય તેવી વ્યક્તિ પણ સમજી શકે છે!
Dataset – AIનું પુસ્તક
AI શીખવા માટે, dataset(ડેટાસેટ) નો ઉપયોગ કરે છે. Dataset એ પુસ્તક જેવું છે, જેમાં લખાણ, ફોટા, અવાજ, વિડિયો, સંખ્યાઓ વગેરે સંગ્રહાયેલું હોય છે! આપણે માનીએ કે બાળક સ્કૂલમાં જાય છે. બાળક શરૂઆતમાં (જન્મના સમયે) કંઈ જાણતું ન જ હોય, પછી ધીમે ધીમે માતા-પિતા પાસેથી બોલવાનું શીખે છે, સ્કૂલમાં ભણે છે, પુસ્તકો વાંચે છે અને લોકો સાથે વાતચીત કરે છે! આ બધું બાળક માટે “ડેટા” છે, જેના પરથી એ શીખે છે!
એ જ રીતે AI માટે dataset એ શીખવાનો પ્રાથમિક સોર્સ છે. બેઝિક ટેક્સ્ટ ડેટાસેટ્સમાં પ્રશ્ન અને જવાબ (Q&A) હોય છે. વધુ એડવાન્સ ડેટાસેટ્સમાં ફોટા, અવાજ, વિડિયો પણ સ્ટોર કરવામાં આવે છે. ટેક્સ્ટ ડેટાસેટ્સ માટે સામાન્ય રીતે CSV ફાઇલનો ઉપયોગ કરવામાં આવે છે!
ઉદાહરણ તરીકે આપણે ટેક્સ્ટ ડેટાસેટ તૈયાર કરીએ જેમાં યુઝર પ્રશ્ન પૂછે છે અને AI તેનો જવાબ આપે છે:
પ્રશ્ન,જવાબ
Col:1.,Col:2
હેલ્લો, હાય! કેમ છો?
તમારું નામ શું છે?, મારું નામ AI છે.
મને સારી બૂક સજેસ્ટ કરો, x, y, z આ બૂક્સના નામ છે.
વિટામિન નો પ્રાકૃતિક સ્ત્રોત, વિટામિન D નો પ્રાકૃતિક સ્ત્રોત સૂર્યપ્રકાશ છે.
હું થાકી ગયો છું, ઊંડો શ્વાસ લો અને મનને શાંત કરો અને આરામ કરો.
Column 1 માં પ્રશ્ન છે અને Column 2 માં જવાબ. AI ડેટાસેટ વાંચીને શીખે છે કે કયા પ્રશ્ન માટે કયો જવાબ યોગ્ય છે. Dataset જેટલો વધુ સુવ્યવસ્થિત અને ગુણવત્તાવાળો હશે, AI વધુ સારી રીતે જવાબ આપી શકશે અને Dataset વગર AI શીખી શકતું નથી!
* Tokenization(ટોકનાઈઝેશન) – પ્રશ્નોનું નાના-નાના ભાગમાં વિભાજન *
જ્યારે તમે AI ને કોઈ સવાલ પુછો છો, ત્યારે AI એ પ્રશ્નને પહેલાં નાના-નાના શબ્દોમાં વિભાજિત કરે છે. તેને Tokenization કહે છે! આ પ્રક્રિયા AI ને દરેક શબ્દને અલગ રીતે ઓળખવા અને વિશ્લેષણ કરવા માટે જરૂરી છે!
અહીં એક નાના એવા પાયથન કોડનું ઉદાહરણ લઈએ
sentence = "વિટામિન સી માટે હું શું ખાઈ શકું?"
tokens = sentence.split()
print(tokens)
આ કોડમાં sentence → આ એક variable(વેરિએબલ) છે. સરળ શબ્દોમાં કહીએ તો variable એ કંટેનર છે, જેમાં આપણે લખાણ (text) સ્ટોર કરી રહ્યા છીએ. અહીં "sentence" વેરિએબલમાં "વિટામિન સી માટે હું શું ખાઈ શકું?" લખાણ સ્ટોર થયેલું છે.
split() → આ ફંકશન એ variable માંના વાક્યને નાના શબ્દોમાં (words) વિભાજિત કરે છે. એટલે "વિટામિન સી માટે હું શું ખાઈ શકું?" અલગ અલગ શબ્દોમાં વહેંચાય છે: "વિટામિન", "સી", "માટે", "હું", "શું", "ખાઈ", "શકું?".
tokens → આ અન્ય એક variable છે જે વિભાજિત શબ્દો (words list) ને સંગ્રહ કરે છે. એટલે split() કર્યા પછી બધાં શબ્દો "sentence" વેરિએબલ માંથી "tokens" વેરિએબલમાં સેવ થાય છે.
print(tokens) → આ કમાન્ડ એ "tokens" વેરિએબલમાં સંગ્રહ કરેલા શબ્દોને દર્શાવે છે. એટલે નીચે મુજબ output(અથવા પરિણામ) મળશે:
આઉટપુટ:
['વિટામિન', 'સી', 'માટે,', 'હું', 'શું', 'ખાઈ', 'શકું?']
AI એ દરેક શબ્દને ઓળખીને તેને numbers (અંક) માં ફેરવે છે. આ રીતે, મશીન(AI) એ ટેક્સ્ટ ડેટાને ગણિતીય રીતે વિશ્લેષણ કરી ત્યારબાદ AI ડેટાસેટના પેટર્ન સાથે મેળવે છે અને probability(સંભાવના) મુજબ શબ્દોને જોડી યોગ્ય જવાબ તૈયાર કરે છે!
* Pattern(પેટર્ન) અને Probability(સંભાવના)– AI કેવી રીતે જવાબ પસંદ કરે છે. *
AI datasetમાં patterns ઓળખી લે છે. માનો datasetમાં
સવાર → ચા પીવી
બપોર → ભોજન
સાંજ → વિડીયો જોવો
સવાર → નાસ્તો કરવો
બપોર → ભોજન
સાંજ → નાસ્તો કરવો
AI આ data જોઈને શીખે છે:
“સવાર” પછી સૌથી વધારે “ચા પીવી” આવવાની સંભાવના છે
“બપોર” પછી “ભોજન” આવવાની સંભાવના વધારે છે
“સાંજ” પછી “વિડીયો જોવો” કે “નાસ્તો કરવો” આવે
આને pattern કહેવાય છે, જે વારંવાર રિપીટ થાય છે!
હવે આને પણ એક પાયથન કોડ ધ્વારા સમજીએ:
from collections import Counter
activities = ["ચા પીવી", "ભોજન", "વિડીયો જોવો", "નાસ્તો કરવો", "ચા પીવી", "ભોજન", "નાસ્તો કરવો"]
count = Counter(activities)
print(count)
activities -> બધી એક્ટિવિટી આ વેરિએબલમાં સ્ટોર છે!
collections -> પાયથન લાયબ્રેરી છે!
Counter(activities) -> પાયથન ટૂલ છે, જે ગણતરી કરે છે કેટલી વખત કઈ એક્ટિવિટી આવી છે.
count -> વેરિએબલ માં રિઝલ્ટ સ્ટોર થાય છે.
print(count) -> output બતાવે છે.
આઉટપુટ:
Counter({'ચા પીવી': 2, 'ભોજન': 2, 'વિડીયો જોવો': 1, 'નાસ્તો કરવો': 2})
ચા પીવી” 2 વખત આવી -> AI શીખે છે કે “સવાર” પછી “ચા પીવી” આવવાનું શકય છે
“ભોજન” 2 વખત આવી -> AI જાણે છે કે “બપોર” -> “ભોજન”
આમ, AI કઈ એક્ટિવિટી/શબ્દ વધુ વખત થાય છે તે ઓળખી, datasetમાંથી pattern શીખે છે! પછી probability જોઈને એક બાદ એક શબ્દો ગોઠવીને જવાબ તૈયાર કરે છે. આ એ જ AIના નિર્ણય લેવાની પ્રક્રિયા છે, જેમાં વિચાર નથી, માત્ર pattern + probability પર આધાર રાખે છે!
આપણે પાયથન લેન્ગ્વેજમાં એક નાનું અને સિમ્પલ AI model બનાવીએ, જે dataset વાંચી શકે અને પ્રશ્નોના જવાબ આપે.
સૌથી પહેલાં આપણે એક CSV Dataset તૈયાર કરીશું જેને આપણે – qa_dataset.csv નામ આપીએ.
question,answer
ભારતના પ્રથમ રાષ્ટ્રપતિ કોણ હતા?,ડૉ. રાજેન્દ્ર પ્રસાદ
ગણિતનો સૌથી મહત્વનો કન્સેપ્ટ શું છે?,સંખ્યા અને ગણિતીય ઓપરેશન્સ
પ્રથમ વૈશ્વિક યુદ્ધ ક્યારે શરૂ થયું?,1914
Dataset એ એક બૂક છે અને AI એ આમાંથી શીખે છે કે કયો પ્રશ્ન માટે કયો જવાબ યોગ્ય છે! ડેટાસેટ્સમાં અબજોની સંખ્યામાં વિવિધ પ્રકારના ડેટા સ્ટોર કરવામાં આવે છે
હવે એક રીયલ પાયથન કોડ લખીએ જે યુઝરના સવાલના જવાબ આપશે!
*કોડ*
import pandas as pd
# CSV load
# CSV ફાઇલ માંથી પ્રશ્ન-જવાબ load કરવા માટે
data = pd.read_csv("qa_dataset.csv")
# પ્રશ્નના આધારે જવાબ મેળવવા માટે
def get_answer(user_question):
# દરેક રો ની ચકાસણી માટે!
for i in range(len(data)):
if data['question'][i] == user_question:
return data['answer'][i]
# જો match ન મળે તો fallback message(fallback)
return "sorry, I am currently unable to answer your question"
# Chat loop
print("Welcome to the Q&A Chatbot! Type 'bye' to exit.")
while True:
user_input = input("You: ")
if user_input.lower() in ["bye", "bye!"]:
print("AI: Goodbye! See you again.")
break
reply = get_answer(user_input)
print("AI:", reply)
આપણે કોડ સમજીએ!
CSV Load
pd.read_csv("qa_dataset.csv") -> CSV ફાઇલ ખોલીને બધા પ્રશ્નો અને જવાબો ટેબલ જેવા ફોર્મેટમાં ગોઠવે છે.
હવે AI પાસે દરેક રો માં પ્રશ્ન + જવાબ ઉપલબ્ધ છે.
def get_answer(user_question) -> એ એક ફંકશન છે જે કોઈ ખાસ કામ કરવા માટે વારંવાર ઉપયોગમાં લેવાય છે.
user_question -> યુઝર જે પ્રશ્ન લખે છે.
ત્યારબાદ ફંકશનની અંદરનો Loop -> dataset માં દરેક રો ને ચેક કરે છે.
જો dataset માં match(મેચ) મળે તો ફંકશન જવાબ return કરે છે
જો dataset match ન મળે તો function fallback message આપે છે: "sorry, I am currently unable to answer your question"
Chat Loop
while True: -> જ્યાં સુધી તમે રોકો નહીં, ત્યાં સુધી AI સાંભળતું રહેશે એટલે કે લૂપ રન થતું રહેશે!
input("You: ") -> user નો સવાલ લે છે.
if user_input.lower() in ["bye", "bye!"]: -> exit condition, એટલે કે, AI એકઝિટ એટલે કે બંધ થશે!
reply = get_answer(user_input) -> AI તમારા પ્રશ્નને પોતાના ડેટાસેટ માંના ડેટા સાથે સરખાવે છે અને જવાબ આપે છે!
print("AI:", reply) -> જવાબ આપણને સ્ક્રીન પર જોવા મળે છે!
આપણે કોડ રન કરીએ!
User: “ભારતના પ્રથમ રાષ્ટ્રપતિ કોણ હતા?”
AI: “ડૉ. રાજેન્દ્ર પ્રસાદ”
User: “ગણિતનો સૌથી મહત્વનું કન્સેપ્ટ શું છે?”
AI: “સંખ્યા અને ગણિતીય ઓપરેશન્સ”
User: “પ્રથમ વૈશ્વિક યુદ્ધ ક્યારે શરૂ થયું?”
AI: “1914”
User: “bye”
AI: “Goodbye! See you again."
(અહીં જે કોડ લખ્યો છે અને રન કર્યો છે એ ખૂબ જ બેઝિક છે, એડવાન્સ નથી અને માતૃભારતીમાં વાંચતાં કોડની ફોર્મેટ અસ્તવ્યસ્ત હોઈ શકે છે!)
માણસ અને AI બંને અલગ છે!
માણસ પાસે બુદ્ધિ છે, લાગણીઓ છે અને વિચારવાની શક્તિ છે. માણસ કોઈ પરિસ્થિતિ જોઈને વિચાર કરે છે, સારા–ખરાબનો વિચાર કરે છે, અનુભવમાંથી નવું શીખે છે અને પોતે નિર્ણય લે છે. માણસ પોતાની ભૂલોથી શીખે છે અને આગળ વધારે સમજદાર બને છે!
AI ને લાગણી નથી, સમજ નથી અને પોતાનો વિચાર નથી! AI ફક્ત એને જે ડેટા આપવામાં આવે છે, એ ડેટાને જોઈને કામ કરે છે! એ ડેટામાંથી સમાન શબ્દો, વાક્યો અને પેટર્ન શોધે છે. પછી ગણતરી કરીને નક્કી કરે છે કે કયો જવાબ વધારે શક્ય છે અને એ જવાબ આપે છે!
સરળ શબ્દોમાં કહીએ તો:
માણસ “વિચાર કરીને” જવાબ આપે છે,
AI “જોઇને અને ગણતરી કરીને” જવાબ આપે છે!
નિર્ણય લેવાનું કામ હજી પણ માણસનું જ છે! AI ફક્ત માણસને મદદ કરવા માટે બનાવેલું એક સાધન છે! AI માણસ જેવી લાગણી રાખી શકતું નથી. માણસ જે રીતે સર્જનાત્મકતા કરે છે, નવી કલ્પના કરે છે અને તર્ક કરે છે, એ શક્તિ AI પાસે નથી!
AI માણસની બુદ્ધિનું પ્રતિબિંબ છે, પણ માણસ જેવી સ્વતંત્ર વિચારશક્તિ AI પાસે નથી!