对于像我一样的太空爱好者来说,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: 2Document: 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文档转化为结构化数据,并利用大模型从中提取趣味太空知识或其他关键信息。这种方法不仅可以提高信息获取效率,还可以帮助我们更好地理解和利用这些信息。

随着大模型技术的不断发展,我们可以期待更多创新应用涌现,彻底改变我们与文档交互的方式。在未来,大模型将成为我们探索知识、解决问题的重要工具,开启一个智能信息的新时代。 进一步的研究方向包括:优化大模型的提示工程,以提高信息提取的准确性和效率;探索多模态大模型的应用,将图像、表格等信息纳入解析范围;以及开发更智能的文档摘要和知识图谱构建工具,帮助用户更好地理解和利用文档中的信息。