همهٔ مقاله‌ها

· Casimiro Ferreira· 5 دقیقه مطالعه

چرا داده انبار می‌کنیم: از کاتالوگ‌های استخراج‌شده تا مدل‌های گفتار و زبان هوشمندتر

  • Datasets
  • Data Collection
  • ASR
  • NLP
  • TTS
  • LLM
  • FOSS

ما زیاد درباره چگونگی استخراج داده می‌نویسیم — درباره ابزارهای شناسایی، انتقال‌های ضد‌بات، و کلاینت‌های تایپ‌شده فراداده موسیقی. پرسش به‌جایی این است که چرا. ما یک شرکت هوش مصنوعی صوتی هستیم؛ چه کاری داریم که scraper هایی برای دانشنامه‌های موسیقی و فهرست‌های رادیویی نگهداری می‌کنیم؟

پاسخ این است که داده بالادست هر چیزی است که عرضه می‌کنیم. یک دستیار صوتی دقیقاً به‌اندازه کلماتی خوب است که انتظار شنیدنشان را دارد، موجودیت‌هایی که می‌تواند تشخیص دهد و تلفظ‌هایی که می‌شناسد. هیچ‌کدام از این‌ها از نمودارهای معماری نمی‌آید. از داده می‌آید — و داده جالب به‌ندرت در یک دیتاست آماده‌به‌استفاده نشسته است. در سراسر وب عمومی پراکنده است، در کاتالوگ‌هایی که انسان‌ها دهه‌ها صرف گردآوری آن‌ها کرده‌اند.

این چیزی است که پس از جمع‌آوری بر سر آن داده‌ها می‌آید.

موجودیت‌ها: واژگانی که یک دستیار صوتی با آن زندگی می‌کند

به یک دستیار بگویید «play Sultans of Swing by Dire Straits». پیش از آنکه هر مدلی بتواند بر اساس آن عمل کند، چیزی باید بداند که Sultans of Swing یک قطعه است و Dire Straits یک هنرمند. این را در هر هنرمند، آلبوم، ایستگاه، پادکست و ژانری که یک کاربر ممکن است نام ببرد ضرب کنید، و واژگان واقعی یک دستیار رسانه‌ای به دست می‌آید — صدها هزار موجودیت نام‌دار، که هیچ‌کدام در یک پیکره آموزشی متعارف NLP ظاهر نمی‌شوند.

کلاینت‌های رسانه‌ای ما دقیقاً همین را تولید می‌کنند: رکوردهای تایپ‌شده با شناسه‌های canonical که در اسکیمای mediavocab نرمال‌سازی شده‌اند. آن کاتالوگ‌های موجودیت مستقیماً به این‌ها تغذیه می‌شوند:

  • تطبیق intent مبتنی بر کلیدواژه — فهرست‌های موجودیت به gazetteer هایی تبدیل می‌شوند که پرس‌وجوهای رسانه‌ای را در OpenVoiceOS پایه‌گذاری می‌کنند.
  • طبقه‌بندهای intent — دیتاست‌های media-intent ما موجودیت‌های واقعیِ استخراج‌شده را با سنتز جملات مبتنی بر قالب و به‌کمک LLM ترکیب می‌کنند، و اظهاراتی مانند آنچه کاربران واقعی می‌سازند تولید می‌کنند که با موجودیت‌هایی که واقعاً وجود دارند پر شده‌اند. مدل‌هایی که این‌گونه آموزش دیده‌اند تصمیم «آیا این یک درخواست پخش است، و برای چه؟» را در pipeline رسانه‌ای OpenVoiceOS مدیریت می‌کنند.
  • پیکره‌های مصنوعی NER — همین دستور کلی تعمیم می‌یابد: یک کاتالوگ از موجودیت‌های واقعی بردارید، جملات طبیعی پیرامون آن‌ها بسازید، و یک دیتاست موجودیت نام‌دار برچسب‌خورده برای دامنه‌ای دارید که هیچ پیکره دانشگاهی آن را پوشش نمی‌دهد. موجودیت‌ها واقعی‌اند، پس توزیع صادقانه است؛ جملات مصنوعی‌اند، پس حجم هرچه نیاز داشته باشید هست.

سوگیری تشخیص گفتار به سمت کلماتی که اهمیت دارند

ASR همه‌منظوره با گفتار عمومی آموزش می‌بیند، بنابراین Dire Straits را «dire straights» رونویسی می‌کند و هر نام روستای پرتغالی را خراب می‌کند. راه‌حل بازآموزی از صفر نیست — biasing است: دادن واژگان دامنه شما به تشخیص‌دهنده.

کاتالوگ‌های استخراج‌شده همان واژگان‌اند. به‌طور مشخص:

  • Biasing مبتنی بر مدل زبانی — LM های n-gram یا shallow-fusion که با متن غنی از موجودیت آموزش دیده‌اند، رمزگشا را به سمت کلمات درون‌دامنه هدایت می‌کنند. LM یک دستیار رسانه‌ای باید با عناوین قطعات و نام هنرمندان آموزش ببیند، و LM ما می‌تواند چنین باشد، چون آن‌ها را داریم — تایپ‌شده، بدون تکرار و با منشأ تمیز.
  • تشخیص مشروط به prompt — معماری‌های جدیدتر یک prompt متنی یا فهرست زمینه را در زمان inference می‌پذیرند. تغذیه کتابخانه واقعی کاربر — موجودیت‌هایی که کلاینت‌های ما استخراج کرده‌اند — به زمینه تشخیص‌دهنده، «اسم خاص غیرقابل‌تشخیص» را به «مورد واژگانی شناخته‌شده» تبدیل می‌کند.
  • داده‌های fine-tuning — جایی که biasing کافی نیست، کاتالوگ‌های موجودیت به‌علاوه صداهای TTS ما گفتار مصنوعی برای همان عباراتی تولید می‌کنند که یک استقرار نباید در آن‌ها اشتباه کند. این همان سرویس ساخت دیتاست است که به‌صورت تجاری ارائه می‌دهیم، و بر همان pipeline باز ساخته شده است.

تلفظ: از دیکشنری‌های خزش‌شده تا G2P و TTS

برخی از ارزشمندترین خزش‌های ما نه کاتالوگ موجودیت، بلکه واژه‌نامه هستند. خزش دیکشنری Infopédia infopedia-pt-ipa را تولید کرد، بیش از ۱۰۰٬۰۰۰ جفت کلمه→IPA پرتغالی اروپایی. آن دیتاست:

  • استک G2P پرتغالی مبتنی بر قاعده ما را محک می‌زند و تنظیم می‌کند،
  • تلفظ را برای صداهای TTS پایه‌گذاری می‌کند تا کلمات را همان‌گونه که گویشوران واقعاً می‌گویند بیان کنند،
  • و منابع برچسب‌خورده بر اساس معنا مانند کار ما روی هتروفون‌های پرتغالی را می‌کارد، جایی که همان املا بسته به معنا به صداهای متفاوتی نگاشت می‌شود.

داده‌های املا-به-صدا کم‌زرق‌وبرق‌ترین گوشه فناوری گفتار و آن گوشه‌ای است که بیش از همه تعیین می‌کند آیا یک صدا بومی به نظر می‌رسد یا نه. کسی این داده را به شما نمی‌دهد. آن را خزش می‌کنید، تمیز می‌کنید و منتشر می‌کنید — تا تیم بعدی مجبور به این کار نباشد.

سوخت صادقانه برای LLM ها

هر آنچه بالا آمد درباره مدل‌های زبانی بزرگ نیز صدق می‌کند، با یک پیچش اضافی: اکنون منشأ بیش از حجم اهمیت دارد. وب باز روزبه‌روز بیشتر با متن تولیدشده توسط مدل آلوده می‌شود؛ آموزش یا ارزیابی روی آن به‌طور پنهانی خروجی‌های مدل‌های دیروز را بازیافت می‌کند. به همین دلیل است که به منابعی با منشأ انسانی تمیز اهمیت می‌دهیم — دهه‌ها آرشیو Usenet، دانشنامه‌های گردآوری‌شده، دیکشنری‌های رسمی — و به همین دلیل هر دیتاستی که منتشر می‌کنیم اعلام می‌کند هر رکورد از کجا آمده است.

کاتالوگ‌های ساختاریافته LLM ها را در زمان inference نیز تغذیه می‌کنند: یک انبار موجودیتِ تایپ‌شده و بدون تکرار دقیقاً همان چیزی است که یک لایه retrieval یا API ابزار یک agent برای پایه‌گذاری پاسخ‌هایش می‌خواهد. API های تمیز روی منابع نامرتب صرفاً یک راحتی برای scraping نیستند — راهی هستند برای اینکه یک مدل زبانی را به واقعیت‌ها متصل نگه دارید.

Pipeline، سرتاسر

پس تصویر کامل این‌گونه است:

recon → resilient extraction → typed clients → normalised catalogues
      → gazetteers & intent data     (NLP)
      → biasing LMs & fine-tune sets (ASR)
      → lexicons & phoneme labels    (G2P / TTS)
      → provenance-clean corpora     (LLMs, retrieval)

هر مرحله متن‌باز است، هر دیتاست جایی که مجوز اجازه دهد منتشر می‌شود، و همان pipeline که نیازهای مدل‌های خودمان را برآورده می‌کند به‌صورت یک همکاری برای شما نیز در دسترس است. scraper ها یک مأموریت فرعی نیستند. آن‌ها معدنی هستند که تمام استک از آن ساخته شده است.