نویسنده (ها): فلیکس پاپ
در ابتدا منتشر شده در به سمت هوش مصنوعیبشر
شما اولین نمونه اولیه کار خود را با موفقیت ساخته اید LLM/برنامه AI در دستگاه محلی خود.
اکنون ، شما به دنبال روشی سریع و مؤثر برای به اشتراک گذاشتن آن با دیگران هستید تا ببینید که آیا این واقعاً ارزش را ارائه می دهد و بازخوردی را جمع آوری می کند که مراحل بعدی شما را راهنمایی می کند.
با این حال ، استفاده از یک مدل AI به یک سرور و ساختن یک قسمت جلوی جلا می تواند زمان بر و از نظر فنی باشد ، به خصوص وقتی که تمام آنچه می خواهید به اشتراک بگذارید یک نمونه اولیه است.
این پست وبلاگ شما را با روشی ساده و کارآمد برای به اشتراک گذاشتن برنامه هوش مصنوعی خود برای:
- جمع آوری بازخورد معنی دار در برنامه شما
- تسریع در توسعه از راه حل هوش مصنوعی شما
- کمک به افراد دیگر در زندگی روزمره آنها با برنامه شما
همه این موارد با استفاده از فقط Gradio و بغل کردن صورت انجام می شود. یک مثال مفید شما را در کل مراحل طی می کند. از ساخت یک جلوی گرادو ساده برای برنامه شما برای بارگذاری آن ، به همراه مدل هوش مصنوعی خود ، تا بغل کردن صورت به صورت رایگان ، و آن را در دسترس کل جهان قرار می دهد.
درجه یک
Gradio یک کتابخانه پایتون با منبع باز است که ایجاد برنامه های وب نسخه ی نمایشی را ساده می کند و نیاز به JavaScript ، CSS یا میزبانی وب را از بین می برد.
این سیستم یک سیستم مدولار با بیش از 30 مؤلفه داخلی برای استفاده از ورودی ها و خروجی ها ارائه می دهد ، که همه آنها می توانند به راحتی متناسب با نیازهای برنامه شما سفارشی شوند.
به طور خلاصه ، Gradio تمام بلوک های ساختمان مورد نیاز برای طراحی و استقرار قسمت جلویی را برای برنامه خود در عرض چند دقیقه و نه روز به شما می دهد.
بغل کردن صورت
در سالهای اخیر ، بغل کردن صورت، یک شرکت فرانسوی-آمریکایی و پلت فرم منبع باز ، به یک قطب اصلی تبدیل شده است یادگیری ماشین (مولکول) و توسعه هوش مصنوعی (AI).
بغل کردن مأموریت صورت این است که با ایجاد ابزارها و مدل های قدرتمند برای همه ، هوش مصنوعی را دموکراتیک کنید.
این پلتفرم چهار مؤلفه اصلی را ارائه می دهد:
- ترانسفورماتور: کتابخانه ای برای مدلهای پیشرفته در پردازش زبان طبیعی (NLP) وظایفی مانند طبقه بندی ، ترجمه و پاسخ به سؤال.
- بغل کردن مرکز صورت: یک بستر مشترک که در آن کاربران می توانند مدل ها را به اشتراک بگذارند و به آنها دسترسی پیدا کنند ، مجموعه داده ها، و سایر منابع هوش مصنوعی.
- Gradio: یک سازنده رابط بصری برای مدل های ML ، به دست آمده با بغل کردن چهره ، که به کاربران امکان می دهد نمایشی های تعاملی را به راحتی ایجاد کنند.
- فضاها: ویژگی ای که کاربران را قادر می سازد تا برنامه های وب دارای ML را مستقیماً در اکوسیستم Face Face برای نمونه سازی سریع و به اشتراک گذاری بسازند و مستقر کنند.
حتی اگر قصد ندارید مدل یا برنامه خود را منتشر کنید ، بغل کردن فضاهای صورت مکانی الهام بخش برای آزمایش آخرین نتایج ذرات در هوش مصنوعی است. اما خود را متقاعد کنید.


ساخت برنامه
اما قبل از اینکه بتوانیم یک قسمت جلویی را با Gradio بسازیم و برنامه تمام شده را برای بغل کردن Face بارگذاری کنیم ، باید برای اهداف نمایش یک برنامه ساده بسازیم.
مانند هر پروژه جدید Python ، یک محیط مجازی در مرحله اول فوری می شود. اگر در سیستم لینوکس هستید می توانید از مراحل زیر استفاده کنید:
python3 -m venv venv
source venv/bin/activate
which pip
پس از آن ، من ایجاد کردم app.py
پرونده ، که شامل برنامه است. اسکریپت این برنامه به صورت مرحله ای از طریق بلوک های کد بعدی توضیح داده شده است.
واردات و اولیه سازی
اول ، کتابخانه های مورد نیاز وارد می شوند ، از جمله Gradio برای تجسمات جلوی جلو و بغل کردن ترانسفورماتورهای Face ، که هم یک توکین کننده و هم یک مدل توالی به توالی را که به طور خاص برای ترجمه چند زبانه طراحی شده است ، فراهم می کند.
مدل انتخاب شده ، Facebook/M2M100_418m، یک ترانسفورماتور بسیار به بسیاری است که می تواند مستقیماً بین بیش از صد زبان ترجمه شود بدون اینکه نیاز به محوری از طریق انگلیسی داشته باشد.
import gradio as gr
from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
پس از این ، مدل و توکن ساز تعریف می شوند. روش from_pretrained
بارگیری/بار وزن واژگان و شبکه های عصبی مورد نیاز برای توکینیزر.
MODEL_NAME = "facebook/m2m100_418M"
tokenizer = M2M100Tokenizer.from_pretrained(MODEL_NAME)
model = M2M100ForConditionalGeneration.from_pretrained(MODEL_NAME)
در مرحله بعد ، فیلمنامه یک فرهنگ لغت را تعریف می کند که نام کامل زبان (انگلیسی ، فرانسوی ، آلمانی ، اسپانیایی) را به کدهای ISO (EN ، FR ، DE ، ES) نقشه می کند. مدل M2M100 انتظار دارد.
LANGUAGE_CODES = {
"English": "en",
"French": "fr",
"German": "de",
"Spanish": "es"
}
پشتی مترجم
هسته فنی فیلمنامه این است translate
تابع ، که سه پارامتر ورودی را می گیرد: متن برای ترجمه ، نام زبان منبع و نام زبان هدف.
در مرحله اول ، عملکرد بررسی می کند که آیا ترجمه لازم است یا خیر. اگر زبانهای منبع و هدف متفاوت باشند ، کدهای ISO مربوطه از یک فرهنگ لغت قبلاً تعریف شده بازیابی می شوند. این کدهای ISO سپس برای اطلاع رسانی به توکن ساز در مورد زبانی که قرار است پردازش شود استفاده می شود.
در مرحله بعد ، رشته ورودی به تنسورهای Pytorch تبدیل می شود ، که مدل می تواند آن را تفسیر کند.
پس از آن ، یک نشانه “شروع اجباری” که مربوط به زبان هدف است ، ایجاد می شود. این رمزگشایی را برای تولید متن به زبان صحیح در طی فرآیند رمزگشایی قرار می دهد.
مدل generate
سپس روش جستجوی پرتو حداکثر 256 نشانه را انجام می دهد و دنباله ای از شناسه ها را تولید می کند. این شناسه ها سرانجام به یک جمله قابل خواندن در زبان هدف تبدیل می شوند.
البته با فرض اینکه ما زبان را درک می کنیم.
def translate(text: str, src_lang: str, tgt_lang: str) -> str:if src_lang == tgt_lang or not text:
return text
src_code = LANGUAGE_CODES[src_lang]
tgt_code = LANGUAGE_CODES[tgt_lang]
tokenizer.src_lang = src_code
encoded = tokenizer(text, return_tensors="pt")
forced_bos_token_id = tokenizer.get_lang_id(tgt_code)
generated_tokens = model.generate(
**encoded,
forced_bos_token_id=forced_bos_token_id,
max_length=256
)
decoded_outputs = tokenizer.batch_decode(
generated_tokens,
skip_special_tokens=True
)
return decoded_outputs[0]
رابط درجه یک
با این حال ، برای تهیه یک اسکریپت یا کل برنامه برای مخاطبان گسترده ، احتمالاً تهیه اسکریپت پایتون کافی نیست.
اما ، این هدف را می توان در چند خط از کد پایتون با کمک گرادو برای مونتاژ یک برنامه مینی وب بدست آورد.
این برنامه مثال شامل دو منو کشویی برای انتخاب منبع و زبان هدف ، میدان ورودی زبان منبع ، دکمه ترجمه و میدان خروجی نهایی است که در زیر یکدیگر ساختار یافته اند.
تمام عناصر Gradio را می توان در مستندات Gradio یافت و نمونه های مختلف اجرای آن در زمین بازی گریدیوبشر


سیم کشی کلید هنگام دکمه اتفاق می افتد .click
هنگامی که دکمه “ترجمه” فشرده می شود ، روش ایجاد می شود. سپس ، تمام مقادیر ورودی تنظیم شده قبلاً به عملکرد ترجمه ، جایی که پردازش می شوند ارسال می شوند. نتایج به صورت برگشتی بازگردانده می شوند out
و در جعبه متن خروجی تجسم شده است.
with gr.Blocks() as demo:
gr.Markdown("## Multilingual Translator")with gr.Row():
src = gr.Dropdown(
choices=list(LANGUAGE_CODES.keys()),
label="Source Language",
value="English"
)
tgt = gr.Dropdown(
choices=list(LANGUAGE_CODES.keys()),
label="Target Language",
value="German"
)
txt = gr.Textbox(
lines=4,
placeholder="Enter text to translate here...",
label="Input Text"
)
btn = gr.Button("Translate")
out = gr.Textbox(
lines=4,
label="Translated Text"
)
btn.click(
fn=translate,
inputs=[txt, src, tgt],
outputs=out
)
if __name__ == "__main__":
demo.launch()
به اشتراک گذاری برنامه
در حال حاضر ، برنامه فقط در دستگاه های محلی قابل اجرا است. با این حال ، می توان آن را در بغل کردن فضاهای صورت فقط با چند کلیک به اشتراک گذاشت. برای ایجاد یک فضای جدید ، باید فرم HTML را همانطور که در تصویر بالا نشان داده شده است پر کنید.
بغل کردن چهره 2 VCPU را برای اجرای برنامه های کاربردی در نسخه رایگان ارائه می دهد ، که برای برنامه ها و مدل های ساده کافی است. اگر درخواست شما به منابع بیشتری نیاز دارد ، باید یکی از گزینه های پرداخت شده را انتخاب کنید که چندین GPU را ارائه می دهد.


پس از ایجاد فضا ، مخزن مرتبط را می توان کلون کرد. اسکریپت برنامه Python که قبلاً ایجاد شده است باید در این مخزن کپی شود. سپس ، برنامه برای ارتکاب و فشار به مخزن از راه دور صورت بغل آماده است.


یک نکته مهم که نباید فراموش شود این است که شامل موارد requirements.txt
پرونده ، که تمام کتابخانه های مورد نیاز برای اجرای برنامه را لیست می کند. این پرونده را می توان به سرعت با استفاده از دستور زیر تولید کرد و باید متعهد و به مخزن صورت بغل شود.
pip freeze > requirements.txt
git add requirements.txt
git commit -m "Add requirements file"
git push
اگر همه چیز به درستی انجام شود ، برنامه با موفقیت بر روی سرور بغل چهره ساخته می شود ، جایی که می توان آن را توسط افراد از سراسر جهان به آن دسترسی پیدا کرد.
مثال نهایی ترجمه چند زبانه ساده در تصویر زیر ارائه شده است.


می توانید این برنامه و بسیاری از موارد پیشرفته را امتحان کنید بغل کردن فضاهای صورت.
پایان
این پست نشان داده است که استقرار شما LLM-برنامه قدرت لازم نیست یک کار دلهره آور باشد که شامل یک قسمت جلوی پیچیده یا غواصی عمیق در زیرساخت های استقرار باشد.
با کمک Gradio و بغل کردن فضاهای صورت ، می توانید نمونه اولیه محلی خود را فقط در چند مرحله به یک برنامه وب قابل اشتراک و تعاملی تبدیل کنید.
مراحل ذکر شده در این پست وبلاگ شما را به این امر توانمند می کند:
- کار خود را به روشی کاربر پسند ارائه دهید
- بازخورد دنیای واقعی را زود جمع کنید
- چرخه های تکرار را تسریع کنید
- به دیگران الهام دهید تا در بالای ایده های خود بسازند
این که آیا شما در حال نمایش یک مترجم چند زبانه ، یک چت بابات یا یک دستیار سفارشی LLM هستید ، ترکیبی از Gradio و Bugging Face ابزاری را برای ایده شما از مفهوم به تأثیرگذاری-سریعتر و کارآمدتر از گذشته فراهم می کند.
اکنون نوبت شماست: پروژه LLM خود را بگیرید ، آن را با یک رابط Gradio بپیچید ، آن را در بغل کردن فضاهای صورت منتشر کنید و آن را با جهان یا درست در اینجا به اشتراک بگذارید. دوست دارم ببینم چه چیزی می سازید!
منابع
felix-pappe.medium.com/subscribs 🔔
www.linkedin.com/in/felix-pappe 🔗
https://felixpappe.de🌐
منتشر شده از طریق به سمت هوش مصنوعی
منبع: https://towardsai.net/p/l/deploy-your-llm-application-for-free-and-share-it-with-others