મુખ્ય વિષય-સામગ્રી પર જાવો
OpenAI

8 ડિસેમ્બર, 2022

Discovering the minutiae of backend systems

Person gazing across the room with an optimistic expression

Photo: Jake Stangel

લોડિંગ…

ઇન્જિનિયરિંગમાં તમારી પ્રથમ રસ કેવી રીતે જાગી?

સદભાગ્યે મને નાની ઉંમરે પ્રોગ્રામિંગ મળ્યું અને મેં તેને અન્ય વિષયો શોધવા માટેના પ્રવેશદ્વાર તરીકે ઉપયોગ કર્યો. મધ્ય શાળામાં, એક મિત્રએ મને Texas Instruments કેલ્ક્યુલેટરમાં સમાવાયેલ BASIC પ્રોગ્રામિંગ ભાષાના ખાસ સ્વરૂપથી પરિચિત કરાવ્યો. પ્રોગ્રામ દીઠ 27 એક-અક્ષરી વેરિએબલની મર્યાદા અને GOTO સ્ટેટમેન્ટ્સ પર ભારે નિર્ભરતા હોવાને કારણે મારો કોડ સહજ રીતે જાળવવા મુશ્કેલ હતો. છતાં પણ, અમે લખાણ આધારિત એડવેન્ચર ગેમ્સ, જોડાયેલા કેલ્ક્યુલેટર્સ માટે ચેટ એપ અને સામાન્ય ક્વાડ્રેટિક ફોર્મ્યુલા સહાયક જેવા કેટલાક સરળ પ્રોગ્રામ્સ બનાવ્યા.

પછી મેં વધુ જટિલ પ્રોગ્રામ્સ લખ્યા: Newton’s method સમજાવવા માટેનું દૃશ્ય સહાયક અને ગ્રહો તથા તેમના ચંદ્રોની સ્થિતિ અંદાજવા માટેનો ઓર્બિટ કેલ્ક્યુલેટર, જેણે મારી શાળાના Linux ક્લબનું ધ્યાન ખેંચ્યું. ટૂંક સમયમાં હું મારા લેપટોપના CardBus આધારિત WiFi એડેપ્ટરને ચલાવવા NDISwrapper સાથે અથડાતો હતો અને Compizથી મારી ડેસ્કટોપ વિન્ડોઝને ઝગમગાવી રહ્યો હતો. કોડ મારફતે શોધખોળનો એ ધોરણ હાઈસ્કૂલ અને તે પછી પણ ચાલુ રહ્યો, જે આજે મારા ઇન્જિનિયરિંગ રસનું કારણ બન્યો.

તમે OpenAIમાં આવવાનો નિર્ણય શા માટે કર્યો?

મારી છેલ્લી નોકરીમાં હું બેકએન્ડ ભૂમિકાથી ફુલ-સ્ટેક પોઝિશનમાં ગયો હતો, પરંતુ પછી મને ફ્રન્ટએન્ડ કામ અને UX ડિઝાઇન પ્રત્યે અણગમો થયો. હું બેકએન્ડ સિસ્ટમ્સને વધુ નજીકની ભૂમિકામાં પાછો જવા માગતો હતો અને શૈક્ષણિક ક્ષેત્રમાં જે Linux પર્યાવરણ સાથે કામ કરવાનું મને ગમતું હતું તેની પણ ખોટ અનુભવતો હતો. OpenAIએ મને જે પ્રકારનો કામમાં બદલાવ જોઈએ હતો તે આપ્યો અને તેની સાથે વધુ પણ. OpenAIના સુપરકમ્પ્યુટિંગ ક્લસ્ટર્સ પર કામ કરવું જેટલું યોગ્ય મળે એવી જગ્યા શોધવી મુશ્કેલ છે.

અહીં OpenAIમાં તમે કઈ સમસ્યાઓ ઉકેલવા પર ધ્યાન કેન્દ્રિત કરો છો?

એક્સપ્લોરેટરી AI વર્કફ્લોઝ મૂળભૂત રીતે ઝડપી ગતિવાળા હોય છે. સંશોધકો arXiv પરથી પ્રિપ્રિન્ટ લઈ નવી પદ્ધતિઓ અજમાવી શકે એવું ઇચ્છે છે, તે પણ તેમના કોડ જે પ્લેટફોર્મ પર લોન્ચ થાય છે તેનાથી અટકાવાયા વગર. આ વર્કફ્લોઝ અતિ જટિલ પણ હોય છે, જેમાં સંશોધકો ગણિતજ્ઞોની જેમ વર્તે છે. તેઓ તેમના કારકિર્દી દરમિયાન બનાવેલી આંતરિક સમજ પર આધાર રાખીને આ અઠવાડિયે તેમની નજરે ચઢેલી સમસ્યાનું ઉકેલ ડિઝાઇન કરે છે. આ રનટાઇમ્સ વિશ્વના કેટલાક સૌથી મોટા સુપરકમ્પ્યુટરો પર ચાલી રહ્યા છે, જે જટિલતાનું વધુ એક સ્તર ઉમેરે છે, અને આ અંતિમ પૂર્વ સ્તરને સંભાળવામાં મારી ટીમ જોડાય છે. અમે સંશોધનની જરૂરિયાતો પ્રગતિ અટકાવે તે પહેલાં જ તેને ઓળખીને તૈયારી કરીએ છીએ અને જો એવું ન બને તો સંશોધન ટીમો સાથે મળીને બોટલનેક્સ ઓળખીએ છીએ અને શક્ય તેટલી ઝડપથી workaround અમલમાં મૂકીએ છીએ.

Person sitting at a cafeteria table with a glass of water and closed laptop

Photo: Jake Stangel

OpenAIમાં સુપરકમ્પ્યુટિંગ પર કામ કરવું અન્ય જગ્યાથી શું જુદું બનાવે છે?

અમે જે વ્યાપક સ્તરે કામ કરીએ છીએ તે સાચું કહું તો આશ્ચર્યજનક છે. તૃતીય-પક્ષ હાર્ડવેર વિક્રેતાઓ ઘણીવાર સ્વીકાર કરે છે કે અમે એવી સમસ્યાઓનો સામનો કરી રહ્યા છીએ જે તેમણે પહેલાં ક્યારેય જોઈ નથી. ઘણી વખત એ ફક્ત એટલા માટે હોય છે કે અમારા ઇન્સ્ટોલેશન્સમાં તેમના અન્ય ક્લાયન્ટ્સ કરતાં એક જ સાતત્યપૂર્ણ સુપરકમ્પ્યુટરમાં વધુ હાર્ડવેર ગોઠવાયેલું હોય છે, જોકે ક્યારેક તે અમારી પ્રદર્શન અપેક્ષાઓનું પરિણામ પણ હોય છે. મોટાભાગની મોડલ તાલીમ પદ્ધતિઓના સમન્વિત સ્વભાવને કારણે એવી ગોઠવણી બને છે કે આખું ક્લસ્ટર અસરકારક રીતે સૌથી ધીમા નોડની ગતિએ ચાલે છે.

અમારા સૌથી મુખ્ય મોડલો અબજ-ડોલરના સુપરકમ્પ્યુટરો પર તાલીમ પામે છે, અને પરિણામે અમે એવા પ્રદર્શન ઘટાડાનો પીછો કરીએ છીએ જેને મોટા ભાગના લોકો અવગણે. મુખ્ય kernelમાં એક લાઇનનો બદલાવ પહોંચે અને ખબર હોય કે તે અમારા સમગ્ર fleetમાં દર અઠવાડિયે અંદાજે 6 દિવસ જેટલો compute સમય બચાવશે, અથવા નવા driver releaseમાં કોઈ લાઇન આઇટમ જોઈને ખબર પડે કે તે fix upstream સુધી પહોંચાડવામાં અમારી શોધોમાંથી એક કારણભૂત હતી, તે જોવું અત્યંત રોમાંચક છે.

તમારા માટે OpenAIમાં એક સામાન્ય દિવસ કેવો હોય છે?

મારા દિવસો સામાન્ય રીતે કોડ પર કામ, સમસ્યાઓની તપાસ અને મીટિંગોમાં હાજરીના મિશ્રણથી બનેલા હોય છે. મંગળવારે મીટિંગોનો પ્રભાવ વધુ રહે છે. સદભાગ્યે સામાન્ય રીતે માત્ર મંગળવારે જ. અઠવાડિયાનો બાકી ભાગ ડિબગિંગ અને કોડિંગ વચ્ચે વહેંચાય છે. ઓળખાયેલી સમસ્યાઓ સામાન્ય રીતે કોડિંગ કામમાં ફેરવાય છે, જેમ કે ડિઝાઇન ડોક લખવું, PR બ્રાન્ચમાં ઝડપી હોટફિક્સ પુશ કરવું અથવા ખોટું વર્તન કરતું હાર્ડવેર અમારા ક્લસ્ટર્સથી દૂર રાખવા માટે passive health check logic ઉમેરવું.

સમસ્યાઓમાં ઊંડે ઉતરવા થોડું ગૂઢ તપાસનું કામ કરવું પડે છે. સંશોધન પરનો પ્રભાવ અસ્પષ્ટથી લઈને ડરામણી રીતે ચોક્કસ સુધી હોઈ શકે છે. જેમ કે “મારું કામ ગઈકાલ કરતાં ધીમું ચાલે છે” થી લઈને “મને લાગે છે કે જો હું Ethernet NIC પર 30Gbpsથી વધુ પુશ કરું, તો kernel panic થાય છે?” સુધી. આ સંમિશ્રણ કદાચ ઓળખાણનું લાગે. જે દિવસો અપેક્ષા મુજબ પસાર થાય તેમાં ઉત્પાદકતા રહે છે, અને જ્યારે અપેક્ષિત ક્રમ ભંગાય અને કંઈક નવું શીખવાની તક મળે ત્યારે ઉત્તેજનાનો અનુભવ થાય છે.

“OpenAI એવી તક આપે છે કે જ્યાં કમ્પ્યુટિંગના અન્યત્ર અવગણાયેલા પાસાંમાં ઊંડે સુધી ઉતરી શકાય.”

તમને દરરોજ શું ઊર્જાવાન બનાવે છે?

હું ભાગ્યે જ કામ પર એ રીતે આવું છું કે મનમાં કરવાનું કોઈ અગત્યનું કામ ન હોય. અને સામાન્ય રીતે મને ખબર હોય છે કે કોઈ કાર્ય સમયસર પૂરું થવાથી કઈ ચોક્કસ ટીમ, પ્રોજેક્ટ અને સંશોધકોને ફાયદો થશે. OpenAI એ અત્યાર સુધીનું સૌથી મોટું કાર્યસ્થળ છે જ્યાં મેં કામ કર્યું છે, અને મારા કામના પ્રભાવની તરત જ અનુભૂતિ થવી મારી રોજિંદી પ્રેરણા માટે ખૂબ મહત્વપૂર્ણ છે. સિસ્ટમ્સની સૂક્ષ્મ વિગતો શોધવામાં પણ મને ખાસ આનંદ આવે છે. OpenAI એ પહેલી જગ્યા નથી જ્યાં મેં બેકએન્ડ સિસ્ટમ્સ પર કામ કર્યું છે, પરંતુ HPC ક્ષેત્રમાં કામ કરવાનો આ મારો પ્રથમ અનુભવ છે.

અમે જે ટેક્નોલોજીઓ સાથે કામ કરીએ છીએ તે ઘણી વખત માત્ર આ ક્ષેત્રની વિશિષ્ટ પ્રદર્શન-ચિંતાઓને કારણે અસ્તિત્વમાં છે. અગાઉના નોકરીદાતાઓ પાસે મને અમારા હાર્ડવેરની ભૌતિક ટોપોલોજીની ચિંતા કરવાની જરૂર નહોતી. ઉદાહરણ તરીકે, સંચાર એ જ NUMA ડોમેનમાં થાય તેની ખાતરી કરવી, અથવા GPU Nvidiaના GPUDirect મારફતે સહ-સ્થિત NVME અથવા InfiniBand ડિવાઇસનો ઉપયોગ કરે તેની ખાતરી કરવી, અથવા સિસ્ટમ પ્રક્રિયાઓને ચોક્કસ CPU પર પિન કરવી જેથી સંશોધન રનટાઇમ્સ સાથે noisy neighbor સંઘર્ષ ટાળી શકાય. OpenAI એવી તક આપે છે કે જ્યાં કમ્પ્યુટિંગના અન્યત્ર અવગણાયેલા પાસાંમાં ઊંડે સુધી ઉતરી શકાય, અને આ જ મને હાથમાં રહેલા કામમાં રસ જાળવી રાખે છે.

તમને પ્રેરણા ક્યાંથી મળે છે?

અમારી સંશોધન ટીમો તેમના મોડલોને સુધારવામાં પ્રગતિ કરતી જોવા જેટલું પ્રેરણાદાયક કંઈ નથી. ઘણી ટીમો Slack બોટ્સ અથવા સરળ પ્લેગ્રાઉન્ડ્સ ગોઠવે છે જ્યાં તમે હજી વિકાસ હેઠળના મોડલો સાથે ક્રિયા કરી શકો અને તેમને અજમાવી શકો, જેથી તાલીમ ચાલુ રહે ત્યારે મોડલો કેવી રીતે સુધરે છે તે જોઈ શકાય.

હું અમારા વિવિધ Slack ચેનલોમાંથી પ્રેરણાદાયક અથવા ઉત્સાહજનક સામગ્રીને ટૅગ કરવા લોકપ્રિય :meow_party: Slackmoji પણ વાપરું છું. મેં 2020ના મધ્યમાં જોડાયા ત્યારથી, મારી પાસે :meow_party: ટૅગવાળી 400થી વધુ પોસ્ટ્સ છે, એટલે સરેરાશ દર અઠવાડિયે લગભગ 4.