მობილური AI ჩატბოტი: LLM-ების ლოკალურად გაშვება React Native-ით
ეს დეტალური გზამკვლევი აღწერს, თუ როგორ შევქმნათ React Native მობილური აპლიკაცია, რომელიც მომხმარებლებს საშუალებას აძლევს, პირადულ გარემოში, ლოკალურად ესაუბრონ ხელოვნური ინტელექტის დიდ ენობრივ მოდელებს (LLM). სტატია მოიცავს მოდელების შერჩევის კრიტერიუმებს, განვითარების გარემოს კონფიგურაციასა და აპლიკაციის საწყის ეტაპებს, `llama.rn`-ის ეფექტური გამოყენებით GGUF ფაილების ჩასატვირთად Hugging Face Hub-იდან.
ამ ბლოგში, ჩვენ გაგაცნობთ, თუ როგორ შექმნათ მობილური აპლიკაცია, რომელიც საშუალებას მოგცემთ ადგილობრივად ესაუბროთ ამ მძლავრ მოდელებს. ამ გაკვეთილის სრული კოდი ხელმისაწვდომია ჩვენს EdgeLLM საცავში. თუ ოდესმე გიგრძვნიათ თავი გადატვირთულად ღია კოდის პროექტების სირთულეებით, ნუ შეგეშინდებათ! Pocket Pal აპლიკაციის შთაგონებით, ჩვენ დაგეხმარებით შექმნათ მარტივი React Native აპლიკაცია, რომელიც ჩამოტვირთავს LLM-ებს Hugging Face-ის ჰაბიდან, რაც უზრუნველყოფს, რომ ყველაფერი დარჩეს პირადული და იმუშაოს თქვენს მოწყობილობაზე. ჩვენ გამოვიყენებთ `llama.rn`-ს, `llama.cpp`-ის ბაინდინგს, GGUF ფაილების ეფექტურად ჩასატვირთად!
ეს გაკვეთილი განკუთვნილია ნებისმიერისთვის, ვინც: ამ სახელმძღვანელოს ბოლოს, თქვენ გექნებათ სრულად ფუნქციონალური აპლიკაცია, რომელიც საშუალებას მოგცემთ ურთიერთობა გქონდეთ თქვენს საყვარელ მოდელებთან. სანამ ჩვენს აპლიკაციის შექმნას დავიწყებთ, მოდით ვისაუბროთ იმაზე, თუ რომელი მოდელები მუშაობს კარგად მობილურ მოწყობილობებზე და რა უნდა გავითვალისწინოთ მათი არჩევისას. მობილურ მოწყობილობებზე LLM-ების გაშვებისას, ზომას მნიშვნელოვანი ადგილი უჭირავს:
GGUF მოდელების ჩამოტვირთვისას, თქვენ წააწყდებით სხვადასხვა კვანტიზაციის ფორმატებს. მათი გაგება დაგეხმარებათ აირჩიოთ სწორი ბალანსი მოდელის ზომასა და შესრულებას შორის: აქ არის რამდენიმე მოდელი, რომელიც კარგად მუშაობს მობილურ მოწყობილობებზე: Hugging Face-ზე დამატებითი GGUF მოდელების მოსაძებნად: მოდელის არჩევისას, გაითვალისწინეთ როგორც პარამეტრების რაოდენობა, ასევე კვანტიზაციის დონე. მაგალითად, 7B მოდელი Q2_K კვანტიზაციით შესაძლოა უკეთ მუშაობდეს, ვიდრე 2B მოდელი Q8_0 კვანტიზაციით. ასე რომ, თუ თქვენ შეგიძლიათ კომფორტულად მოათავსოთ პატარა მოდელი თქვენს მოწყობილობაზე, შეეცადეთ გამოიყენოთ უფრო დიდი კვანტიზებული მოდელი მის ნაცვლად, მას შეიძლება ჰქონდეს უკეთესი შესრულება.
React Native არის პოპულარული ფრეიმვორკი მობილური აპლიკაციების შესაქმნელად JavaScript-ისა და React-ის გამოყენებით. ის დეველოპერებს საშუალებას აძლევს შექმნან აპლიკაციები, რომლებიც მუშაობს როგორც Android, ასევე iOS პლატფორმებზე, ამასთანავე იზიარებენ კოდის მნიშვნელოვან ნაწილს, რაც აჩქარებს განვითარების პროცესს და ამცირებს მოვლის ძალისხმევას. სანამ React Native-ით კოდირებას დაიწყებთ, საჭიროა სწორად დააყენოთ თქვენი გარემო.
**Node.js:** Node.js არის JavaScript-ის გაშვების გარემო (runtime), რომელიც საშუალებას გაძლევთ გაუშვათ JavaScript კოდი. ის აუცილებელია პაკეტებისა და დამოკიდებულებების სამართავად თქვენს React Native პროექტში. შეგიძლიათ გადმოწეროთ Node.js-ის ოფიციალური საიტიდან.
**`@react-native-community/cli`:** ეს ბრძანება აყენებს React Native-ის ბრძანების ხაზის ინტერფეისს (CLI), რომელიც უზრუნველყოფს ინსტრუმენტებს თქვენი React Native პროექტების შესაქმნელად, ასაგებად და სამართავად. გასაშვებად, ჩაწერეთ შემდეგი ბრძანება: აპლიკაციის განვითარების დროს გასაშვებად, დაგჭირდებათ ემულატორი ან სიმულატორი:
* **თუ იყენებთ macOS-ს:**
* **თუ იყენებთ Windows-ს ან Linux-ს:**
თუ გაინტერესებთ განსხვავება სიმულატორებსა და ემულატორებს შორის, შეგიძლიათ წაიკითხოთ ეს სტატია: განსხვავება ემულატორსა და სიმულატორს შორის, მაგრამ მარტივად რომ ვთქვათ, ემულატორები იმეორებენ როგორც აპარატურას, ასევე პროგრამულ უზრუნველყოფას, ხოლო სიმულატორები მხოლოდ პროგრამულ უზრუნველყოფას. Android Studio-ს დასაყენებლად, მიჰყევით Expo-ს ამ შესანიშნავ გაკვეთილს: Android Studio Emulator Guide
**დავიწყოთ ეს პროექტი!**
ამ პროექტის სრულ კოდს იპოვით EdgeLLM რეპოში აქ; იქ ორი საქაღალდეა: პირველ რიგში, აპლიკაციის ინიციალიზაცია გვჭირდება `@react-native-community/cli`-ის გამოყენებით: აპლიკაციის საქაღალდეები ორგანიზებულია შემდეგნაირად:
* `android/`
* `ios/`
* `node_modules/`
* `App.tsx`
* `index.js`
**პროექტის გასაშვებად და იმის სანახავად, თუ როგორ გამოიყურება ის თქვენს ვირტუალურ მოწყობილობაზე, მიჰყევით ამ ნაბიჯებს:**
1. **რეპოზიტორიის კლონირება:**
2. **გადადით პროექტის დირექტორიაში:**
3. **დამოკიდებულებების დაყენება:**
4. **გადადით iOS საქაღალდეში და დააინსტალირეთ:**
5. **გაუშვით Metro Bundler:** გაუშვით შემდეგი ბრძანება პროექტის საქაღალდეში (EdgeLLMPlus ან EdgeLLMBasic):
6. **გაუშვით აპლიკაცია iOS ან Android სიმულატორზე:** გახსენით კიდევ ერთი ტერმინალი და გაუშვით:
ეს ააწყობს და გაუშვებს აპლიკაციას თქვენს ემულატორზე/სიმულატორზე, რათა შეამოწმოთ პროექტი, სანამ კოდირებას დავიწყებთ. React Native აპლიკაციის გასაშვებად საჭიროა ან ემულატორი/სიმულატორი, ან ფიზიკური მოწყობილობა. ჩვენ ყურადღებას გავამახვილებთ ემულატორის გამოყენებაზე, რადგან ის უზრუნველყოფს განვითარების უფრო გამარტივებულ გამოცდილებას თქვენი კოდის რედაქტორთან და გამართვის ინსტრუმენტებთან ერთად. ჩვენ ვიწყებთ იმის უზრუნველყოფით, რომ ჩვენი განვითარების გარემო მზად არის, უნდა ვიყოთ პროექტის საქაღალდეში და გავუშვათ შემდეგი ბრძანებები: ახალ ტერმინალში, ჩვენ გავუშვებთ აპლიკაციას ჩვენს მიერ არჩეულ პლატფორმაზე: ამან უნდა ააწყოს და გაუშვას აპლიკაცია თქვენს ემულატორზე/სიმულატორზე.
პირველ რიგში, მოდით დავაყენოთ საჭირო პაკეტები. ჩვენი მიზანია, ჩავტვირთოთ მოდელები Hugging Face Hub-იდან და გავუშვათ ისინი ლოკალურად. ამის მისაღწევად, ჩვენ უნდა დავაყენოთ: მოდით გავუშვათ აპლიკაცია ჩვენს ემულატორზე/სიმულატორზე, როგორც ადრე ვაჩვენეთ, რათა დავიწყოთ განვითარება. ჩვენ დავიწყებთ `App.tsx` ფაილიდან ყველაფრის წაშლით და ცარიელი კოდის სტრუქტურის შექმნით შემდეგნაირად: `App` ფუნქციის `return` ბრძანების შიგნით ჩვენ განვსაზღვრავთ UI-ს, რომელიც რენდერდება, და გარეთ განვსაზღვრავთ ლოგიკას, მაგრამ მთელი კოდი იქნება `App` ფუნქციის შიგნით. ჩვენ გვექნება ეკრანი, რომელიც ასე გამოიყურება: ტექსტი "Hello World" სწორად არ არის ნაჩვენები, რადგან ჩვენ ვიყენებთ მარტივ `View` კომპონენტს; ტექსტის სწორად საჩვენებლად, `SafeAreaView` კომპონენტი უნდა გამოვიყენოთ, ამას მომდევნო სექციებში განვიხილავთ. ახლა მოდით ვიფიქროთ იმაზე, თუ რა უნდა აკონტროლოს ჩვენს აპლიკაციამ ამ დროისთვის: ჩატთან დაკავშირებული: მოდელთან დაკავშირებული: აი, როგორ ვაკეთებთ ამას
თეგები:
#ხელოვნური ინტელექტი
#llm
#მობილური აპლიკაცია
#ლოკალური ai
#hugging face
#განვითარება
#gguf
#react native
#llama.rn
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ტექნოლოგიები
Honor Magic V6: უთხელესი დასაკეცი ტელეფონი? პირველი შთაბეჭდილებები
ტექნოლოგიები
Honor Magic V6: ყველაზე თხელი დასაკეცი სმარტფონი და მისი შთამბეჭდავი შესაძლებლობები
ტექნოლოგიები