من تلاش میکنم برترین و به روزترین مطالب تحلیلی و کاربردی که درباره فناوریهای جدید هوش مصنوعی توسط برترین کارشناسان این حوزه نوشته و منتشر شده است را انتخاب، ترجمه و در اینجا منتشر کنم. این مقاله یک تحلیل عمیق درباره چت pdf یا همان امکان استخراج اطلاعات pdf توسط چت جی پی تی است که توسط برندون رابرتز نوشته شده است. در این مقاله، تکنولوژی استخراج اطلاعات از pdf توسط هوش مصنوعی مورد نقد و بررسی قرار میگیرد.
من تعداد زیادی از اسناد متنی مانند PDF را به صفحات گسترده تبدیل می کنم. کار خسته کننده و پرهزینه ای است. بنابراین هر بار که مدل جدیدی از فناوری هوش مصنوعی وارد میدان میشود، نمیدانم که آیا این فناوری بالاخره میتواند کاری را که بسیاری از مردم در پی آن هستند انجام دهد: دریافت یک فایل PDF و تبدیل آن به یک صفحه گسترده (spreadsheet) و ارایهی آن. بعد از اینکه چند مشکل برنامه نویسی را در درون ChatGPT OpenAI پرتاب کردم و نتیجه قابل قبولی گرفتم، پیش خودم فکر کردم که آیا بالاخره به آنجا رسیدیم.
زمانی که مدل GPT -۳ ارایه شده توسط OpenAI هنوز تازه و جدید بود، روبرتو روچا، روزنامهنگار مونترال را دیدم که آزمایش مشابهی انجام داده بود . نتایج ضعیفتر بودند، اما ChatGPT، جدیدترین مدل OpenAI، چندین پیشرفت دارد که آن را برای استخراج مناسبتر میکند: ۱۰ برابر بزرگتر از GPT -۳ است و در نتیجه به طور کلی منسجمتر است، برای پیروی صریح دستورالعملها آموزش دیده است ، و زبانهای برنامه نویسی را درک میکند.
برای آزمایش اینکه ChatGPT چقدر میتواند دادههای ساختاریافته را از PDF استخراج کند، یک اسکریپت پایتون نوشتم (که در پایان به اشتراک میگذارم!) تا دو مجموعه سند را به صفحات گسترده تبدیل کنم:
- یک پی دی اف ۷۰۰۰ صفحهای از فرم های اعلان نقض داده های نیویورک. پنج شکل مختلف وجود داشت، OCR بد ، وترکیبی از برخی حروف آزاد.
- ۱۴۰۰ یادداشت از تحقیقات پلیس داخلی. اینها کاملاً بدون ساختار بودند و حاوی ایمیل و اسکن اسناد بودند. فوق العاده کثیف
استراتژی کلی من این بود:
- OCR را با استفاده از بالاترین کیفیت ممکن از نو انجام دهد . این بسیار مهم بود زیرا ChatGPT از کار با متن OCR ضعیف خودداری کرد.
- دادهها را تا جایی که میتوانم پاکسازی کنم؛ با حفظ ساختار و طرح کلی، کاراکترهای آشغال و متنهای پرتکرار را حذف کنم.
- اسناد را به صورت رکوردهای انفرادی تقسیمبندی کنم.
- از ChatGPT بخواهم که هر رکورد را به JSON تبدیل کند .
من حدود یک هفته را صرف آشنایی با هر دو مجموعه داده و انجام تمام این پیش پردازش کردم. پس از اتمام، دریافت ChatGPT برای تبدیل یک متن به JSON بسیار آسان است. میتوانید یک رکورد را بچسبانید و بگویید « نمای JSON از این را تحویل بده» و این کار را انجام میدهد. اما انجام این کار برای چندین رکورد متعدد ایده بدی است زیرا ChatGPT طرحواره خود را با استفاده از نامهای فیلد انتخابی تصادفی از متن تولید میکند. همچنین در مورد روش خود برای تجزیه مقادیر تصمیم می گیرد. برای مثال، آدرسها گاهی بهعنوان یک رشته و گاهی بهعنوان یک شی JSON یا یک آرایه ختم میشوند و اجزای تشکیلدهنده یک آدرس از هم جدا میشوند.
طراحی پرامپت مهمترین عامل در به دست آوردن نتایج ثابت است و انتخاب زبان نیز تفاوت زیادی ایجاد می کند. یک نکته: متوجه شوید که ChatGPT هنگام ارجاع به یک کار از چه عباراتی استفاده می کند و آن را تقلید کنید. (اگر نمی دانید، همیشه می توانید بپرسید: “توضیح دهید که چگونه می خواهید _____ با استفاده از _______.” )
از آنجایی که ChatGPT کد را میفهمد، من درخواست خود را بر اساس درخواست JSON طراحی کردم که با طرح JSON داده شده مطابقت داشته باشد . این دستور من بود:
``` Text document goes here, truncated if longer than 4000 chars ``` For the given text, can you provide a JSON representation that strictly follows this schema: ``` { "type": "object", "additionalProperties": false, "properties": { "descriptive name of field here": { "type": "data type here" }, ... } } ```
من سعی کردم از هر پاسخ یک شی JSON استخراج کنم و برخی از بررسی های اعتبار سنجی را علیه آن اجرا کنم. دو بررسی بسیار مهم بود: ۱) اطمینان از کامل بودن JSON ، کوتاه یا شکسته نبودن، و ۲) اطمینان از مطابقت کلیدها و مقادیر با طرحواره. اگر بررسی اعتبارسنجی ناموفق بود، دوباره امتحان کردم، و معمولاً در دومین یا سومین تلاش، JSON معتبر را دریافت میکنم. اگر همچنان شکست می خورد، آن را یادداشت می کردم و از رکورد صرف نظر می کردم. فقط ChatGPT برخی از رکوردها را دوست ندارد.
نتایج
به طرز چشمگیری، ChatGPT یک مجموعه داده عمدتا قابل استفاده ساخت . در نگاه اول، حتی فکر میکردم که یک مجموعه داده کاملا استخراج شده دارم. اما هنگامی که صفحات را مرور کردم و مقادیر را مقایسه کردم، متوجه اشتباهات شدم. برخی از نام ها اشتباه نوشته شده بود. برخی به طور کامل گم شده بودند. برخی اعداد اشتباه بود.
این یک ویدیوی دمو از استخراج دادهای است که من سعی کردم برای این مقاله انجام دهم
خطاها، اگرچه ظریف و نسبتاً نادر بودند، اما به اندازهای بودند که من را از انجام تحلیلهای اساسی که بیشتر ژورنالیستهای اطلاعات میخواهند انجام دهند، باز دارند. میانگین ها، هیستوگرام ها، حداقلها و حداکثرها نادرست بودند.
اما برای پروژه های من، اشتباهات قابل تحمل بود. من میخواستم بازیکنان بزرگی را در نقض پایگاه داده پیدا کنم، بنابراین برایم اهمیتی نداشت که برخی از نامها اشتباه هستند یا برخی از مقادیر عددی صفر هستند. برای اطلاعات پلیس، اساساً به دنبال یک خلاصه برای شناسایی برخی حوادث و افراد درگیر بودم. اگر چیزی را از دست دادم، اشکالی ندارد .
به طور کلی، اینها انواع خطاهایی هستند که ChatGPT ارایه کرده است:
- ChatGPT دادههای توهمآمیز ایجاد میکند ، به این معنی که همه چیز را از خودش ساخته است. اغلب به روش های ظریف این کار را انجام میدهد به طوری که به سختی قابل تشخیص است. به عنوان مثال، “۲۲۲۲ Colony Road, Moor croft” (به “r” توجه کنید) به “۲۲۲۲ Colony Road, Moon croft” تبدیل شد . کلمه “Mooncroft” (با یک “n”) در هیچ کجای متن ظاهر نمی شود. به نظر می رسید که ChatGPT بین کلمات کلونی colony و ماه moon ارتباط برقرار می کند . چقدر عجیب
- به طور تصادفی روی نام افراد قرار گرفت و جنسیت را در نظر گرفت. برخی از فرمها دارای یک فیلد «سلام» بودند، که به نظر میرسید ChatGPT باعث میشود در صورت نامناسب بودن، سلامها («خانم»، «آقا») را اضافه کند و حتی در صورت ارائه آنها را حذف کند («دکتر» و «پروف»). همچنین هنگامی که چندین نام در یک رکورد ظاهر میشد، نام صحیح را به کار نمیبرد و هر کدام را که آخرین نامی بود ترجیح میداد.
- ChatGPT اعلان های قبلی را به خاطر می آورد و باعث اختلاط می شد. گاهی اوقات از یک نام یا یک نهاد تجاری از سابقه قبلی استفاده میکند، علیرغم اینکه نامی کاملاً معتبر در متن رکورد فعلی ظاهر میشود. به عنوان مثال، در یک رکورد از نام یک وکیل و یک موسسه حقوقی به ترتیب ۱۵۰ و ۳۰ صفحه قبل استفاده شده است. این مشکل من را مجبور کرد مطمئن شوم که نام ها و موجودیت ها واقعاً در رکورد فعلی وجود دارند.
- کلماتی که فکر می کرد غلط املایی هستند، «اصلاح شدند». معمولاً این کار مفید بود، اما گاهی اوقات با خطا مواجه می شد. این به ویژه در مورد آدرس های ایمیل مشکل ساز بود.
- خطاها به ظاهر تصادفی در سراسر داده ها پراکنده شدند. در حالی که برخی از ستونها حاوی خطاهای بیشتری نسبت به سایر ستونها بودند، همه ستونها دارای نرخ خطا از ۱٪ تا بالای ۶٪ بودند. خطاها در ردیف ها نیز پراکنده بودند. در مجموع، این بدان معنی بود که من اساساً باید هر ردیف را با هر رکورد مقایسه کنم تا یک مجموعه داده کاملاً معتبر بدست بیاورم – همان کاری که در وهله اول سعی می کردم از آن اجتناب کنم.
مشکلات مربوط به مدل های زبان بزرگ تاکنون به خوبی ثبت شده است. حتی با پیشرفت های بزرگ در ChatGPT، برخی از آنها در آزمایش های من سر خود را بالا بردند. تلاش برای نادیده گرفتن این مشکلات و بیل زدن کار مشتق شده از ChatGPT به طور مستقیم به خوانندگان، ناگزیر به شکست های فاجعه آمیزی منجر می شود
گاهی اوقات ChatGPT به سادگی از کار با یک سند امتناع می ورزد و یک پاسخ boilerplate می دهد. با وجود اینکه هر دو اسناد عمومی بودند، با نگرانیهایی درباره «اطلاعات حساس» در چندین سند در یادداشتهای پلیس و مجموعه دادههای نقض دادههای نیویورک پاسخ داد.
آیا ChatGPT انقلابی در روزنامه نگاری داده ایجاد خواهد کرد؟
من فکر نمی کنم اینطور باشد، به سه دلیل:
- خیر، به دلایل فنی: کار با ChatGPT از طریق API OpenAI به شدت کند است. تقریباً سه هفته طول کشید تا تقریباً ۲۵۰۰ رکورد فقط از PDF نقض داده استخراج شود . با توجه به اینکه من این پروژه را قبل از ورود ChatGPT به جریان اصلی شروع کردم و توانستم به مدت دو هفته قبل از اعمال محدودیت نرخ از آن استفاده کنم، اهمیت بیشتری دارد. API نیز غیرقابل اعتماد است و توقف و وقفه های مکرر را نشان می دهد، اگرچه ممکن است در آینده بهبود یابد.
- نه، به دلایل اقتصادی: با ChatGPT من متقاعد شدهام که یک نوع کار یدی را با شکل دیگری عوض میکنیم. ما برنامهنویسی و رونویسی را برای تمیز کردن، بررسی واقعیت و اعتبار معامله میکنیم. از آنجایی که هر ردیف به طور بالقوه می تواند نادرست باشد، برای ایجاد اطمینان باید هر قسمت بررسی شود. در پایان، من متقاعد نیستم که کار زیادی را صرفه جویی کنیم.
- خیر، به دلایل تحریریه: به نظر من، مشکلات مربوط به توهم داده ها و سایر ترکیبات مختلط، این رویکرد را به استفاده های داخلی یا روزنامه نگار محدود می کند. این مولد نوک بهتر از مولد داستان است. قرار دادن ChatGPT در پایان یک گردش کار روزنامه نگاری خطر تبادل سرعت و کمیت بیشتر با اعتبار کمتر را دارد.
مجموع این مشکلات بیشتر استفاده از ChatGPT را از نظر ویرایشی غیرعملی می کند، به خصوص در مقیاس. اما فکر می کنم هنوز جایی دارد. برای اتاقهای خبری کوچک و کم منابع که نیاز به تبدیل یک پیدیاف کوچک به جدول دارند، این میتواند قابل اجرا باشد ( Hey ChatGPT، آیا میتوانید این متن را به آرایهای از اشیاء JSON تبدیل کنید؟ ).
برخی از فایل های PDF نیز آنقدر نامرتب و غیریکنواخت هستند که نوشتن یک اسکریپت استخراج بیش از حد وقت گیر است. پروژه های بی شماری به دلیل مشکلاتی از این دست از بین رفته اند. استخراج ChatGPT این پتانسیل را دارد که به چنین پروژه هایی جان بدهد.
استخراج ChatGPT همچنین میتواند بهعنوان یک ابزار اکتشافی یا یک تولید کننده سرنخ، در مواردی که اشتباهات و مقادیر از دست رفته قابل تحمل هستند، یا موقعیتهای گمانهزنی که میخواهید قبل از هفتهها غرق شدن در یک پاکسازی و تجزیه و تحلیل واقعی، طعم داده را بچشید، به خوبی عمل کند.