LLM Inference API به شما امکان میدهد مدلهای زبان بزرگ (LLM) را کاملاً روی دستگاه اجرا کنید، که میتوانید از آنها برای انجام طیف گستردهای از وظایف، مانند تولید متن، بازیابی اطلاعات به شکل زبان طبیعی و خلاصهسازی اسناد استفاده کنید. این وظیفه پشتیبانی داخلی از چندین مدل زبان بزرگ متن به متن را ارائه میکند، بنابراین میتوانید آخرین مدلهای هوش مصنوعی تولیدی روی دستگاه را در برنامهها و محصولات خود اعمال کنید.
این وظیفه از انواع زیر Gemma پشتیبانی می کند: Gemma-2 2B، Gemma 2B و Gemma 7B. جما خانواده ای از مدل های باز سبک وزن و پیشرفته است که از همان تحقیقات و فناوری استفاده شده برای ساخت مدل های جمینی ساخته شده است. همچنین از مدل های خارجی زیر پشتیبانی می کند: Phi-2 ، Falcon-RW-1B و StableLM-3B .
علاوه بر مدلهای پشتیبانیشده، میتوانید از AI Edge Torch Google برای صادرات مدلهای PyTorch به مدلهای LiteRT ( tflite
) با امضای چندگانه استفاده کنید، که با پارامترهای نشانهساز همراه شدهاند تا Task Bundle را ایجاد کنید که با API استنتاج LLM سازگار است. مدلهایی که با AI Edge Torch تبدیل شدهاند، فقط میتوانند روی باطن CPU اجرا شوند و بنابراین محدود به اندروید و iOS هستند.
شروع کنید
استفاده از این کار را با دنبال کردن یکی از این راهنماهای پیاده سازی برای پلتفرم هدف خود شروع کنید. این راهنماهای مخصوص پلتفرم شما را از طریق اجرای اساسی این کار با نمونههای کدی که از یک مدل موجود و گزینههای پیکربندی توصیهشده استفاده میکنند، راهنمایی میکنند:
جزئیات کار
این بخش قابلیت ها، ورودی ها، خروجی ها و گزینه های پیکربندی این کار را شرح می دهد.
ویژگی ها
LLM Inference API دارای ویژگی های کلیدی زیر است:
- تولید متن به متن - متن را بر اساس یک اعلان متن ورودی ایجاد کنید.
- انتخاب LLM - چندین مدل را برای تنظیم برنامه برای موارد استفاده خاص خود اعمال کنید. همچنین میتوانید وزنههای سفارشیشده را به مدل آموزش دهید و اعمال کنید.
- پشتیبانی LoRA - قابلیت LLM را با مدل LoRA گسترش دهید و سفارشی کنید، یا با آموزش روی تمام مجموعه دادههای خود، یا استفاده از مدلهای LoRA از پیش ساخته شده از جامعه منبع باز (با مدلهای تبدیل شده با AI Edge Torch Generative API سازگار نیست).
ورودی های وظیفه | خروجی های وظیفه |
---|---|
LLM Inference API ورودی های زیر را می پذیرد:
| API استنتاج LLM نتایج زیر را به دست می دهد:
|
گزینه های پیکربندی
این کار دارای گزینه های پیکربندی زیر است:
نام گزینه | توضیحات | محدوده ارزش | مقدار پیش فرض |
---|---|---|---|
modelPath | مسیری که مدل در دایرکتوری پروژه ذخیره می شود. | PATH | N/A |
maxTokens | حداکثر تعداد نشانهها (توکنهای ورودی + نشانههای خروجی) که مدل کنترل میکند. | عدد صحیح | 512 |
topK | تعداد نشانه هایی که مدل در هر مرحله از تولید در نظر می گیرد. پیشبینیها را به k توکنهای محتملتر محدود میکند. | عدد صحیح | 40 |
temperature | مقدار تصادفی معرفی شده در طول تولید. دمای بالاتر منجر به خلاقیت بیشتر در متن تولید شده می شود، در حالی که دمای پایین تر تولید قابل پیش بینی بیشتری را تولید می کند. | شناور | 0.8 |
randomSeed | دانه تصادفی مورد استفاده در تولید متن. | عدد صحیح | 0 |
loraPath | مسیر مطلق به مدل LoRA به صورت محلی در دستگاه. توجه: این فقط با مدل های GPU سازگار است. | PATH | N/A |
resultListener | شنونده نتیجه را طوری تنظیم می کند که نتایج را به صورت ناهمزمان دریافت کند. فقط هنگام استفاده از روش تولید غیر همگام قابل استفاده است. | N/A | N/A |
errorListener | یک شنونده خطای اختیاری را تنظیم می کند. | N/A | N/A |
مدل ها
LLM Inference API از بسیاری از مدلهای زبان بزرگ تبدیل متن به متن پشتیبانی میکند، از جمله پشتیبانی داخلی برای چندین مدل که برای اجرا در مرورگرها و دستگاههای تلفن همراه بهینه شدهاند. این مدل های سبک وزن را می توان برای اجرای استنباط ها به طور کامل روی دستگاه استفاده کرد.
قبل از مقداردهی اولیه API استنتاج LLM، یک مدل را دانلود کرده و فایل را در دایرکتوری پروژه خود ذخیره کنید. می توانید از یک مدل از پیش تبدیل شده استفاده کنید یا یک مدل را به فرمت سازگار با MediaPipe تبدیل کنید.
LLM Inference API با دو دسته از مدلها سازگار است که برخی از آنها نیاز به تبدیل مدل دارند. از جدول برای شناسایی روش مراحل مورد نیاز برای مدل خود استفاده کنید.
مدل ها | روش تبدیل | پلتفرم های سازگار | نوع فایل | |
---|---|---|---|---|
مدل های پشتیبانی شده | Gemma 2B، Gemma 7B، Gemma-2 2B، Phi-2، StableLM، Falcon | MediaPipe | اندروید، iOS، وب | .bin |
سایر مدل های PyTorch | همه مدل های PyTorch LLM | کتابخانه AI Edge Torch Generative | اندروید، iOS | وظیفه |
ما فایلهای .bin
تبدیل شده را برای Gemma 2B، Gemma 7B، و Gemma-2 2B در Kaggle میزبانی میکنیم. این مدلها را میتوان مستقیماً با استفاده از API استنتاج LLM ما مستقر کرد. برای آشنایی با نحوه تبدیل مدل های دیگر، به بخش تبدیل مدل مراجعه کنید.
Gemma-2 2B
Gemma-2 2B جدیدترین مدل از خانواده مدلهای باز سبک وزن و پیشرفته Gemma است که از همان تحقیقات و فناوری استفاده شده برای ساخت مدلهای Gemini ساخته شده است. مدل شامل 2B پارامتر و وزن باز است. Gemma-2 2B به دلیل مهارت های استدلالی پیشرفته برای مدل های هم رده خود شناخته شده است.
مدل های Gemma-2 2B در انواع زیر موجود هستند:
- gemma2-2b-it-cpu-int8 : مدل 8 بیتی Gemma-2 2B با سازگاری با CPU.
- gemma2-2b-it-gpu-int8 : مدل 8 بیتی Gemma-2 2B با سازگاری GPU.
همچنین میتوانید مدل را تنظیم کنید و وزنهای جدیدی را قبل از اضافه کردن آن به برنامه اضافه کنید. برای اطلاعات بیشتر در مورد تنظیم و سفارشی کردن Gemma، به تنظیم Gemma مراجعه کنید. پس از دانلود Gemma-2 2B از Kaggle Models ، مدل از قبل در قالب مناسب برای استفاده با MediaPipe Tasks است.
جما 2B
Gemma 2B بخشی از خانواده مدل های باز سبک وزن و پیشرفته است که از همان تحقیقات و فناوری استفاده شده برای ساخت مدل های Gemini ساخته شده است. مدل شامل 2B پارامتر و وزن باز است. این مدل برای انواع وظایف تولید متن، از جمله پاسخ به سؤال، خلاصهسازی و استدلال مناسب است.
مدل های Gemma 2B در انواع زیر موجود هستند:
- gemma-2b-it-cpu-int4 : مدل 4 بیتی Gemma 2B با سازگاری با CPU.
- gemma-2b-it-cpu-int8 : مدل 8 بیتی Gemma 2B با سازگاری با CPU.
- gemma-2b-it-gpu-int4 : مدل 4 بیتی Gemma 2B با سازگاری GPU.
- gemma-2b-it-gpu-int8 : مدل 8 بیتی Gemma 2B با سازگاری GPU.
همچنین میتوانید مدل را تنظیم کنید و وزنهای جدیدی را قبل از اضافه کردن آن به برنامه اضافه کنید. برای اطلاعات بیشتر در مورد تنظیم و سفارشی کردن Gemma، به تنظیم Gemma مراجعه کنید. پس از دانلود Gemma 2B از Kaggle Models ، مدل از قبل در قالب مناسب برای استفاده با MediaPipe Tasks است.
جما 7B
Gemma 7B یک مدل جما بزرگتر با پارامترهای 7B و وزن باز است. این مدل برای انواع وظایف تولید متن، از جمله پاسخ به سؤال، خلاصهسازی و استدلال قدرتمندتر است. Gemma 7B فقط در وب پشتیبانی می شود.
مدل Gemma 7B در یک نوع عرضه می شود:
- gemma-1.1-7b-it-gpu-int8 : مدل 8 بیتی Gemma 7B با سازگاری با پردازنده گرافیکی.
پس از دانلود Gemma 7B از Kaggle Models ، مدل از قبل در قالب مناسب برای استفاده با MediaPipe است.
فالکون 1 بی
Falcon-1B یک مدل 1 میلیارد پارامتری فقط رمزگشای علی است که بر روی 350B توکن RefinedWeb آموزش داده شده است.
API LLM Inference به فایلهای زیر نیاز دارد که به صورت محلی دانلود و ذخیره شوند:
-
tokenizer.json
-
tokenizer_config.json
-
pytorch_model.bin
پس از دانلود فایل های مدل فالکون، مدل آماده تبدیل به فرمت MediaPipe با اسکریپت تبدیل می باشد. مراحل موجود در بخش Conversion script for supported models را دنبال کنید.
StableLM 3B
StableLM-3B یک مدل زبان فقط رمزگشای 3 میلیارد پارامتری است که بر روی 1 تریلیون توکن از مجموعه دادههای انگلیسی متنوع و کد برای 4 دوره از قبل آموزش داده شده است.
API LLM Inference به فایلهای زیر نیاز دارد که به صورت محلی دانلود و ذخیره شوند:
-
tokenizer.json
-
tokenizer_config.json
-
model.safetensors
پس از دانلود فایل های مدل StableLM، مدل آماده تبدیل به فرمت MediaPipe با اسکریپت تبدیل است. مراحل موجود در بخش Conversion script for supported models را دنبال کنید.
فی-2
Phi-2 یک مدل ترانسفورماتور 2.7 میلیارد پارامتری است. با استفاده از متون مصنوعی مختلف NLP و وب سایت های فیلتر شده آموزش داده شد. این مدل برای درخواست هایی که از فرمت پرسش-پاسخ، چت و کد استفاده می کنند، مناسب تر است.
API LLM Inference به فایلهای زیر نیاز دارد که به صورت محلی دانلود و ذخیره شوند:
-
tokenizer.json
-
tokenizer_config.json
-
model-00001-of-00002.safetensors
-
model-00002-of-00002.safetensors
پس از دانلود فایل های مدل Phi-2، مدل آماده تبدیل به فرمت MediaPipe با اسکریپت تبدیل می باشد. مراحل موجود در بخش Conversion script for supported models را دنبال کنید.
مدل های مولد PyTorch
مدلهای مولد PyTorch را میتوان با AI Edge Torch Generative API به فرمت سازگار با MediaPipe تبدیل کرد. می توانید از API برای تبدیل مدل های PyTorch به مدل های LiteRT (TensorFlow Lite) با امضای چندگانه استفاده کنید. برای جزئیات بیشتر در مورد نقشه برداری و صادرات مدل ها، از صفحه AI Edge Torch GitHub دیدن کنید.
اگر قصد دارید از AI Edge Torch Generative API برای تبدیل مدل PyTorch استفاده کنید، مراحل موجود در مبدل Torch Generative for PyTorch models را دنبال کنید.
تبدیل مدل
MediaPipe LLM Inference API به شما این امکان را می دهد که انواع مدل های زبان بزرگ را روی دستگاه اجرا کنید. این شامل مدلهایی میشود که از قبل به فرمت سازگار با MediaPipe تبدیل شدهاند، و همچنین مدلهای دیگری که میتوانند با یک اسکریپت تبدیل یا کتابخانه AI Edge Torch تبدیل شوند.
LLM Inference API مدل هایی را در قالب های فایل .bin
و .task
می پذیرد. مدلهای از پیش تبدیل شده و مدلهای تبدیلشده با اسکریپت تبدیل، فایلهای .bin
خواهند بود، در حالی که مدلهایی که با کتابخانه AI Edge Torch تبدیل میشوند، فایلهای .task
خواهند بود. فرمت فایل های مدل های تبدیل شده خود را به صورت دستی تغییر ندهید.
API استنتاج LLM شامل سه مسیر تبدیل مدل است:
- مدل های از پیش تبدیل شده (Gemma 2B، Gemma 7B، Gemma-2 2B): بدون نیاز به تبدیل.
- مدل های پشتیبانی شده (Phi-2، StableLM، Falcon): اسکریپت تبدیل MediaPipe.
- سایر مدلهای PyTorch (همه مدلهای PyTorch LLM): AI Edge Torch Generative API.
مدل های از پیش تبدیل شده
مدل های Gemma-2 2B، Gemma 2B و Gemma 7B به عنوان مدل های از پیش تبدیل شده در قالب MediaPipe در دسترس هستند. این مدلها به هیچ مرحله تبدیل اضافی از کاربر نیاز ندارند و میتوانند همانطور که هست با LLM Inference API اجرا شوند.
می توانید Gemma-2 2B را از Kaggle Models دانلود کنید:
- gemma2-2b-it-cpu-int8 : مدل 8 بیتی Gemma-2 2B با سازگاری با CPU.
- gemma2-2b-it-gpu-int8 : مدل 8 بیتی Gemma-2 2B با سازگاری GPU.
می توانید انواع Gemma 2B را از Kaggle Models دانلود کنید:
- gemma-2b-it-cpu-int4 : مدل 4 بیتی Gemma 2B با سازگاری با CPU.
- gemma-2b-it-cpu-int8 : مدل 8 بیتی Gemma 2B با سازگاری با CPU.
- gemma-2b-it-gpu-int4 : مدل 4 بیتی Gemma 2B با سازگاری GPU.
- gemma-2b-it-gpu-int8 : مدل 8 بیتی Gemma 2B با سازگاری GPU.
می توانید Gemma 7B را از Kaggle Models دانلود کنید:
- gemma-1.1-7b-it-gpu-int8 : مدل 8 بیتی Gemma 7B با سازگاری با پردازنده گرافیکی.
برای اطلاعات بیشتر در مورد مدلهای Gemma، به مستندات مربوط به Gemma-2 2B ، Gemma 2B و Gemma 7B مراجعه کنید.
اسکریپت تبدیل برای مدل های پشتیبانی شده
بسته MediaPipe یک اسکریپت تبدیل برای تبدیل مدلهای خارجی زیر به فرمت سازگار با MediaPipe ارائه میدهد:
برای اطلاعات بیشتر در مورد مدلهای خارجی پشتیبانیشده، به مستندات Falcon 1B ، StableLM 3B و Phi-2 مراجعه کنید.
فرآیند تبدیل مدل به بسته MediaPipe PyPI نیاز دارد. اسکریپت تبدیل در تمام بسته های MediaPipe بعد از 0.10.11
در دسترس است.
وابستگی ها را با موارد زیر نصب و وارد کنید:
$ python3 -m pip install mediapipe
برای تبدیل مدل از کتابخانه genai.converter
استفاده کنید:
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
input_ckpt=INPUT_CKPT,
ckpt_format=CKPT_FORMAT,
model_type=MODEL_TYPE,
backend=BACKEND,
output_dir=OUTPUT_DIR,
combine_file_only=False,
vocab_model_file=VOCAB_MODEL_FILE,
output_tflite_file=OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
برای تبدیل مدل LoRA، ConversionConfig
باید گزینه های مدل پایه و همچنین گزینه های LoRA اضافی را مشخص کند. توجه داشته باشید که از آنجایی که API فقط از استنتاج LoRA با GPU پشتیبانی می کند، backend باید روی 'gpu'
تنظیم شود.
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
# Other params related to base model
...
# Must use gpu backend for LoRA conversion
backend='gpu',
# LoRA related params
lora_ckpt=LORA_CKPT,
lora_rank=LORA_RANK,
lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
مبدل دو فایل فلت بافر TFLite را خروجی می دهد، یکی برای مدل پایه و دیگری برای مدل LoRA.
پارامتر | توضیحات | ارزش های پذیرفته شده |
---|---|---|
input_ckpt | مسیر فایل model.safetensors یا pytorch.bin . توجه داشته باشید که گاهی اوقات قالب مدل safetensors به چندین فایل تقسیم می شود، به عنوان مثال model-00001-of-00003.safetensors ، model-00001-of-00003.safetensors . می توانید یک الگوی فایل مانند model*.safetensors را مشخص کنید. | PATH |
ckpt_format | فرمت فایل مدل | {"Safetensors"، "pytorch"} |
model_type | LLM در حال تبدیل است. | {"PHI_2"، "FALCON_RW_1B"، "STABLELM_4E1T_3B"، "GEMMA_2B"} |
backend | پردازنده (Delegate) مورد استفاده برای اجرای مدل. | {"cpu"، "gpu"} |
output_dir | مسیر دایرکتوری خروجی که میزبان فایل های وزن هر لایه است. | PATH |
output_tflite_file | مسیر فایل خروجی به عنوان مثال، "model_cpu.bin" یا "model_gpu.bin". این فایل فقط با LLM Inference API سازگار است و نمیتواند به عنوان یک فایل «tflite» عمومی استفاده شود. | PATH |
vocab_model_file | مسیر دایرکتوری که فایلهای tokenizer.json و tokenizer_config.json را ذخیره میکند. برای Gemma، به فایل single tokenizer.model اشاره کنید. | PATH |
lora_ckpt | مسیر فایل LoRA ckpt of safetensors که وزن آداپتور LoRA را ذخیره می کند. | PATH |
lora_rank | یک عدد صحیح نشان دهنده رتبه LoRA ckpt. برای تبدیل وزنه های لور مورد نیاز است. اگر ارائه نشده باشد، مبدل فرض می کند که وزن LoRA وجود ندارد. توجه: فقط باطن GPU از LoRA پشتیبانی می کند. | عدد صحیح |
lora_output_tflite_file | خروجی نام فایل tflite برای وزن های LoRA. | PATH |
مبدل مولد تورچ برای مدل های PyTorch
مدلهای مولد PyTorch را میتوان با AI Edge Torch Generative API به فرمت سازگار با MediaPipe تبدیل کرد. میتوانید از API برای نوشتن، تبدیل و کمی کردن PyTorch LLM برای استفاده با LLM Inference API استفاده کنید. مبدل Torch Generative فقط برای CPU تبدیل می شود و به یک ماشین لینوکس با حداقل 64 گیگابایت رم نیاز دارد.
تبدیل یک مدل PyTorch با AI Edge Torch Generative API شامل موارد زیر است:
- چک پوینت های مدل PyTorch را دانلود کنید
- از AI Edge Torch Generative API برای نگارش، تبدیل و کمی کردن مدل به فرمت فایل سازگار با MediaPipe (
.tflite
) استفاده کنید. - یک Task Bundle (
.task
) از فایل tflite و توکنایزر مدل ایجاد کنید.
برای ایجاد یک Task Bundle، از اسکریپت bundling برای ایجاد یک Task Bundle استفاده کنید. فرآیند بستهبندی، مدل نگاشتشده را با ابردادههای اضافی (مثلاً پارامترهای Tokenizer) مورد نیاز برای اجرای استنتاج سرتاسر بسته بندی میکند.
فرآیند بستهبندی مدل به بسته MediaPipe PyPI نیاز دارد. اسکریپت تبدیل در تمام بسته های MediaPipe بعد از 0.10.14
در دسترس است.
وابستگی ها را با موارد زیر نصب و وارد کنید:
$ python3 -m pip install mediapipe
از کتابخانه genai.bundler
برای بسته بندی مدل استفاده کنید:
import mediapipe as mp
from mediapipe.tasks.python.genai import bundler
config = bundler.BundleConfig(
tflite_model=TFLITE_MODEL,
tokenizer_model=TOKENIZER_MODEL,
start_token=START_TOKEN,
stop_tokens=STOP_TOKENS,
output_filename=OUTPUT_FILENAME,
enable_bytes_to_unicode_mapping=ENABLE_BYTES_TO_UNICODE_MAPPING,
)
bundler.create_bundle(config)
پارامتر | توضیحات | ارزش های پذیرفته شده |
---|---|---|
tflite_model | مسیر به مدل TFLite صادر شده توسط AI Edge. | PATH |
tokenizer_model | مسیر رسیدن به مدل توکنایزر SentencePiece. | PATH |
start_token | نشانه شروع خاص مدل توکن شروع باید در مدل توکنایزر ارائه شده وجود داشته باشد. | STRING |
stop_tokens | نشانه های توقف خاص را مدل کنید. توکن های توقف باید در مدل توکنایزر ارائه شده وجود داشته باشد. | LIST[STRING] |
output_filename | نام فایل بسته کار خروجی. | PATH |
سفارشی سازی LoRA
Mediapipe LLM inference API را می توان برای پشتیبانی از سازگاری با رتبه پایین (LoRA) برای مدل های زبان بزرگ پیکربندی کرد. توسعه دهندگان با استفاده از مدل های LoRA دقیق تنظیم شده می توانند رفتار LLM ها را از طریق یک فرآیند آموزشی مقرون به صرفه سفارشی کنند.پشتیبانی LoRA از LLM Inference API برای همه انواع Gemma و مدلهای Phi-2 برای باطن GPU کار میکند، با وزنهای LoRA فقط برای لایههای توجه قابل اعمال است. این پیادهسازی اولیه بهعنوان یک API آزمایشی برای پیشرفتهای آینده با برنامههایی برای پشتیبانی از مدلهای بیشتر و انواع لایههای مختلف در بهروزرسانیهای آتی عمل میکند.
مدل های LoRA را آماده کنید
دستورالعملهای HuggingFace را دنبال کنید تا یک مدل LoRA تنظیمشده را روی مجموعه دادههای خود با انواع مدلهای پشتیبانیشده، Gemma یا Phi-2 آموزش دهید. مدلهای Gemma-2 2B ، Gemma 2B و Phi-2 هر دو در HuggingFace در قالب محافظهای ایمنی موجود هستند. از آنجایی که LLM Inference API فقط از LoRA در لایه های توجه پشتیبانی می کند، در حین ایجاد LoraConfig
فقط لایه های توجه را به صورت زیر مشخص کنید:
# For Gemma
from peft import LoraConfig
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
)
# For Phi-2
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "dense"],
)
برای آزمایش، مدلهای LoRA با تنظیم دقیق در دسترس عموم و متناسب با LLM Inference API موجود در HuggingFace وجود دارد. به عنوان مثال، monsterapi/gemma-2b-lora-maths-orca-200k برای Gemma-2B و lole25/phi-2-sft-ultrachat-lora برای Phi-2.
پس از آموزش بر روی مجموعه داده آماده شده و ذخیره مدل، یک فایل adapter_model.safetensors
حاوی وزن های مدل LoRA تنظیم شده به دست می آورید. فایل Safetensors نقطه بازرسی LoRA است که در تبدیل مدل استفاده می شود.
به عنوان گام بعدی، باید وزن های مدل را با استفاده از بسته MediaPipe Python به یک Flatbuffer Flatbuffer TensorFlow Lite تبدیل کنید. ConversionConfig
باید گزینه های مدل پایه و همچنین گزینه های LoRA اضافی را مشخص کند. توجه داشته باشید که از آنجایی که API فقط از استنتاج LoRA با GPU پشتیبانی می کند، backend باید روی 'gpu'
تنظیم شود.
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
# Other params related to base model
...
# Must use gpu backend for LoRA conversion
backend='gpu',
# LoRA related params
lora_ckpt=LORA_CKPT,
lora_rank=LORA_RANK,
lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
مبدل دو فایل فلت بافر TFLite را خروجی می دهد، یکی برای مدل پایه و دیگری برای مدل LoRA.
استنتاج مدل LoRA
Web، Android و iOS LLM Inference API برای پشتیبانی از استنتاج مدل LoRA به روز شده است.
Android از LoRA ایستا در هنگام شروع اولیه پشتیبانی می کند. برای بارگذاری یک مدل LoRA، کاربران مسیر مدل LoRA و همچنین LLM پایه را مشخص می کنند.// Set the configuration options for the LLM Inference task
val options = LlmInferenceOptions.builder()
.setModelPath('<path to base model>')
.setMaxTokens(1000)
.setTopK(40)
.setTemperature(0.8)
.setRandomSeed(101)
.setLoraPath('<path to LoRA model>')
.build()
// Create an instance of the LLM Inference task
llmInference = LlmInference.createFromOptions(context, options)
برای اجرای استنتاج LLM با LoRA، از همان متدهای generateResponse()
یا generateResponseAsync()
به عنوان مدل پایه استفاده کنید.