درک آمازون یک سرویس پردازش زبان طبیعی (NLP) است که می توانید از آن برای استخراج خودکار موجودیت ها، عبارات کلیدی، زبان، احساسات و سایر بینش ها از اسناد استفاده کنید. به عنوان مثال، شما می توانید بلافاصله از طریق کنسول آمازون Comprehend, رابط خط فرمان AWS، یا API های آمازون Comprehend. علاوه بر این، اگر نیاز به استخراج نهادهایی دارید که بخشی از آن نیستند انواع موجودیت داخلی آمازون Comprehend، می توانید یک مدل شناسایی موجودیت سفارشی ایجاد کنید (همچنین به نام موجودیت سفارشی شناسایی کننده) برای استخراج عباراتی که بیشتر مربوط به مورد استفاده خاص شما هستند، مانند نام موارد از کاتالوگ محصولات، شناسه های خاص دامنه، و غیره. ایجاد یک شناسایی دقیق موجودیت به تنهایی با استفاده از کتابخانه ها و چارچوب های یادگیری ماشین می تواند یک فرآیند پیچیده و زمان بر باشد. Amazon Comprehend کار آموزش مدل شما را به میزان قابل توجهی ساده می کند. تنها کاری که باید انجام دهید این است که مجموعه داده اسناد و حاشیه نویسی خود را بارگیری کنید و از کنسول آمازون Comprehend، AWS CLI یا APIها برای ایجاد مدل استفاده کنید.
برای آموزش یک شناسایی کننده موجودیت سفارشی، می توانید داده های آموزشی را به Amazon Comprehend as ارائه دهید حاشیه نویسی یا لیست موجودیت. در حالت اول، شما مجموعهای از اسناد و فایلی با حاشیهنویسی ارائه میدهید که محل وقوع موجودیتها را در مجموعه اسناد مشخص میکند. از طرف دیگر، با لیستهای موجود، فهرستی از موجودیتها را با برچسب نوع موجودیت مربوطه و مجموعهای از اسناد بدون حاشیهنویسی ارائه میدهید که انتظار دارید موجودیتهای شما در آنها حضور داشته باشند. هر دو رویکرد را می توان برای آموزش یک مدل شناسایی موجودیت سفارشی موفق استفاده کرد. با این حال، شرایطی وجود دارد که در آن یک روش ممکن است انتخاب بهتری باشد. برای مثال، زمانی که معنای موجودیتهای خاص میتواند مبهم و وابسته به زمینه باشد، ارائه حاشیهنویسی توصیه میشود زیرا ممکن است به شما کمک کند یک مدل آمازون Comprehend ایجاد کنید که قادر به استفاده بهتر از زمینه در هنگام استخراج موجودیتها باشد.
حاشیه نویسی اسناد می تواند به تلاش و زمان بسیار زیادی نیاز داشته باشد، به خصوص اگر در نظر داشته باشید که هم کیفیت و هم کمیت حاشیه نویسی بر مدل شناسایی موجودیت حاصل تأثیر دارد. حاشیه نویسی نادقیق یا خیلی کم می تواند منجر به نتایج ضعیف شود. برای کمک به شما در راه اندازی فرآیندی برای دریافت حاشیه نویسی، ابزارهایی مانند Amazon SageMaker Ground Truth، که می توانید از آن برای حاشیه نویسی سریعتر اسناد خود و ایجاد یک استفاده کنید فایل حاشیه نویسی مانیفست افزوده شده. با این حال، حتی اگر از Ground Truth استفاده می کنید، باز هم باید مطمئن شوید که مجموعه داده آموزشی شما به اندازه کافی بزرگ است تا بتواند با موفقیت شناسایی کننده موجودیت خود را بسازید.
تا به امروز، برای شروع آموزش یک شناسایی کننده موجودیت سفارشی آمازون Comprehend، باید مجموعه ای از حداقل 250 سند و حداقل 100 حاشیه نویسی برای هر نوع موجود ارائه می دادید. امروز، ما اعلام میکنیم که به لطف پیشرفتهای اخیر در مدلهای زیربنایی آمازون Comprehend، حداقل شرایط لازم برای آموزش تشخیصدهنده با فایلهای حاشیه نویسی CSV متن ساده را کاهش دادهایم. اکنون می توانید یک مدل تشخیص موجودیت سفارشی با حداقل سه سند و 25 حاشیه نویسی در هر نوع موجودیت بسازید. شما می توانید جزئیات بیشتر در مورد محدودیت های خدمات جدید را در اینجا بیابید دستورالعمل ها و سهمیه ها.
برای نشان دادن اینکه چگونه این کاهش میتواند به شما در شروع کار با ایجاد یک تشخیصدهنده موجودیت سفارشی کمک کند، آزمایشهایی را روی چند مجموعه داده منبع باز انجام دادیم و معیارهای عملکرد را جمعآوری کردیم. در این پست، شما را از طریق فرآیند محک زدن و نتایجی که در حین کار بر روی مجموعه دادههای زیرنمونهشده به دست آوردهایم، راهنمایی میکنیم.
آماده سازی مجموعه داده
در این پست، توضیح میدهیم که چگونه با استفاده از اسناد مشروح، یک شناساییکننده موجودیت سفارشی آمازون Comprehend را آموزش دادیم. به طور کلی، حاشیه نویسی را می توان به عنوان یک ارائه کرد پرونده CSV، فایل مانیفست تقویت شده توسط Ground Truth ایجاد شده است، و یا یک PDF فایل. تمرکز ما روی حاشیهنویسیهای متن ساده CSV است، زیرا این نوع حاشیهنویسی تحت تأثیر حداقل الزامات جدید است. فایل های CSV باید ساختار زیر را داشته باشند:
فیلدهای مربوطه به شرح زیر است:
- پرونده – نام فایل حاوی مدارک
- لاین - شماره خط حاوی موجودیت که با خط 0 شروع می شود
- شروع افست - افست کاراکتر در متن ورودی (نسبت به ابتدای خط) که نشان می دهد موجودیت از کجا شروع می شود، با توجه به اینکه کاراکتر اول در موقعیت 0 است.
- پایان افست - آفست کاراکتر در متن ورودی که نشان می دهد که موجودیت به کجا ختم می شود
- نوع – نام نوع موجودی که می خواهید تعریف کنید
علاوه بر این، هنگام استفاده از این رویکرد، باید مجموعه ای از اسناد آموزشی را به عنوان فایل های txt. با یک سند در هر خط یا یک سند در هر فایل ارائه کنید.
برای آزمایشات خود از آن استفاده کردیم معیار درک زبان طبیعی SNIPS، مجموعه داده ای از گفته های جمع سپاری توزیع شده بین هفت هدف کاربر (AddToPlaylist
, BookRestaurant
, GetWeather
, PlayMusic
, RateBook
, SearchCreativeWork
, SearchScreeningEvent
). مجموعه داده در سال 2018 در چارچوب مقاله منتشر شد Snips Voice Platform: یک سیستم درک زبان گفتاری تعبیه شده برای رابطهای صوتی خصوصی با طراحی توسط Coucke و همکاران
مجموعه داده SNIPS از مجموعه ای از فایل های JSON ساخته شده است که هم حاشیه نویسی و هم فایل های متن خام را فشرده می کند. در زیر یک قطعه از مجموعه داده است:
قبل از ایجاد شناسه موجودیت، یادداشتهای SNIPS و فایلهای متن خام را به یک فایل حاشیهنویسی CSV و یک فایل اسناد txt. تبدیل کردیم.
مطلب زیر گزیده ای از ماست annotations.csv
فایل:
مطلب زیر گزیده ای از ماست documents.txt
فایل:
پیکربندی نمونهبرداری و فرآیند محکگذاری
برای آزمایشهای خود، روی زیرمجموعهای از انواع موجودیت از مجموعه داده SNIPS تمرکز کردیم:
- کتاب رستوران - انواع موجودیت:
spatial_relation
,poi
,party_size_number
,restaurant_name
,city
,timeRange
,restaurant_type
,served_dish
,party_size_description
,country
,facility
,state
,sort
,cuisine
- GetWeather - انواع موجودیت:
condition_temperature
,current_location
,geographic_poi
,timeRange
,state
,spatial_relation
,condition_description
,city
,country
- پخش موزیک - انواع موجودیت:
track
,artist
,music_item
,service
,genre
,sort
,playlist
,album
,year
علاوه بر این، ما از هر مجموعه داده زیر نمونه برداری کردیم تا پیکربندی های متفاوتی را از نظر تعداد اسناد نمونه برداری شده برای آموزش و تعداد حاشیه نویسی در هر موجودیت به دست آوریم (همچنین به عنوان عکس). این کار با استفاده از یک اسکریپت سفارشی طراحی شده برای ایجاد مجموعه داده های زیرنمونه ای که در آن هر نوع موجود حداقل ظاهر می شود، انجام شد. k بار، در حداقل n اسناد.
هر مدل با استفاده از یک نمونه فرعی خاص از مجموعه داده های آموزشی آموزش داده شد. XNUMX پیکربندی مدل در جدول زیر نشان داده شده است.
نام مجموعه داده های زیرنمونه شده | تعداد مدارک نمونه برداری شده برای آموزش | تعداد اسناد نمونه برداری شده برای آزمایش | میانگین تعداد حاشیه نویسی در هر نوع موجودیت (عکس) |
snips-BookRestaurant-subsample-A |
132 | 17 | 33 |
snips-BookRestaurant-subsample-B |
257 | 33 | 64 |
snips-BookRestaurant-subsample-C |
508 | 64 | 128 |
snips-GetWeather-subsample-A |
91 | 12 | 25 |
snips-GetWeather-subsample-B |
185 | 24 | 49 |
snips-GetWeather-subsample-C |
361 | 46 | 95 |
snips-PlayMusic-subsample-A |
130 | 17 | 30 |
snips-PlayMusic-subsample-B |
254 | 32 | 60 |
snips-PlayMusic-subsample-C |
505 | 64 | 119 |
برای اندازهگیری دقت مدلهایمان، معیارهای ارزیابی را جمعآوری کردیم که Amazon Comprehend بهطور خودکار هنگام آموزش تشخیصدهنده موجودیت محاسبه میکند:
- دقت - این نشان دهنده کسری از موجودیت های شناسایی شده توسط شناسایی کننده است که به درستی شناسایی و برچسب گذاری شده اند. از منظری متفاوت، دقت را می توان به این صورت تعریف کرد tp / (tp + fp)، که در آن tp تعداد موارد مثبت واقعی (شناسایی صحیح) است و fp تعداد مثبت کاذب (شناسایی نادرست) است.
- به یاد بیاورید - این نشان دهنده کسری از نهادهای موجود در اسناد است که به درستی شناسایی و برچسب گذاری شده اند. به عنوان محاسبه می شود tp / (tp + fn)، که در آن tp تعداد مثبت واقعی است و fn تعداد منفی های کاذب (هویت های از دست رفته) است.
- امتیاز F1 - این ترکیبی از معیارهای دقت و فراخوان است که دقت کلی مدل را اندازه گیری می کند. امتیاز F1 میانگین هارمونیک معیارهای دقت و فراخوان است و به صورت محاسبه می شود. 2 * دقت * فراخوان / (دقت + فراخوان).
برای مقایسه عملکرد شناساییکنندههای موجودیت ما، روی امتیازات F1 تمرکز میکنیم.
با توجه به اینکه، با توجه به یک مجموعه داده و اندازه نمونه فرعی (از نظر تعداد اسناد و عکسها)، میتوانید نمونههای فرعی مختلفی تولید کنید، ما برای هر یک از نه پیکربندی 10 نمونه فرعی ایجاد کردیم، مدلهای تشخیص موجودیت را آموزش دادیم، معیارهای عملکرد را جمعآوری کردیم، و آنها را با استفاده از میانگین گیری میکرو میانگین گیری کرد. این به ما این امکان را داد که نتایج پایدارتری بهویژه برای نمونههای فرعی چند شات دریافت کنیم.
نتایج
جدول زیر میانگین امتیازات F1 میکرو را نشان می دهد که بر روی معیارهای عملکرد محاسبه شده توسط Amazon Comprehend پس از آموزش هر شناسایی کننده موجودیت بازگردانده شده است.
نام مجموعه داده های زیرنمونه شده | امتیاز F1 میکرو میانگین شناسه نهاد (%) |
snips-BookRestaurant-subsample-A |
86.89 |
snips-BookRestaurant-subsample-B |
90.18 |
snips-BookRestaurant-subsample-C |
92.84 |
snips-GetWeather-subsample-A |
84.73 |
snips-GetWeather-subsample-B |
93.27 |
snips-GetWeather-subsample-C |
93.43 |
snips-PlayMusic-subsample-A |
80.61 |
snips-PlayMusic-subsample-B |
81.80 |
snips-PlayMusic-subsample-C |
85.04 |
نمودار ستونی زیر توزیع امتیازات F1 را برای XNUMX پیکربندی که در بخش قبل آموزش دادیم نشان می دهد.
میتوانیم مشاهده کنیم که توانستیم با موفقیت مدلهای تشخیص موجودیت سفارشی را حتی با 25 حاشیهنویسی در هر نوع موجودیت آموزش دهیم. اگر روی سه کوچکترین مجموعه دادههای فرعی تمرکز کنیم (snips-BookRestaurant-subsample-A
, snips-GetWeather-subsample-A
و snips-PlayMusic-subsample-A
)، می بینیم که به طور متوسط توانستیم به امتیاز F1 84% دست پیدا کنیم که با توجه به تعداد محدود اسناد و حاشیه نویسی که استفاده کردیم، نتیجه بسیار خوبی است. اگر میخواهیم عملکرد مدل خود را بهبود بخشیم، میتوانیم اسناد و حاشیهنویسیهای اضافی را جمعآوری کنیم و مدل جدیدی را با دادههای بیشتر آموزش دهیم. به عنوان مثال، با نمونه های فرعی متوسط (snips-BookRestaurant-subsample-B
, snips-GetWeather-subsample-B
و snips-PlayMusic-subsample-B
) که حاوی دو برابر اسناد و حاشیه نویسی است، به طور متوسط امتیاز F1 88٪ (5٪ بهبود نسبت به subsample-A
مجموعه داده ها). در نهایت، مجموعه داده های زیر نمونه بزرگتر (snips-BookRestaurant-subsample-C
, snips-GetWeather-subsample-C
و snips-PlayMusic-subsample-C
) که حاوی داده های حاشیه نویسی بیشتری است (تقریباً چهار برابر تعداد اسناد و حاشیه نویسی مورد استفاده برای subsample-A
مجموعه داده ها)، بهبود 2 درصدی بیشتری را ارائه کرد و میانگین امتیاز F1 را به 90 درصد افزایش داد.
نتیجه
در این پست، کاهش حداقل الزامات برای آموزش یک شناسایی کننده موجودیت سفارشی با آمازون Comprehend را اعلام کردیم و برخی معیارها را در مجموعه داده های منبع باز اجرا کردیم تا نشان دهیم چگونه این کاهش می تواند به شما در شروع کار کمک کند. از امروز، میتوانید یک مدل شناسایی موجودیت با حداقل 25 حاشیهنویسی در هر نوع موجودیت (بهجای 100)، و حداقل سه سند (بهجای 250) ایجاد کنید. با این اعلامیه، ما مانع ورود کاربران علاقه مند به استفاده از فناوری تشخیص نهاد سفارشی آمازون Comprehend را کاهش می دهیم. اکنون میتوانید آزمایشهای خود را با مجموعهای بسیار کوچک از اسناد مشروح شروع کنید، نتایج اولیه را تجزیه و تحلیل کنید، و اگر به یک مدل شناسایی دقیقتر برای مورد استفاده خود نیاز دارید، با اضافه کردن حاشیهنویسیها و اسناد اضافی، تکرار کنید.
برای کسب اطلاعات بیشتر و شروع کار با یک شناسه موجودیت سفارشی، مراجعه کنید شناسایی موجودیت سفارشی.
تشکر ویژه از همکارانم جیوتی بانسال و جی ما برای کمک ارزشمندشان در تهیه و ارزیابی داده ها.
درباره نویسنده
لوکا گویدا یک معمار راه حل در AWS است. او در میلان مستقر است و از ISV های ایتالیایی در سفر ابری آنها پشتیبانی می کند. او با پیشینه آکادمیک در علوم کامپیوتر و مهندسی، شروع به توسعه اشتیاق AI/ML خود در دانشگاه کرد. لوکا بهعنوان عضوی از جامعه پردازش زبان طبیعی (NLP) در AWS، به مشتریان کمک میکند در حین پذیرش خدمات هوش مصنوعی/ML موفق باشند.