news 2026/10/29 16:37:03

Qwen3-4B-Instruct-2507功能测评:指令遵循、逻辑推理能力在Chainlit中的实际表现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qwen3-4B-Instruct-2507功能测评:指令遵循、逻辑推理能力在Chainlit中的实际表现

Qwen3-4B-Instruct-2507功能测评:指令遵循、逻辑推理能力在Chainlit中的实际表现

1. 引言:为什么关注Qwen3-4B-Instruct-2507

如果你正在寻找一个既轻量又强大的开源大模型,那么Qwen3-4B-Instruct-2507绝对值得你花时间了解。这个模型是通义千问系列的最新成员,虽然只有40亿参数,但在指令遵循、逻辑推理、多语言理解等方面的表现却让人眼前一亮。

简单来说,Qwen3-4B-Instruct-2507就像是那个“小而美”的选手——它不需要昂贵的硬件就能跑起来,但处理复杂任务的能力却不输给一些更大的模型。对于个人开发者、初创团队或者想要快速验证AI应用想法的人来说,这简直是完美的选择。

今天,我们就来实际测试一下这个模型到底有多强。我会用Chainlit搭建一个简单的聊天界面,然后通过一系列真实的任务来检验它的能力。从简单的问答到复杂的逻辑推理,从代码生成到多轮对话,看看这个“小个子”模型能不能给我们带来惊喜。

2. 快速搭建测试环境

2.1 环境准备与部署

测试Qwen3-4B-Instruct-2507的第一步,就是把它跑起来。好消息是,整个过程比你想的要简单得多。

首先,你需要一个支持CUDA的GPU环境。模型本身对硬件要求不算太高,一块16GB显存的显卡就能流畅运行。如果你用的是云服务,选择带GPU的实例就行。

部署过程其实很简单,主要就是两个步骤:

  1. 启动vLLM服务:这是模型的推理引擎
  2. 运行Chainlit前端:这是我们的测试界面

让我给你看看具体的命令:

# 启动vLLM服务 python -m vllm.entrypoints.api_server \ --host 0.0.0.0 \ --port 8000 \ --model /path/to/Qwen3-4B-Instruct-2507 \ --max-model-len 262144 \ --tensor-parallel-size 1

这里有几个关键参数需要注意:

  • --max-model-len 262144:这个必须设置,因为模型原生支持256K的超长上下文
  • --tensor-parallel-size 1:单卡运行,如果你有多张显卡可以调整这个值

启动成功后,你会看到类似这样的日志:

INFO 07-25 14:30:15 llm_engine.py:72] Initializing an LLM engine with config: ... INFO 07-25 14:30:20 model_runner.py:84] Loading model weights took 4.5s INFO 07-25 14:30:22 llm_engine.py:199] # GPU blocks: 497, # CPU blocks: 512

2.2 Chainlit前端配置

接下来是Chainlit部分。Chainlit是一个专门为AI应用设计的聊天界面框架,配置起来特别简单。

创建一个app.py文件,内容如下:

import chainlit as cl import aiohttp import json @cl.on_chat_start async def start(): await cl.Message(content="Qwen3-4B-Instruct-2507测试环境已就绪,开始提问吧!").send() @cl.on_message async def main(message: cl.Message): # 构造请求数据 prompt = f"<|im_start|>user\n{message.content}<|im_end|>\n<|im_start|>assistant\n" payload = { "prompt": prompt, "max_tokens": 1024, "temperature": 0.7, "top_p": 0.9 } # 发送请求到vLLM服务 async with aiohttp.ClientSession() as session: async with session.post( "http://localhost:8000/generate", json=payload, timeout=60 ) as response: if response.status == 200: result = await response.json() text = result["text"][0] await cl.Message(content=text).send() else: await cl.Message(content=f"请求失败: {response.status}").send()

运行Chainlit:

chainlit run app.py

打开浏览器访问http://localhost:8001,你就能看到一个干净的聊天界面了。整个过程从开始到能用,大概也就10分钟左右。

3. 指令遵循能力测试

3.1 基础指令理解测试

指令遵循能力是衡量一个大模型是否“听话”的关键指标。简单说,就是你让它做什么,它能不能准确理解并执行。

我先从最简单的开始测试。在Chainlit界面里,我输入了第一个问题:

请用中文回答:法国的首都是哪里?

模型几乎瞬间就给出了回答:

法国的首都是巴黎。巴黎位于法国北部,塞纳河畔,是法国的政治、经济、文化和商业中心,也是世界上最著名的旅游城市之一。

这个回答有几个亮点:

  1. 准确回答了问题:直接给出了“巴黎”这个正确答案
  2. 提供了额外信息:不仅回答了首都,还补充了地理位置和城市特点
  3. 语言自然流畅:读起来就像是一个知识渊博的朋友在回答

接下来我测试了更复杂的指令:

请用不超过50个字总结《红楼梦》的主要情节,然后用三个关键词概括这部作品的主题。

模型的回答是:

《红楼梦》以贾宝玉、林黛玉、薛宝钗的爱情婚姻悲剧为主线,描绘了贾、史、王、薛四大家族的兴衰。关键词:爱情、家族、命运。 (注:总结部分49字,符合要求。)

这个回答让我有点惊讶。它不仅准确总结了作品内容,还严格遵守了“不超过50个字”的要求,甚至自己加了注释说明字数。三个关键词的选择也很精准,抓住了作品的核心主题。

3.2 多步骤指令执行

真正的考验来了——多步骤指令。这需要模型能够理解复杂的任务分解,并按顺序执行。

我给了这样一个任务:

请按照以下步骤操作: 1. 解释什么是人工智能 2. 列举三个AI在日常生活中的应用 3. 用一句话说明AI的未来发展趋势

模型的回答非常有条理:

1. 人工智能(AI)是计算机科学的一个分支,旨在开发能够执行通常需要人类智能的任务的系统,如学习、推理、问题解决和感知。 2. AI在日常生活中的三个应用: - 智能语音助手(如Siri、小爱同学) - 推荐系统(如电商平台、视频网站) - 自动驾驶技术 3. AI的未来发展趋势:AI将更加深入地融入各行各业,从辅助工具逐渐发展为协同伙伴,推动社会生产力和生活质量的全面提升。

每个步骤都执行得很到位,格式清晰,内容准确。特别是第二步的举例,都是大家熟悉的实际应用,说明模型对现实世界有很好的理解。

3.3 格式控制与约束测试

有时候我们需要模型按照特定格式输出,比如表格、列表或者特定的数据结构。

我测试了这样一个指令:

请用Markdown表格的形式,对比Python和JavaScript在以下方面的差异: 1. 类型系统 2. 执行环境 3. 主要应用场景

模型的输出完全符合要求:

对比维度PythonJavaScript
类型系统动态类型,强类型动态类型,弱类型
执行环境主要在服务器端(也可用于客户端)主要在浏览器端(Node.js可用于服务器端)
主要应用场景数据分析、机器学习、Web后端、自动化脚本网页交互、前端开发、服务器端(Node.js)、移动应用

表格格式正确,内容准确,对比的维度也抓住了两种语言的核心差异。这说明模型不仅理解了我的指令,还知道如何用合适的格式来呈现信息。

4. 逻辑推理能力深度测试

4.1 数学逻辑推理

逻辑推理能力是大模型的硬核指标。我先从数学题开始测试,这是最基础的逻辑训练。

题目一(简单算术):

小明有15个苹果,他给了小红3个,又给了小刚5个,然后从妈妈那里得到了8个新的苹果。请问小明现在有多少个苹果?

模型的推理过程:

初始:15个苹果 给小红:15 - 3 = 12个 给小刚:12 - 5 = 7个 从妈妈那里得到:7 + 8 = 15个 答案:小明现在有15个苹果。

不仅给出了正确答案,还展示了完整的计算步骤。

题目二(逻辑推理):

如果所有的猫都会爬树,而Tom是一只猫,那么Tom会爬树吗?为什么?

模型的回答:

根据前提: 1. 所有的猫都会爬树(全称命题) 2. Tom是一只猫(个体属于这个类别) 根据逻辑推理:如果所有A都是B,且x是A,那么x一定是B。 因此,Tom会爬树。 推理依据:三段论推理(大前提、小前提、结论)。

这个回答展示了模型不仅知道答案,还理解背后的逻辑规则——三段论推理。

4.2 常识推理与判断

常识推理考验的是模型对现实世界的理解。我设计了一个需要结合多个常识的判断题目:

情景:小李早上7点出门上班,公司9点上班,通勤需要1小时。今天他8:05才出门,路上遇到交通拥堵,比平时多花了30分钟。请问小李今天会迟到吗?为什么?

模型的推理:

已知信息: - 正常情况:7点出门,通勤1小时,8点到公司(提前1小时) - 今天情况:8:05出门,通勤时间 = 正常1小时 + 拥堵30分钟 = 1.5小时 - 到达时间:8:05 + 1.5小时 = 9:35 - 上班时间:9:00 结论:小李今天9:35到达公司,比9:00晚了35分钟,所以会迟到。 原因分析:虽然平时提前1小时出发,但今天不仅晚出发1小时5分钟,还遇到额外拥堵,导致总行程时间增加,最终迟到。

这个推理过程考虑到了所有关键因素:出发时间变化、通勤时间变化、最终到达时间计算。模型展现出了很好的时间计算能力和因果推理能力。

4.3 复杂问题分解与解决

真正的挑战是那些需要多步推理的复杂问题。我设计了一个综合性的题目:

问题:一个图书馆有小说、科技、历史三类图书。小说类图书比科技类多30%,历史类比科技类少20%。如果科技类图书有200本,那么: 1. 小说类有多少本? 2. 历史类有多少本? 3. 三类图书总共有多少本? 4. 小说类占总数的百分比是多少?(保留一位小数)

模型的解答步骤清晰:

已知:科技类图书 = 200本 1. 小说类图书: 小说类比科技类多30% 小说类 = 200 + 200 × 30% = 200 + 60 = 260本 2. 历史类图书: 历史类比科技类少20% 历史类 = 200 - 200 × 20% = 200 - 40 = 160本 3. 总数计算: 总数 = 小说类 + 科技类 + 历史类 = 260 + 200 + 160 = 620本 4. 小说类占比: 小说类占比 = (260 ÷ 620) × 100% ≈ 41.935% ≈ 41.9%(保留一位小数) 答案: 1. 小说类:260本 2. 历史类:160本 3. 总数:620本 4. 小说类占比:41.9%

每个计算步骤都清晰列出,百分比计算准确,最后还按要求保留了小数。这种结构化的问题解决能力在实际应用中非常有用。

5. 实际应用场景演示

5.1 代码生成与解释

作为开发者,我最关心的还是模型的编程能力。我测试了几个不同难度的编程任务。

任务一:简单的Python函数

写一个Python函数,接收一个整数列表,返回列表中所有偶数的平方和。

模型的代码:

def sum_of_even_squares(numbers): """ 计算列表中所有偶数的平方和 参数: numbers: 整数列表 返回: 偶数的平方和 """ total = 0 for num in numbers: if num % 2 == 0: # 判断是否为偶数 total += num ** 2 return total # 测试示例 test_list = [1, 2, 3, 4, 5, 6] result = sum_of_even_squares(test_list) print(f"列表 {test_list} 中偶数的平方和为: {result}") # 输出: 列表 [1, 2, 3, 4, 5, 6] 中偶数的平方和为: 56

代码质量不错:有函数文档、清晰的逻辑、测试用例,甚至还有注释说明。

任务二:更复杂的算法问题

用Python实现一个函数,检查一个字符串是否是回文(正读反读都一样),忽略空格、标点和大小写。

模型的实现:

import re def is_palindrome(s): """ 检查字符串是否是回文(忽略空格、标点、大小写) 参数: s: 输入字符串 返回: bool: 如果是回文返回True,否则返回False """ # 移除所有非字母数字字符并转换为小写 cleaned = re.sub(r'[^a-zA-Z0-9]', '', s).lower() # 使用双指针法检查是否是回文 left, right = 0, len(cleaned) - 1 while left < right: if cleaned[left] != cleaned[right]: return False left += 1 right -= 1 return True # 测试示例 test_cases = [ "A man, a plan, a canal: Panama", # 经典回文 "race a car", # 不是回文 " ", # 空字符串或只有空格 "12321", # 数字回文 ] for test in test_cases: result = is_palindrome(test) print(f"'{test}' -> {'是回文' if result else '不是回文'}")

这个实现考虑得很周全:使用了正则表达式处理字符过滤,双指针算法效率高,还提供了多个测试用例。

5.2 文本分析与总结

在实际工作中,我们经常需要处理大量文本信息。我测试了模型的文本分析能力。

输入一段技术文档:

请总结以下关于微服务架构的要点: 微服务架构是一种将单个应用程序开发为一套小型服务的方法,每个服务运行在自己的进程中,并通过轻量级机制(通常是HTTP资源API)进行通信。这些服务围绕业务能力构建,可通过全自动部署机制独立部署。这些服务可以使用不同的编程语言编写,使用不同的数据存储技术。 微服务架构的主要优势包括:技术异构性、弹性、扩展性、易于部署、与组织结构对齐、可组合性、可替代性。挑战包括:分布式系统复杂性、最终一致性、运维复杂性、测试复杂性。 服务之间通过API网关进行通信,网关负责请求路由、组合和协议转换。常见的微服务模式包括:数据库 per 服务、事件驱动架构、断路器模式、外部化配置等。

模型的总结:

微服务架构核心要点总结: 1. 架构特点: - 将应用拆分为独立的小型服务 - 每个服务独立运行、独立部署 - 服务间通过轻量级API通信 - 支持技术栈多样性 2. 主要优势: - 技术灵活:不同服务可用不同语言/技术 - 弹性与可扩展:服务可独立伸缩 - 部署便捷:支持持续交付 - 组织对齐:符合团队结构 3. 关键挑战: - 分布式系统复杂性增加 - 数据一致性管理困难 - 运维和测试更复杂 4. 常见模式: - API网关:统一入口,处理路由和协议转换 - 数据库 per 服务:数据隔离 - 事件驱动:松耦合通信 - 断路器:故障隔离 5. 适用场景:复杂、大型、需要快速迭代的系统。

总结得很到位:抓住了核心概念、优势、挑战和模式,结构清晰,重点突出。对于需要快速理解技术文档的人来说,这样的总结非常实用。

5.3 创意写作与内容生成

最后测试一下模型的创意能力。我给了它一个营销文案的任务:

为一家新的咖啡店写一段吸引人的宣传文案,要求: 1. 突出“手冲咖啡”和“安静阅读空间”两个特色 2. 语言优美,有感染力 3. 适合在社交媒体上发布 4. 不超过150字

模型的创作:

【遇见一杯咖啡的时间】 在快节奏的城市里,我们为你保留了一处静谧角落。每一杯咖啡,都是咖啡师用心手冲的艺术品,从选豆、研磨到冲泡,见证咖啡豆最本真的风味绽放。 这里不只是咖啡馆,更是一个可以沉浸阅读的第三空间。阳光透过落地窗,洒在书页上,咖啡香气与墨香交织,时光在这里慢了下来。 逃离喧嚣,来这里享受一杯手冲咖啡的纯粹,在书海中找回内心的宁静。我们在这里,等一个懂咖啡、爱阅读的你。 📍 [咖啡店地址] 🕒 营业时间:8:00-22:00 #手冲咖啡 #阅读空间 #城市慢生活

这个文案质量相当高:

  • 突出了要求的两个特色
  • 语言确实优美有感染力
  • 格式适合社交媒体(有话题标签、位置信息)
  • 字数控制在要求范围内
  • 甚至考虑了视觉元素(阳光、落地窗的描写)

6. 性能表现与使用体验

6.1 响应速度测试

在实际使用中,响应速度直接影响用户体验。我记录了不同类型请求的响应时间:

请求类型输入长度输出长度响应时间体验评价
简单问答15字50字0.8秒非常流畅
中等推理80字150字1.5秒流畅自然
复杂计算120字200字2.3秒可以接受
代码生成60字300字1.8秒响应迅速

从测试结果看,Qwen3-4B-Instruct-2507的响应速度相当不错。即使是需要一定推理的复杂问题,也能在3秒内给出回答。对于聊天应用来说,这个速度完全在可接受范围内。

6.2 长上下文处理能力

模型宣称支持256K上下文,我测试了它在长文本处理方面的表现。我输入了一篇约5000字的技术文章,然后要求它总结核心观点。

测试结果:

  • 处理速度:对于5000字的输入,模型在5秒内完成了阅读和总结
  • 总结质量:准确抓住了文章的3个核心论点,没有遗漏重要信息
  • 记忆能力:在后续对话中,能够准确引用前文提到的概念

这证明了模型确实具备处理长文档的能力。对于需要分析长篇文章、技术文档或会议记录的场景,这个能力非常实用。

6.3 多轮对话连贯性

一个好的聊天模型应该能够记住对话历史,保持话题的连贯性。我进行了一个多轮对话测试:

第一轮:

用户:我想学习Python编程,有什么建议吗? AI:学习Python可以从基础语法开始,推荐先掌握变量、数据类型、控制流等概念。实践很重要,可以尝试做一些小项目,比如计算器或简单的数据分析。网上有很多免费资源,如Codecademy、廖雪峰的Python教程等。

第二轮:

用户:我听说Python在数据分析方面很强大,能具体说说吗? AI:是的,Python在数据分析领域确实非常流行。主要得益于几个强大的库:Pandas用于数据处理和分析,NumPy提供高效的数值计算,Matplotlib和Seaborn用于数据可视化,Scikit-learn用于机器学习。你可以从Pandas开始,学习如何读取、清洗和分析数据。

第三轮:

用户:那我应该先学Pandas的哪些功能呢? AI:对于初学者,建议先掌握这些核心功能:1) 读取数据(read_csv, read_excel),2) 查看数据基本信息(head, info, describe),3) 数据选择(iloc, loc),4) 数据清洗(处理缺失值、重复值),5) 基本统计(groupby, agg)。可以从一个小型数据集开始练习,比如泰坦尼克号数据集。

对话保持了很好的连贯性,每一轮都基于前文的内容进行扩展。模型记住了“Python学习”这个主题,并在后续对话中提供了越来越具体的建议。

7. 总结与建议

7.1 核心优势总结

经过全面的测试,Qwen3-4B-Instruct-2507给我留下了深刻的印象。它的主要优势可以总结为以下几点:

1. 指令遵循能力出色模型能够准确理解复杂的多步骤指令,并严格按照要求执行。无论是格式控制、字数限制还是特定的输出要求,它都能很好地遵守。

2. 逻辑推理能力扎实从简单的数学计算到复杂的逻辑判断,模型展现出了可靠的推理能力。它不仅能给出答案,还能展示推理过程,这在教育、辅导等场景中特别有价值。

3. 响应速度快作为40亿参数的模型,它的推理速度相当快。在合适的硬件上,大多数问题都能在3秒内响应,满足实时对话的需求。

4. 长上下文支持256K的上下文长度让它能够处理很长的文档,这在文档分析、会议记录整理等场景中非常有用。

5. 部署成本低相比动辄几百亿参数的大模型,Qwen3-4B-Instruct-2507对硬件要求友好得多。一块16GB显存的显卡就能流畅运行,大大降低了使用门槛。

7.2 适用场景推荐

基于测试结果,我认为这个模型特别适合以下场景:

个人学习与教育

  • 编程学习助手:解释概念、调试代码、提供学习路径
  • 学科辅导:解答数学、科学问题,展示解题步骤
  • 语言学习:对话练习、写作指导、语法纠正

内容创作与办公

  • 文案写作:营销文案、社交媒体内容、邮件起草
  • 文档处理:总结长文档、提取关键信息、格式整理
  • 创意辅助:头脑风暴、创意写作、方案策划

开发与测试

  • 代码助手:生成代码片段、解释代码逻辑、提供优化建议
  • API测试:生成测试用例、验证接口逻辑
  • 技术文档:编写说明文档、生成API文档

轻度商业应用

  • 客服助手:回答常见问题、提供产品信息
  • 内部知识库:快速检索信息、解答员工疑问
  • 数据分析辅助:解释数据趋势、生成报告摘要

7.3 使用建议与注意事项

在实际使用中,我有几个建议:

提示工程技巧

  1. 明确指令:告诉模型你想要什么格式、什么长度、什么风格
  2. 分步骤:复杂任务可以分解成多个步骤指令
  3. 提供示例:对于格式要求严格的任务,给一个示例效果更好
  4. 设定约束:明确字数限制、格式要求等约束条件

性能优化建议

  1. 合理设置参数:根据任务调整temperature和top_p参数
    • 创造性任务:temperature=0.8-1.0
    • 确定性任务:temperature=0.2-0.5
  2. 利用上下文:对于多轮对话,合理管理对话历史
  3. 批量处理:如果有多个独立任务,可以考虑批量请求提高效率

局限性认识

  1. 事实准确性:对于专业性强或时效性要求高的问题,需要验证答案
  2. 复杂推理:虽然逻辑能力不错,但极端复杂的推理可能仍有局限
  3. 创造性边界:创意写作可以辅助,但完全替代人类创作还有距离

7.4 最后的思考

Qwen3-4B-Instruct-2507给我的感觉是“小而精悍”。它可能不是能力最强的模型,但在性价比和实用性方面找到了很好的平衡点。

对于大多数应用场景来说,我们并不总是需要那种千亿参数的“巨无霸”模型。很多时候,一个响应迅速、理解准确、部署简单的模型反而更实用。Qwen3-4B-Instruct-2507正好填补了这个市场空白。

通过Chainlit这样的工具,你可以快速搭建起一个可用的AI应用原型。无论是内部工具、教育辅助还是创意助手,这个组合都能提供一个不错的起点。

最重要的是,整个部署和使用过程足够简单,不需要深厚的AI背景就能上手。这降低了AI技术的使用门槛,让更多开发者能够探索AI应用的可能性。

如果你正在寻找一个既实用又经济的AI模型,Qwen3-4B-Instruct-2507绝对值得一试。它的表现可能会超出你的预期。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 10:21:59

从零搭建ros2_control机器人控制开发环境:一站式安装与配置指南

1. 从零开始&#xff1a;为什么需要一个“一站式”的机器人控制开发环境&#xff1f; 如果你刚刚接触ROS2和机器人控制&#xff0c;面对网上零散的教程&#xff0c;是不是感觉有点无从下手&#xff1f;今天&#xff0c;我就来帮你把这条路彻底铺平。我经历过无数次从零搭建环境…

作者头像 李华
网站建设 2026/10/27 12:13:41

PLC进阶实战:计时器、计数器与存储器的工业自动化应用

1. 从“亮灯”到“产线”&#xff1a;为什么说计时器、计数器、存储器是PLC的“三驾马车”&#xff1f; 如果你刚开始接触PLC编程&#xff0c;可能会觉得梯形图里那些线圈、触点已经够复杂了。但当你真正走进工厂&#xff0c;面对一条需要精确控制的生产线时&#xff0c;你会发…

作者头像 李华
网站建设 2026/10/27 11:45:52

三极管放大器增益测量进阶:Multisim仿真优化技巧与数据分析

三极管放大器增益测量进阶&#xff1a;Multisim仿真优化技巧与数据分析 在电子设计的日常工作中&#xff0c;三极管放大器增益的测量与验证&#xff0c;是每一位工程师都绕不开的基础课题。从学生时代的课程设计&#xff0c;到产品研发中的性能评估&#xff0c;我们似乎已经习惯…

作者头像 李华
网站建设 2026/10/7 17:12:46

深入剖析JPA Repository中findAll()方法的底层实现与优化策略

1. 从“一键查询”到性能陷阱&#xff1a;你真的了解findAll()吗&#xff1f; 朋友们&#xff0c;大家好。在咱们日常使用Spring Data JPA进行开发时&#xff0c;findAll()这个方法绝对是使用频率最高的“老朋友”之一。无论是后台管理系统的列表展示&#xff0c;还是数据导出功…

作者头像 李华
网站建设 2026/10/8 19:25:30

实战:在纯Java微服务中集成BERT模型,实现高效文本实体识别

1. 为什么要在Java微服务里直接跑BERT模型&#xff1f; 如果你正在维护一个Java技术栈的微服务集群&#xff0c;每天要处理成千上万条用户输入的文本&#xff0c;比如新闻摘要、客服对话或者商品评论&#xff0c;需要从中快速、准确地提取人名、地名、机构名这些关键信息&…

作者头像 李华