
在不断进化的语言模型领域,Jina AI 最近推出了两款突破性的小型语言模型——Reader-LM-0.5B 和 Reader-LM-1.5B。这两款模型专为将嘈杂的 HTML 内容转换为清晰的 Markdown 格式而设计,不仅引领了小型语言模型(SLM)技术的新时代,还在处理多语种和长文本方面展现了非凡的能力。本文将深入探讨这两款模型的背景、架构、性能以及实际应用,以揭示其在现代数据处理中的潜力。
01。
背景与目的
2024年4月,Jina AI 推出了 Jina Reader,这是一种将任意 URL 转换为 Markdown 格式的 API。最初,Jina Reader 利用 Mozilla 的 Readability 工具提取网页内容,然后使用正则表达式和 Turndown 库将清理后的 HTML 转换为 Markdown。然而,这种方法并未能完全解决所有问题,如复杂的 HTML 结构和内容过滤不准确等。随着用户反馈的增加,Jina AI 决定采用语言模型端到端地解决这一问题。语言模型的引入不仅避免了依赖手动规则的局限,还提高了处理效率。Jina AI 的目标是利用小型语言模型(SLM)在边缘环境中高效地完成 HTML 到 Markdown 的转换任务,从而使这一技术更具成本效益和应用价值。02。
Reader-LM 模型介绍
Jina AI 发布的 Reader-LM 系列包括两个型号:Reader-LM-0.5B 和 Reader-LM-1.5B。这两款模型经过专门训练,旨在将原始 HTML 转换为 Markdown,并支持高达 256K 令牌的上下文长度。这对于处理现代网站中的冗长和嘈杂的内容至关重要。这两个模型均支持长文本处理,且具备多语种能力,使其成为全球应用的理想选择。03。
架构与规格
Reader-LM 模型的架构设计旨在高效处理长文本输入,并进行选择性复制。与传统的语言模型任务(如文本生成或代码编写)不同,Reader-LM 专注于识别并保留相关内容,跳过不必要的元素,如侧边栏和广告,以 Markdown 语法格式化剩余内容。这些模型能够高效处理高达 256K 令牌的上下文长度,从而应对现代网站内容中的冗长和复杂性。04。
性能与基准测试
在性能评估方面,Reader-LM-0.5B 和 Reader-LM-1.5B 的表现优于许多其他大型语言模型。它们经过了 GPT-4o、Gemini-1.5-Flash、LLaMA-3.1-70B 和 Qwen2-7BInstruct 等模型的严格基准测试。ROUGE-L(用于摘要和问答任务):Reader-LM-1.5B 达到 0.72 的分数,表现优于 GPT-4o。
Word Error Rate (WER,评估生成的 Markdown 与原始 HTML 之间的不匹配):Reader-LM-1.5B 为 1.87,相比之下其他模型的 WER 更高。
Token Error Rate (TER,衡量幻觉内容的比率):Reader-LM-1.5B 的 TER 为 0.19,显示了其在生成准确 Markdown 方面的优势。
这些指标证明了 Reader-LM 模型在从 HTML 生成准确 Markdown 方面的卓越表现,尤其是在处理复杂的 HTML 结构时。05。
训练与发展
Reader-LM 模型的训练过程包含了高质量的 HTML 和 Markdown 数据对。Jina AI 使用现有的 Jina Reader API 生成这些数据,并补充了 GPT-4o 生成的合成 HTML 数据。训练数据集总计约 25 亿令牌,分为两个阶段:短而简单的 HTML:涉及高达 32K 令牌和 15 亿训练令牌。长而复杂的 HTML:序列扩展到 128K 令牌,包含 12 亿训练令牌。此阶段采用了“锯齿环注意力机制”,以改进长文本处理。这些模型的训练和优化不仅有效提升了转换效率,还避免了不必要的计算开销。06。
实际应用
Reader-LM 模型的应用场景非常广泛。无论是个人用户还是企业,均可通过 Google Colab 进行测试,而生产环境则可以利用 Azure 和 AWS 等平台。Reader-LM 模型根据 CC BY-NC 4.0 许可提供商业使用选项,支持本地解决方案的公司。这些模型在数据提取和清理方面具有极高的效率,使得从 HTML 到 Markdown 的转换变得更加便捷。其多语种能力使其适用于不同语言和地区的应用,帮助开发者和企业优化数据工作流程,提升信息处理的精度和速度。要使用此模型,您需要安装transformers:pip install transformers<=4.43.4
# pip install transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "jinaai/reader-lm-0.5b"
device = "cuda" # for GPU usage or "cpu" for CPU usage
tokenizer = AutoTokenizer.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
# example html content
html_content = "<html><body><h1>Hello, world!</h1></body></html>"
messages = [{"role": "user", "content": html_content}]
input_text=tokenizer.apply_chat_template(messages, tokenize=False)
print(input_text)
inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)
outputs = model.generate(inputs, max_new_tokens=1024, temperature=0, do_sample=False, repetition_penalty=1.08)
print(tokenizer.decode(outputs[0]))
07。
结语
Reader-LM-0.5B 和 Reader-LM-1.5B 的推出标志着小型语言模型技术的重大进步,特别是在 HTML 到 Markdown 转换领域。这些模型不仅解决了现代互联网内容中嘈杂信息的问题,还提供了高效、成本效益高的数据提取解决方案。凭借其紧凑的体积、长文本处理能力和多语种支持,Reader-LM 系列为开发者和企业提供了强大且实用的工具,推动了数据处理技术的发展。