წარმოდგენილია SegMoE: ექსპერტთა ნარევი Stable Diffusion მოდელებისთვის
SegMoE წარმოადგენს ინოვაციურ არქიტექტურას, რომელიც აერთიანებს მრავალ მოდელს ერთში Feed-Forward ფენების MoE ფენებით ჩანაცვლებით. ეს საშუალებას აძლევს Stable Diffusion მოდელებს უფრო ეფექტურად და ზუსტად გენერირდეს სურათები. ახალი პაკეტით შესაძლებელია საკუთარი MoE მოდელების მარტივად შექმნა და იგი აუმჯობესებს „prompt“ გაგებას, თუმცა აღინიშნება VRAM-ის მაღალი მოხმარება და გარკვეული სისუსტე ერთეულ SD მოდელებთან შედარებით.
დღეს გამოშვებულ მახასიათებლებსა და ინტეგრაციებს შორის, წარმოდგენილია SegMoE მოდელები, რომლებიც მიჰყვებიან Stable Diffusion-ის იგივე არქიტექტურას. Mixtral 8x7b-ის მსგავსად, SegMoE მოდელი აერთიანებს მრავალ მოდელს ერთში. ეს მიიღწევა Feed-Forward ფენების ნაწილის იშვიათი MoE ფენით ჩანაცვლებით. MoE ფენა შეიცავს როუტერ ქსელს, რომელიც ირჩევს, თუ რომელი ექსპერტები დაამუშავებენ რომელ ტოკენებს ყველაზე ეფექტურად.
შეგიძლიათ გამოიყენოთ segmoe პაკეტი საკუთარი MoE მოდელების შესაქმნელად. პროცესი სულ რამდენიმე წუთს იღებს. დამატებითი ინფორმაციისთვის, გთხოვთ, ეწვიოთ Github რეპოზიტორიუმს. segmoe-ის შექმნისას შთაგონება მივიღეთ პოპულარული ბიბლიოთეკა mergekit-გან და მადლობას ვუხდით მის კონტრიბუტორებს ასეთი სასარგებლო ხელსაწყოსთვის. MoE-ების შესახებ მეტი დეტალებისთვის იხილეთ Hugging Face-ის პოსტი: hf.co/blog/moe.
**SegMoE-ის გამოშვება: მოკლე მიმოხილვა**
SegMoE MoE-ებს ეწოდებათ SegMoE-AxB, სადაც A მიუთითებს ექსპერტ მოდელების რაოდენობას, რომლებიც ერთად არიან გაერთიანებული (MoE-d), ხოლო მეორე რიცხვი მიუთითებს ექსპერტების რაოდენობას, რომლებიც მონაწილეობენ თითოეული გამოსახულების გენერაციაში. მოდელის მხოლოდ ზოგიერთი ფენა (feed-forward ბლოკები, attention-ები, ან ყველა) დუბლირდება კონფიგურაციის პარამეტრების მიხედვით; დანარჩენი პარამეტრები იგივეა, რაც Stable Diffusion მოდელში. MoE-ების მუშაობის შესახებ დამატებითი დეტალებისთვის, გთხოვთ, იხილოთ პოსტი „ექსპერტთა ნარევი ახსნილია“ (Mixture of Experts Explained).
**ხელმისაწვდომი შერწყმები და გამოყენება**
ჩვენ ვათავსებთ 3 შერწყმას (merges) Hub-ზე, მათ შორის:
* SegMoE 4x2-ის გამოყენებით გენერირებული გამოსახულებები
* SegMoE 2x1-ის გამოყენებით გენერირებული გამოსახულებები
* SegMoE SD 4x2-ის გამოყენებით გენერირებული გამოსახულებები
segmoe პაკეტის ინსტალაციისთვის გაუშვით შემდეგი ბრძანება:
`pip install segmoe`
დარწმუნდით, რომ დაინსტალირებული გაქვთ diffusers-ის და transformers-ის უახლესი ვერსიები.
შემდეგი კოდი ჩატვირთავს მეორე მოდელს („SegMoE 4x2“) ზემოთ მოცემული სიიდან და განახორციელებს მასზე გენერაციას:
```python
from segmoe import SegMoEPipeline
pipeline = SegMoEPipeline.from_pretrained("SegMoE/SegMoE-4x2-v0")
image = pipeline("A photo of a cat riding a skateboard").images[0]
```
ალტერნატიულად, შესაძლებელია ლოკალური მოდელის ჩატვირთვაც; აქ `segmoe_v0` არის ლოკალური SegMoE მოდელის შემცველი დირექტორიის გზა. იხილეთ „საკუთარი SegMoE-ის შექმნა“ იმის გასაგებად, თუ როგორ ააწყოთ საკუთარი!
მოთხოვნის (prompt) გაგება, როგორც ჩანს, გაუმჯობესებულია, რაც ნაჩვენებია გამოქვეყნებულ სურათებში. თითოეული სურათი, მარცხნიდან მარჯვნივ, აჩვენებს მოდელებს: SegMoE-2x1-v0, SegMoE-4x2-v0, საბაზო მოდელი (RealVisXL_V3.0).
კონფიგურაციის ფაილის (config.yaml) მომზადება შემდეგი სტრუქტურით მარტივია:
```yaml
models:
- id: stabilityai/stable-diffusion-xl-base-1.0
type: base
- id: segmoe_v0 # path to the local segmoe model
type: segmoe
# civitai model
- id: https://civitai.com/api/download/models/239306
type: civitai
```
ნებისმიერი რაოდენობის მოდელის გაერთიანება შეიძლება. კონფიგურაციის ფაილის შექმნის დეტალური ინფორმაციისთვის, გთხოვთ, იხილოთ github რეპოზიტორიუმი.
აღსანიშნავია, რომ მხარდაჭერილია როგორც Hugging Face-ის, ისე CivitAI-ის მოდელები. CivitAI მოდელებისთვის, საკმარისია მოდელის ჩამოტვირთვის ლინკის ჩასმა.
მოდელი შეიძლება აიტვირთოს Hub-ზე `huggingface-cli`-ის მეშვეობით:
`huggingface-cli upload segmoe_v0`
მოდელი ასევე შეიძლება აიტვირთოს Hub-ზე პირდაპირ Python-დან:
```python
from segmoe import SegMoEPipeline
pipeline = SegMoEPipeline.from_pretrained("SegMoE/SegMoE-4x2-v0")
pipeline.push_to_hub("your_username/your_model_name")
```
დეტალური გამოყენება შეგიძლიათ იხილოთ Github-ის გვერდზე.
**გაფრთხილებები: სიჩქარე და VRAM-ის მოხმარება**
* **ნელი სიჩქარე:** თუ ექსპერტების რაოდენობა ტოკენზე 1-ზე მეტია, MoE ახორციელებს გამოთვლებს რამდენიმე ექსპერტ მოდელზე, რაც მას უფრო ნელს ხდის, ვიდრე ერთი SD 1.5 ან SDXL მოდელი.
* **VRAM-ის მაღალი მოხმარება:** MoE-ები ახორციელებენ ინფერენციას ძალიან სწრაფად, მაგრამ მაინც საჭიროებენ VRAM-ის დიდ რაოდენობას (და, შესაბამისად, ძვირადღირებულ GPU-ს). ეს მათ გამოყენებას ართულებს ლოკალურ გარემოში, მაგრამ ისინი შესანიშნავია მრავალ GPU-იან დეპლოიმენტებისთვის. საცნობარო წერტილად, SegMoE-4x2 მოითხოვს 24GB VRAM-ს ნახევრად ზუსტი (half-precision) რეჟიმში.
ჩვენ შევქმენით SegMoE, რათა საზოგადოებას მივცეთ ახალი ინსტრუმენტი, რომელსაც შეუძლია პოტენციურად შექმნას SOTA Diffusion მოდელები მარტივად, მხოლოდ წინასწარ გაწვრთნილი მოდელების გაერთიანებით, ინფერენციის დაბალი დროის შენარჩუნებით. მოუთმენლად ველით, რას შექმნით მისი დახმარებით!
თეგები:
#ხელოვნური ინტელექტი
#მანქანური სწავლება
#stable diffusion
#moe
#segmoe
#სურათების გენერაცია
#github
წყარო: huggingface.co
AI-ით გადამუშავებული