paint-brush
Salesforce Developer sizning mashinangizda mahalliy ishlaydigan LLM yordamchisini yarataditomonidan@akutishevsky
Yangi tarix

Salesforce Developer sizning mashinangizda mahalliy ishlaydigan LLM yordamchisini yaratadi

tomonidan Anton Kutishevsky
Anton Kutishevsky HackerNoon profile picture

Anton Kutishevsky

@akutishevsky

Do this, do that.

7 min read2025/03/17
Read on Terminal Reader
Read this story in a terminal
Print this story
tldt arrow
uz-flagUZ
Bu hikoyani o'zbek tilida o'qing!
en-flagEN
Read this story in the original language, English!
ru-flagRU
Прочтите эту историю на русском языке!
tr-flagTR
Bu hikayeyi Türkçe okuyun!
es-flagES
Lee esta historia en Español!
ja-flagJA
この物語を日本語で読んでください!
ay-flagAY
¡Aka sarnaqäw aymar arun ullart’apxam!
cs-flagCS
Přečtěte si tento příběh v češtině!
xh-flagXH
Funda eli bali ngesiXhosa!
tl-flagTL
Basahin ang kwentong ito sa Filipino!
sw-flagSW
Soma hadithi hii kwa kiswahili!
fi-flagFI
Lue tämä tarina suomeksi!
ka-flagKA
წაიკითხეთ ეს ამბავი ქართულად!
UZ

Juda uzoq; O'qish

Men Salesforce Lightning veb-komponentini yaratdim, bu sizga Salesforce ichida to'g'ridan-to'g'ri kompyuteringizda kuchli AI til modellarini (LLM) ishlatish imkonini beradi. U Pico LLM texnologiyasidan maʼlumotlarni mahalliy darajada qayta ishlash, maʼlumotlaringizni xavfsiz saqlash va tezkor javob berish uchun foydalanadi. Siz undan elektron pochta xabarlarini yaratish, kontent yozish, mijozlar ma'lumotlarini tahlil qilish va boshqalar uchun tashqi xizmatlarga tayanmasdan foydalanishingiz mumkin. Ko'proq ma'lumot olish uchun demo video va GitHub repo-ni tekshiring!
featured image - Salesforce Developer sizning mashinangizda mahalliy ishlaydigan LLM yordamchisini yaratadi
Anton Kutishevsky HackerNoon profile picture
Anton Kutishevsky

Anton Kutishevsky

@akutishevsky

Do this, do that.

Men Salesforce ichidagi mahalliy LLMlar bilan tajriba o'tkazdim va natijada men ishlab chiqqan komponent haqida aytib bermoqchiman. U kontekst uchun Salesforce yozuvlaridan foydalanadigan allaqachon tanish chat interfeysiga ega. U sizning kompyuteringizda mahalliy ishlaydi, shuning uchun qayta ishlangan ma'lumotlar hech qanday uchinchi tomon xizmatiga yuborilmaydi.


Agentforce-ning kiritilishi menga komponentni ishlab chiqishga ta'sir qildi. Agentforce agentlardan foydalanadi - qarorlar qabul qiladigan va turli xil harakatlarni amalga oshiradigan tizimlar. Yordamchilar, aksincha, ma'lumotni faqat reaktiv tarzda qayta ishlaydilar. Pico LLM yordamida mahalliy agent yaratish mumkinligiga ishonsam ham, bu juda katta kuch talab qiladi. Shunday qilib, men o'rniga yordamchi ishlab chiqishga qaror qildim.


Xususiyatlari

LLM ishlashini kutganingizdek, u har qanday mavzu bo'yicha javoblarni yaratadi, chunki u juda ko'p ma'lumotlar to'plamida oldindan o'rganilgan. Bundan tashqari, u qo'shimcha kontekst uchun Salesforce yozuvlaridan foydalanishi mumkin. Komponentning xususiyatlari quyidagilardan iborat:


  • Bir nechta modellarni qo'llab-quvvatlaydi. Gemma, Llama yoki Phi kabi Pico veb-saytidagi har qanday ochiq kodli modeldan foydalanish mumkin. Bu erda yagona cheklov - bu sizning kompyuteringizdagi RAM miqdori. Model qanchalik og'ir bo'lsa, u shunchalik ko'p RAM iste'mol qiladi.
  • Bitta yozuv bilan ishlaydi. Komponent yozuvlar sahifasiga joylashtirilganida, u kontekst uchun yozuvga kirish imkoniyatiga ega bo'ladi. Masalan, Hisob qaydnomasi tafsilotlari sahifasida bo'lgan holda, u maydon qiymatlari asosida javob yaratishi mumkin.
  • Tegishli yozuvlarni qo'llab-quvvatlaydi. Yozuvda tegishli yozuvlar bo'lsa, komponent ularni so'rashi va javoblarga qo'shishi mumkin.
  • Sozlanishi mumkin. Komponentni konfiguratsiya qalqib chiquvchi oynasi yordamida tezda sozlash mumkin. Bu tugallanish belgisi chegarasi, harorat va yuqori P kabi avlod parametrlarini o'zgartirish imkonini beradi.

Bu qanday ishlaydi

Yakuniy foydalanuvchi nuqtai nazaridan, jarayon oddiy. Siz modelni yuklaysiz, tizim so'rovini tanlaysiz, yozuvlarni tanlaysiz, foydalanuvchi so'rovini yozasiz va yaratilayotgan natijaga qaraysiz.

Pico LLM nima?

Brauzerda LLMlarni ishga tushirish modelning o'lchami, tarmoqli kengligi talablari va RAM ehtiyojlari tufayli resurs talab qiladigan vazifadir. Shu sababli, Pico jamoasi o'zlarining picoLLM Compression texnikasini ishlab chiqdilar, bu esa kompyuterlar uchun mahalliy LLMlardan foydalanishni ancha samarali qiladi. Ular picoLLM Inference Engine-ni JavaScript SDK sifatida taqdim etdilar, bu esa front-end ishlab chiquvchilarga LLM-larni brauzerlar bo'ylab mahalliy ravishda ishga tushirishga imkon beradi. U Chrome, Safari, Edge, Firefox va Opera kabi barcha zamonaviy brauzerlarni qo'llab-quvvatlaydi. picoLLM Inference Engine qanday ishlashi haqida ko'proq bilish uchun siz ularning maqolasini o'qishingiz mumkin.

LWC qismi

Komponent foydalanuvchi va PicoLLM interfeysi o'rtasida ko'prik bo'lib xizmat qiladi. Komponentning asosiy qismida iframe sifatida o'rnatilgan Visualforce sahifasi joylashgan. Sahifa PicoLLM SDK-ni yuklaydi va LWC bilan aloqa o'rnatadi, bu esa oxirgi SDK-dan xabarlar orqali foydalanishga imkon beradi. Elementlarning butun kombinatsiyasi quyidagilarni bajaradi:


  • Model yuklanmoqda. LWC da siz tanlagan modelni yuklash imkonini beruvchi tugma mavjud. U iframe ichida yashiringan fayl kiritish elementini ishga tushiradi. Model yuklangandan so'ng, Pico SDK veb-ishchilarni yaratadi va komponent foydalanuvchi kiritishini qayta ishlashga tayyor.
  • Tizim so'rovini o'rnatish. Har safar tizim so'rovini yozishingiz shart emas, System_Prompt__c ob'ektining istalgan saqlangan yozuvini tanlash oson. Tugmani bosgandan so'ng, u mavjud tizimni tanlashni taklif qiladigan qalqib chiquvchi oynani ko'rsatadi.
  • Foydalanuvchi kiritish qabul qilinmoqda. Foydalanuvchi ma'lumotlarini yig'ish uchun o'lchamini o'zgartirish mumkin bo'lgan matn maydoni mavjud. Yigʻilganda u iframeʼga foydali yuk sifatida yuboriladi va suhbatlar tarixiga qoʻshiladi.
  • Salesforce yozuvlariga kirish. Ikkita tugma mavjud: Maydonlarni tanlang va Tegishli yozuvlarni tanlang. Birinchisi, LWC joylashgan yozuv sahifasida yozuvning maydon qiymatlarini to'playdi. Ikkinchisi sizga tegishli ob'ektni tanlash va tanlangan maydon qiymatlari bilan birga uning yozuvlarini so'rash imkonini beradi. Ushbu ma'lumot iframe-ga foydali yuk sifatida ham yuboriladi.
  • Ishlab chiqarish variantlarini o'zgartirish. Agar so'ralsa, tugatish belgisi chegarasi, harorat va yuqori P parametrlari komponentdagi maxsus tugma orqali o'zgartirilishi mumkin. Ushbu ma'lumot iframe-ga foydali yuk sifatida ham yuboriladi.
  • Natija hosil qilish. Iframe foydali yukni qabul qilganda, yuklangan modeldan foydalanish va natijani yaratish uchun Pico SDK dan foydalanadi. Agar ishlab chiqarish variantlari taqdim etilgan bo'lsa, ular hisobga olinadi. Bundan tashqari, dialog har safar yangilanadi, shuning uchun LLM uning tarixini eslab qoladi.
  • Chat xabarlarini ko'rsatish. LWC foydalanuvchi tomonidan taqdim etilgan chiquvchi xabarlarni ko'rsatishi mumkin. Yaratilgan javobni o'z ichiga olgan kiruvchi xabarlar, komponent foydalanuvchiga aytadigan gaplari bo'lganidan keyin dinamik ravishda taqdim etiladi. Yaratilgan natijalar yoki ma'lumot va xato xabarlari kabi.

Bir oz Apex kodi

Ishlarning orqa tomonida hech qanday ajoyib narsa yo'q. Apex kodi yozuvlar sahifasidagi yozuv identifikatori yordamida ob'ektlar orasidagi munosabatlarni aniqlash bilan bog'liq barcha og'ir ishlarni bajaradi. Bundan tashqari, u bir nechta SOQL so'rovlarini bajaradi va shu bilan uning vazifasi shu erda bajariladi.

Rivojlanish muammolari

Veb ishchilari

Ilgari men LWC komponentidagi tugun modulidan kodni bajarish uchun unpkg vositasidan foydalanganman. Ushbu yondashuv qo'shimcha konfiguratsiya bosqichlariga olib keldi va uni ishlashning kamroq xavfsiz usuli edi. Bu safar men PicoLLM modulini to'g'ridan-to'g'ri Salesforce-dan va nafaqat ilgari qilgan Experience Cloud saytidan, balki Lightning Experience interfeysidan ham amalga oshirmoqchi bo'ldim.


Qopqoq ostida PicoLLM veb ishchilarini parallel ishlov berish uchun ishlatadi va bu asosiy muammo edi, chunki ularni LWCdan ishga tushirishga ruxsat berilmagan. Yaxshiyamki, hech kim bizga Visualforce sahifasidan veb ishchilarni ishga tushirishga ruxsat berishdan bosh tortdi va bu men qo'llagan yondashuv edi.


Men xom PicoLLM kodini yuklab oldim va uni visualforce sahifasiga statik manba sifatida qo'shdim. LWCda men Visualforce sahifasini o'z ichiga olgan iframe-dan foydalanardim. LWC va iframe ichidagi sahifa o'rtasidagi aloqa menga veb ishchilaridan foydalanishga imkon berdi. Sahifa Lightning veb komponentidan PicoLLM bilan bog'liq kodni ishga tushiradi.

Kontekst uchun Salesforce yozuvlaridan foydalanish

Salesforce yozuvlarini JSON yoki CSV formatida nusxalash va joylashtirish, uni istalgan onlayn LLMga tashlang va tomosha qiling. U yozuvlarni iste'mol qiladi, ularni qo'shimcha kontekst uchun ishlatadi va javob hosil qiladi. Mahalliy ishlov berish uchun siqilgan modellardan foydalanish unchalik oson emasligi ma'lum bo'ldi.


Avvaliga men oddiygina yozuvlarni JSON formatida foydalanuvchi so'roviga qo'ydim. Keyin men taklifni men taqdim etgan qo'shimcha kontekstdan ajrata oladigan darajada aqlli bo'lishini kutdim. Men har xil o'lchamdagi turli modellardan foydalandim va nima uchun javoblarni yaratish uchun JSON dan foydalanmayotganini tushunmadim. Bu, asosan, men so'ragan narsam bilan bog'liq bo'lmagan uydirma ma'lumotlarimga javob berishni rad etish edi. Men kontekst ma'lumotlarining turli formatlari bilan tajriba o'tkazishni boshladim: CSV-dan foydalanish, JSON-dan foydalanish, tezkor bo'linishlarni kontekstdan qat'iy ajratish uchun - hech narsa yordam bermadi.


Men bu fikrdan deyarli voz kechdim, chunki asosiy xususiyat ishlamayapti. Bir necha oy o'tgach, men to'satdan ahmoqona oddiy miya to'lqinini oldim. Tezkor qismlar tartibini o'zgartirsam nima bo'ladi? Birinchi bo'lib foydalanuvchi so'rovi va ikkinchidan kontekst, birinchi bo'lib kelgan kontekst va ikkinchi so'rovgacha. Ajablanarlisi shundaki, u ishladi va men ishlatgan har qanday model darhol Salesforce yozuvlarini kontekst sifatida tushuna boshladi.

Ishlash

Komponentning funksionalligi ushbu mashinalarda sinovdan o'tkazildi:

  • AMD Ryzen 9 9900X protsessorli va 32 Gb tezkor xotiraga ega kompyuter (5600 MT/s).
  • Microsoft Surface Laptop 7 Snapdragon X-Elite ARM protsessoriga ega, 16 Gb tezkor xotiraga ega (8448 MT/s).

Modelni yuklash tezligi - barchasi xotiraga bog'liq

Komponentdan foydalanishning eng ko'p vaqt talab qiladigan qismi modelni dastlabki yuklashdir. Siz 9900X Snapdragon X-Elite’dan osonlik bilan o‘zib ketishini kutishingiz mumkin, lekin siz adashasiz. Ajablanarlisi shundaki, ikkinchisi tezroq. Tezroq xotiraga ega bo'lganligi sababli, sizning operativ xotirangiz qanchalik tez bo'lsa, model tezroq yuklanadi deb o'ylayman. Malumot uchun modelni yuklash tezligini taqqoslash jadvali:


image

Javobni yaratish tezligi

Javobni yaratish tezligi bilan bir xil hikoya. Men tushunganimdek, eng tez avlodni olish uchun protsessor va RAMning tezkor kombinatsiyasiga ega bo'lishingiz kerak. Javob ishlab chiqarish bir xil tezlikda o'zgarganligi sababli, men aniq tezlik testlarini o'tkazmadim. Shunga qaramay, avlod tezligi juda tez, deyarli onlayn muqobillar kabi.

GPU dan foydalanish haqida nima deyish mumkin?

Haqiqatan ham, javoblarni yaratish uchun GPU-dan foydalanish ancha samarali bo'ladi. PicoLLM bilan GPUdan foydalanish mumkin bo'lsa-da, men bu konfiguratsiyani o'zim sinab ko'rmadim. Buning bir nechta sabablari bor. Birinchidan, u WebGPU xususiyatidan foydalanishiga ishonaman, bu ko'pgina brauzerlarda (Edgedan tashqari) sukut bo'yicha yoqilmagan. Ikkinchidan, menda mavjud bo'lmagan modelni yuklash uchun bir necha gigabayt VRAM kerak bo'ladi.

Xulosa

Ushbu yordamchini ishlab chiqish qiziqarli kashfiyot sayohati bo'ldi. Veb-ishchi cheklovlari bilan kurashishdan tortib kontekstni ta'minlashda tezkor tartibning muhim rolini aniqlashgacha bo'lgan qiyinchiliklar ham rag'batlantiruvchi, ham foydali bo'ldi. Natijada Salesforce ekotizimida Katta tilli modellar kuchidan foydalanish uchun noyob yondashuvni taklif qiluvchi Lightning veb-komponenti paydo bo'ldi.


Dastlabki modelni yuklash vaqti, ayniqsa kattaroq modellar uchun e'tiborga olinishi mumkin bo'lsa-da, ma'lumotlarni mahalliy ravishda qayta ishlash qobiliyati ma'lumotlar xavfsizligi, sezgirlik va iqtisodiy samaradorlik nuqtai nazaridan muhim afzalliklarni taqdim etadi. Kontent yaratishni avtomatlashtirishdan tortib aqlli yordam ko'rsatishgacha bo'lgan potentsial foydalanish holatlari juda katta va o'rganilishini kutmoqda.


GitHub repo-ni tekshiring.

L O A D I N G
. . . comments & more!

About Author

Anton Kutishevsky HackerNoon profile picture
Anton Kutishevsky@akutishevsky
Do this, do that.

TEGI QILISH

USHBU MAQOLA TAQDIM ETILGAN...

Read on Terminal Reader
Read this story in a terminal
 Terminal
Read this story w/o Javascript
Read this story w/o Javascript
 Lite
Also published here
X REMOVE AD