نام و نام خانوادگیها بخشهای حیاتی و حساس اطلاعات شخصی هستند که نیاز به دقت بالا در پردازش دارند. تصحیح خطاها و اشتباهات تایپی در این اطلاعات میتواند تأثیرات مهمی بر عملکرد سیستمها و فرآیندها داشته باشد. در این بلاگ، ما به شما نحوه ساخت یک API برای استفاده از مدل Fine-Tune شده تصحیح گر نام و نام خانوادگی را با استفاده از مدل GPT-2 و فریمورک Flask آموزش خواهیم داد.
مدلهای زبانی پیشرفته مانند GPT-2 میتوانند به طور مؤثر در تصحیح و بهبود دقت اطلاعات متنی عمل کنند، به شرطی که به طور خاص برای وظایف معین Fine-Tune شده باشند. در این بلاگ، تمرکز ما بر روی نحوه ایجاد یک API است که از مدل Fine-Tune شده برای تصحیح نامها و نام خانوادگیها استفاده میکند. این API به شما امکان میدهد تا نامهای ورودی را تصحیح کرده و آنها را به عنوان خروجی دریافت کنید.
پیشنیازها
قبل از شروع، مطمئن شوید که موارد زیر را نصب کردهاید:
- Python 3.6 یا بالاتر
- کتابخانههای مورد نیاز: `flask`, `transformers`
برای نصب این کتابخانهها، از دستورات زیر استفاده کنید:
pip install flask transformers
آمادهسازی مدل و توکنایزر
ابتدا باید کتابخانههای مورد نیاز را وارد کنیم:
from flask import Flask, request, jsonify
from transformers import GPT2LMHeadModel, PreTrainedTokenizerFast
بارگذاری توکنایزر و مدل Fine-Tune شده
سپس، توکنایزر و مدل Fine-Tune شده را بارگذاری میکنیم:
wrapped_tokenizer = PreTrainedTokenizerFast(
tokenizer_file="tokenizer_BPE3.json",
bos_token="",
eos_token="",
)
tokenizer = wrapped_tokenizer
tokenizer.pad_token_id = tokenizer.eos_token_id
model = GPT2LMHeadModel.from_pretrained('testsample30', pad_token_id=tokenizer.eos_token_id)
model.eval()
در اینجا، توکنایزر دلخواه ایجاد شده توسط کاربر و مدل Fine-Tune شده بارگذاری میشوند. توکنایزر برای تبدیل دادههای متنی به توکنهای قابل پردازش توسط مدل استفاده میشود، و مدل `testsample30`، نسخهای است که بر روی دادههای خاصی Fine-Tune شده است.
پیادهسازی API با Flask
app = Flask(__name__)
با این خط کد، یک شیء Flask به عنوان end-point ایجاد میکنیم که به ما این امکان را میدهد تا API را پیادهسازی و سرویسدهی کنیم.
ایجاد نقطه پایانی API برای تصحیح نام
@app.route("/wordcorrector", methods=["POST"])
def word_correct():
jdata = request.get_json()
data = jdata['data']
tokenized_sequence = tokenizer(data, return_tensors='pt')
input_ids = tokenized_sequence.input_ids
gen_tokens = model.generate(
input_ids,
do_sample=True,
temperature=0.9,
max_length=15,
)
gen_text = tokenizer.batch_decode(gen_tokens)[0]
correctname = gen_text[len(data)+1:]
e = correctname.split('\n')[0]
response = {"generated text": e} return jsonify(response), 201
در این بخش، یک نقطه پایانی API با نام `/wordcorrector` ایجاد میکنیم که به درخواستهای POST پاسخ میدهد. این نقطه پایانی نامهای ورودی را دریافت کرده، آنها را توکنایز کرده و با استفاده از مدل Fine-Tune شده پردازش میکند. سپس نامهای تصحیحشده را بهعنوان خروجی ارسال میکند. تنظیمات مختلف مانند `do_sample` و `temperature` به مدل کمک میکند تا نتایج متنوع و خلاقانهای تولید کند.
اجرای سرور Flask
if __name__ == "__main__":
app.run(debug=True)
این خط کد، سرور Flask را در حالت توسعه اجرا میکند تا بتوانید API را به راحتی در محیط محلی خود تست کنید.
در این بلاگ، نحوه ایجاد یک API برای استفاده از مدل Fine-Tune شده تصحیح گر نام و نام خانوادگی را با استفاده از مدل GPT-2 و فریمورک Flask آموزش دادیم. این API به شما امکان میدهد تا نامهای ورودی را به طور خودکار تصحیح کنید و از آنها در پروژههای خود بهرهبرداری کنید.
منابع و لینکهای مفید
- [مستندات Flask]
- [مستندات Hugging Face Transformers]
- [راهنمای Fine-Tune مدلهای Transformers]
ماشین تصحیح گر نام و نام خانوادگی به عنوان API