对于像我一样的太空爱好者来说,NASA等机构发布的浩如烟海的PDF文档中蕴藏着无尽的宇宙奥秘。然而,这些动辄数百页的文档往往信息密度高,阅读起来费时费力。能否利用大模型 (Large Language Model) 的能力,让这些PDF自己“讲述”其中有趣的太空知识,挖掘出那些令人惊叹的细节呢?本文将介绍如何使用Databricks的AI功能,将NASA的PDF文档转化为易于理解的趣味太空知识,并探讨这种方法在其他行业的应用。
1. PDF文档:太空知识的宝藏,也是挑战
NASA等机构积累了大量的PDF文档,这些文档涵盖了从登月计划到火星尘暴的各种信息。例如, 《Exploring the Moon: A Teacher’s Guide with Activities》 这份PDF深入介绍了月球表面、地质、陨石坑和引力,甚至包含动手实验,是提取关于月球的有趣事实的绝佳资源。 另外一份关于金星的文献《Venus Lithograph》,用生动的图像概述了金星的灼热表面温度和有毒大气层。 这些PDF文档就像一座座金矿,蕴藏着丰富的太空知识,但是挖掘这些知识需要耗费大量的时间和精力。
然而,这些PDF文档往往存在格式复杂、内容冗长等问题,使得从中提取关键信息变得困难。传统的信息检索方法效率低下,难以满足快速获取特定太空知识的需求。因此,我们需要一种更智能、更高效的方法来解析这些PDF文档,让大模型发挥其强大的自然语言处理能力。
2. Databricks AI:解锁PDF的钥匙
Databricks提供了一系列强大的AI功能,可以帮助我们轻松地解析PDF文档。其中,ai_parse_document
函数可以将PDF文档分解为有意义的块,包括页面、标题、段落和图像。这个函数就像一把钥匙,打开了PDF文档的大门,让我们能够深入了解其内部结构。
具体来说,我将四个NASA的PDF文档上传到Databricks Unity Catalog卷中。然后,使用以下SQL语句直接查询这些PDF文档:
SELECT
path,
ai_parse_document(content) AS parsed
FROM
READ_FILES('/Volumes/sumit_saraswat_default/nasa/nasa_files/', format => 'binaryFile');
这个内置的Databricks功能使用大模型将PDF文档分解为有意义的块,包括页面、标题、段落和图像。
解析后的数据被存储在一个表中,每一行代表文档的一个片段,包含了完整的文本、标题、段落等信息,以及解析过程中遇到的任何错误。将数据保存到表中,方便后续的搜索,也可以节省处理时间。例如,可以创建一个视图,显示文件名、页码和文本内容:
create or replace view gold_nasa_docs
as
SELECT
path,
page_index + 1 AS page_number,
page.content AS page_content
FROM
nasa_parsed_docs
LATERAL VIEW posexplode(document.pages) AS page_index, page
通过这种方式,我们将PDF文档转化为了结构化的数据,为后续的太空知识挖掘奠定了基础。
3. 大模型:趣味太空知识的挖掘者
有了结构化的数据,我们就可以利用大模型来提取趣味太空知识。Databricks提供了一个ai_query
函数,可以让我们向大模型提问,并从文档中找到答案。
例如,我们可以向大模型提出以下问题:“金星上的一天与地球相比有多长?”。同时,我们可以提供一个系统提示,告诉大模型只根据提供的文本回答问题,如果找不到答案,则返回“Not found in this text.”。
WITH raw_ai AS (
SELECT
path AS document_name,
page_number,
page_content,
ai_query(
"databricks-meta-llama-3-3-70b-instruct",
"Based only on the following text, how long is day on Venus compared to earth? If the answer is not in the text, say 'Not found in this text.'\n\nTEXT:\n" || page_content
) AS space_info
FROM gold_nasa_docs
),
filtered AS (
SELECT *
FROM raw_ai
WHERE LOWER(TRIM(space_info)) NOT IN (
'',
'not found in this text.',
'no relevant information found',
'i don\'t know'
)
),
aggregated AS (
SELECT
CONCAT_WS(' ', COLLECT_LIST(space_info)) AS consolidated_answer,
COLLECT_LIST(
CONCAT('Document: ', document_name, ', Page: ', CAST(page_number AS STRING))
) AS source_pages
FROM filtered
)
SELECT
consolidated_answer,
source_pages
FROM aggregated
大模型会读取每个页面的内容,尝试回答问题,并返回结果。如果找不到答案,它会如实告知。然后,我们可以过滤掉任何空白或无用的回复,并将所有好的答案与原始页码一起收集起来。这有助于我们保持AI的诚实,并让我们在需要时检查来源。
最终,我们得到了以下结果:
consolidated_answer
: 金星上的一天大约是117个地球日,正如文本中所述:“金星年(轨道周期)大约是225个地球日,而行星的自转周期是243个地球日,使得金星的一天大约是117个地球日。”此外,“快速事实”部分通过“连续日出:116.75天”确认了这一点,这本质上是相同的值。source_pages
:Document: dbfs:/Volumes/sumit_saraswat_default/nasa/nasa_files/Venus_Lithograph.pdf, Page: 2
和Document: dbfs:/Volumes/sumit_saraswat_default/nasa/nasa_files/get_start.pdf, Page: 33
通过这种方式,我们成功地利用大模型从NASA的PDF文档中提取了关于金星日长的趣味太空知识。
4. 应用拓展:超越太空,赋能各行各业
虽然我使用这种方法来挖掘NASA PDF文档中的趣味太空知识,但同样的思路也可以应用于其他行业,解决信息提取的难题。在现实世界的各个行业中,重要信息通常隐藏在冗长且难以阅读的文档中。大模型的应用场景非常广阔。
- 金融行业: 可以解析信用报告、贷款协议或监管PDF文档。可以轻松提取关键财务指标、突出特定条款或将冗长的文档概括为人类友好的摘要。例如,可以提取贷款协议中的利率、还款期限等关键信息,帮助信贷员快速评估风险。
- 保险行业: 可以扫描索赔报告,提取事件描述、保单号码或损害评估。甚至可以将多页的检查PDF文档转换为简单的摘要,用于承保或风险评估。比如,可以从理赔报告中提取事故发生的地点、时间、损失金额等信息,辅助理赔人员快速处理案件。
- 法律行业: 可以快速解析法律文件,提取关键条款、日期、当事人信息等,加速法律研究和案件分析。例如,分析合同中的违约责任、争议解决方式等。
- 医疗行业: 可以解析医学报告,提取患者病史、诊断结果、治疗方案等,辅助医生进行决策。例如,提取病理报告中的肿瘤类型、分级等信息,帮助医生制定个性化治疗方案。
在所有这些情况下,无论是挖掘太空知识,还是扫描法律细则,基于AI的PDF文档解析都有助于将非结构化文本转化为结构化洞察,快速、准确且随时可用。这不仅提高了工作效率,也为决策提供了更可靠的依据。根据麦肯锡的报告,AI驱动的文档解析可以帮助企业提高效率高达30%,并降低运营成本15%。
5. 总结:大模型驱动的文档解析,开启智能信息时代
大模型在PDF文档解析中的应用,为我们打开了一个全新的信息获取方式。通过Databricks的AI功能,我们可以轻松地将PDF文档转化为结构化数据,并利用大模型从中提取趣味太空知识或其他关键信息。这种方法不仅可以提高信息获取效率,还可以帮助我们更好地理解和利用这些信息。
随着大模型技术的不断发展,我们可以期待更多创新应用涌现,彻底改变我们与文档交互的方式。在未来,大模型将成为我们探索知识、解决问题的重要工具,开启一个智能信息的新时代。 进一步的研究方向包括:优化大模型的提示工程,以提高信息提取的准确性和效率;探索多模态大模型的应用,将图像、表格等信息纳入解析范围;以及开发更智能的文档摘要和知识图谱构建工具,帮助用户更好地理解和利用文档中的信息。