1. 项目概述与核心价值

最近在做一个挺有意思的项目,名字叫“Human I/O”,核心是尝试用大语言模型来检测“情境性障碍”。这听起来可能有点学术,但说白了,就是利用AI去识别和理解那些因为临时、突发或特定环境因素,导致我们使用数字产品时变得“笨手笨脚”的时刻。比如,你在地铁上单手拿着手机,另一只手抓着扶手,这时想回复一条消息,打字就变得异常困难;或者你在阳光刺眼的户外,手机屏幕反光严重,根本看不清内容;又或者你刚做完饭手上沾了油,触屏怎么滑都没反应。这些瞬间,你的“人机交互带宽”被严重压缩了,这就是典型的情境性障碍。

传统的无障碍设计主要关注的是永久性或长期性的障碍,比如为视障用户提供屏幕阅读器,为听障用户提供字幕。但对于这些“一闪而过”的障碍,系统往往是“盲”的。它不知道你现在正身处嘈杂环境听不清语音提示,也不知道你手指湿了触控不灵。Human I/O这个项目的出发点,就是想给系统装上“情境感知”的眼睛,让它能实时理解用户当前的操作困境,并主动调整交互方式,或者提供替代方案。

为什么现在做这个事变得可能了?核心驱动力就是大语言模型展现出的强大情境理解和推理能力。我们不再需要为每一种特定的障碍(如强光、单手操作、噪音)去编写死板的规则或训练专门的分类器。我们可以利用LLM作为一个通用的“情境理解引擎”,通过分析多模态的输入(如摄像头捕捉的环境画面、麦克风采集的音频、传感器数据、甚至用户当前的操作序列),让模型去“推断”用户可能遇到了什么困难。这个想法一旦落地,对于提升移动应用、车载系统、智能家居,乃至工业界的人机界面体验,都有巨大的潜力。它让交互设计从“静态适配”走向了“动态共情”。

2. 核心思路与技术架构拆解

2.1 从“规则驱动”到“模型驱动”的范式转变

过去处理类似问题,思路通常是“特征工程+分类器”。工程师需要先定义好要检测的障碍类型,比如“强光”、“潮湿手指”、“单手模式”。然后,针对每一种类型,去收集或设计对应的特征信号:检测环境光传感器数值是否超过阈值;分析触摸屏上报的触点面积、形状是否异常(油污可能导致触点模糊);监测设备陀螺仪数据判断是否处于移动状态(如行走中)等。最后,为每个分类器设定规则或训练一个机器学习模型(如SVM、随机森林)。

这种方法有几个明显的天花板:

  1. 扩展性差 :每增加一种新的情境障碍,就需要重新设计特征、收集数据、训练模型,成本高昂。
  2. 泛化能力弱 :规则是基于已知场景设定的,对于未预见到的、或多种因素交织的复杂情境(比如一边走路一边在阳光下看手机,同时还戴着耳机),系统很容易失效。
  3. 解释性差 :即使分类器给出了结果,也很难理解它做出判断的深层原因,不利于后续的交互决策。

Human I/O的思路是彻底的“模型驱动”。我们不再枚举障碍类型,而是将问题重构为: 给定当前时刻所有可用的多模态传感器数据流和用户交互历史,请大语言模型推理出“用户在当前情境下进行人机交互时,可能面临的主要挑战是什么?” 。我们把LLM当作一个具备常识和推理能力的“虚拟观察员”。这个范式的转变,使得系统具备了强大的零样本或小样本学习能力,并能对复杂、新颖的情境做出合乎情理的推断。

2.2 系统核心架构设计

为了实现上述思路,我们设计了一个分层处理的核心架构,如下图所示(概念图):

[传感器数据层] --> [多模态感知与编码层] --> [情境提示工程与推理层] --> [障碍解析与动作推荐层]

第一层:传感器数据层 这是系统的输入。我们尽可能聚合设备上可用的、能反映用户与环境状态的数据源,主要包括:

  • 视觉 :前置/后置摄像头捕捉的实时画面(需处理隐私,通常用低分辨率、边缘计算或经用户明确授权)。用于分析环境光照(是否过亮/过暗)、用户姿态(是否行走、奔跑、躺卧)、是否多人协作、是否有遮挡物等。
  • 音频 :麦克风采集的环境音(同样需严格隐私保护)。用于分析环境噪音水平(是否嘈杂)、是否有持续干扰声(如风雨声、机器轰鸣)。
  • 触控与运动 :触摸屏的原始触点数据(面积、压力、形状)、设备加速度计、陀螺仪、磁力计数据。用于推断操作精细度(是否手抖)、设备稳定性、是否处于移动状态。
  • 系统与环境 :环境光传感器数值、电量状态、网络信号强度、屏幕亮度设置、当前运行的前台应用信息。

第二层:多模态感知与编码层 这一层的任务是将原始的、高维的、异构的传感器数据,转化为LLM能够“理解”的紧凑表征。我们采用了混合策略:

  • 对于视觉和音频 :我们使用轻量级的预训练视觉模型(如MobileNet)和音频特征提取模型(如VGGish),将它们输出的高层特征向量,作为对当前画面和声音的“描述性嵌入”。我们不会把原始像素或音频波形直接扔给LLM,那效率太低且包含大量无关信息。
  • 对于时序传感器数据 (如加速度序列、触控点轨迹):我们进行简单的窗口化统计特征提取(如均值、方差、频谱特征),形成结构化文本描述,例如“过去5秒内,设备X轴加速度方差较大,表明用户可能正在行走”。
  • 对于系统状态 :直接转化为自然语言描述,如“环境光传感器读数:12000 lux(非常明亮)”、“电池电量:15%”、“当前网络:Wi-Fi,信号强度弱”。

第三层:情境提示工程与推理层 这是整个系统的“大脑”,也是最具挑战性的部分。我们需要精心设计给LLM的提示词(Prompt),引导它基于第二层提供的“情境摘要”进行推理。提示词的结构通常如下:

你是一个人机交互情境分析专家。请根据以下提供的多维度实时感知数据,分析用户在当前时刻与他的设备(主要是手机/平板)进行交互时,可能遇到的最主要的情境性障碍是什么。请专注于那些临时性的、由环境或用户自身状态导致的困难,而不是用户的永久性身体障碍。

【感知数据摘要】
- 视觉分析:画面整体亮度极高,存在强烈反光区域。检测到用户手持设备,且背景物体快速横向移动(可能是在交通工具上)。
- 音频分析:环境平均声压级为75分贝,存在间歇性低频轰鸣声。
- 运动传感器:设备持续存在低频晃动,符合乘坐交通工具的特征。
- 触控传感器:最近一次触控的触点面积离散度比正常情况高20%。
- 系统状态:屏幕亮度已自动调至最高。环境光传感器读数:1000 lux。

请逐步推理:
1.  首先,综合以上信息,描述用户当前可能所处的物理环境。
2.  然后,逐一分析每个因素可能对典型的触屏交互(如点击、滑动、输入)造成什么影响。
3.  最后,总结出1-3个最可能严重妨碍用户当前操作的情境性障碍,并按严重程度排序。

请用简洁、明确的专业术语输出你的推理过程和结论。

通过这样的提示,LLM会输出类似这样的推理结果:“用户很可能正在乘坐一辆行驶中的交通工具(如汽车、公交车)。强光(1000 lux)和可能存在的车窗反光会导致屏幕内容可视性差。车辆颠簸(低频晃动)和用户可能的站立姿态(手持)会降低操作稳定性和精度,导致误触或点击不准。环境噪音(75分贝)可能会掩盖设备的听觉反馈。因此,主要情境障碍按严重程度为:1. 屏幕可视性差;2. 操作输入精度下降;3. 听觉反馈通道受阻。”

第四层:障碍解析与动作推荐层 拿到LLM的推理结论后,系统需要将其转化为具体的交互适配决策。这一层我们建立了一个“障碍-动作”映射知识库。这个知识库不是硬编码的,而是可以通过学习更新。例如:

  • 障碍:“屏幕可视性差” + “环境强光”
    • 推荐动作1 :自动切换应用界面到高对比度模式(如果应用支持)。
    • 推荐动作2 :提示用户“检测到强光,是否朗读当前屏幕主要内容?”(启动语音输出)。
    • 推荐动作3 :临时调大系统字体和关键按钮尺寸。
  • 障碍:“操作输入精度下降” + “设备持续晃动”
    • 推荐动作1 :扩大触控目标的热区范围。
    • 推荐动作2 :启用防误触模式,短暂增加触控确认延迟。
    • 推荐动作3 :推荐使用语音输入替代打字。

系统会根据障碍的严重程度和当前应用上下文,选择一个或一组最合适的动作执行,或者以非侵入式的方式(如下拉通知栏建议)提供给用户选择。

3. 模型选型、提示工程与优化实战

3.1 大语言模型的选择与考量

在项目初期,我们在模型选型上做了大量对比测试。核心考量点包括:

  1. 推理能力与常识 :模型必须对物理世界、人类行为有深刻理解,才能从传感器数据中推理出情境。
  2. 上下文长度 :我们需要向模型传递一段时间窗口内的多维度数据摘要,提示词会较长。
  3. 响应速度与成本 :这最终可能是一个需要实时或近实时响应的系统,延迟和API调用成本必须可控。
  4. 多模态能力 :虽然我们主要传递的是特征摘要文本,但如果未来想尝试直接让模型理解部分图像特征,多模态能力是加分项。

基于这些考量,我们主要评估了GPT-4、Claude 3和开源模型如Llama 3 70B。GPT-4在推理和遵循复杂指令方面表现最为稳定和出色,但其API延迟和成本在频繁调用场景下是主要顾虑。Claude 3在长上下文和成本控制上表现不错,推理能力也接近GPT-4。对于原型验证阶段,我们最终选择了GPT-4 Turbo,因为其出色的指令跟随能力能让我们快速迭代提示词设计。在后续的优化阶段,我们正在探索使用Claude 3 Haiku(速度快、成本低)进行初步过滤,再用更强大的模型进行复杂情境的最终裁决,这种级联策略来平衡效果与成本。

注意 :模型选型没有绝对答案,强烈建议根据你的具体应用场景(延迟要求、预算、数据敏感性)进行POC测试。如果数据完全在本地,微调一个中等规模的开源模型(如Qwen2.5-7B)可能是长期更可持续的方案。

3.2 提示词设计的核心技巧与迭代

提示词的质量直接决定了系统性能的上限。我们的迭代过程充满了“坑”:

第一版(过于笼统) :“分析以下数据,看看用户有什么操作困难。”结果模型经常输出一些无关紧要的结论,或者混淆永久性残疾和情境性障碍。

经验1:明确角色与任务边界 。必须在提示词开头就固定模型的角色(“人机交互情境分析专家”),并严格限定其任务范围(“分析临时性的、由环境或用户自身状态导致的困难”)。这能极大减少无关输出。

第二版(数据堆砌) :我们把所有传感器原始数值或简短描述罗列进去。模型表现不稳定,有时会过度关注某个数值的微小波动。

经验2:数据预处理与摘要生成是关键 。直接扔原始数据给LLM是低效的。我们需要一个“感知摘要生成器”,用人类更容易理解的语言描述数据。例如,不是告诉模型“光感值=12000”,而是告诉它“环境光传感器读数:12000 lux(非常明亮,典型于晴朗户外)”。这个摘要生成器本身可以用小模型或规则实现,它的输出质量直接影响LLM的推理质量。

第三版(缺乏推理结构) :模型开始能识别一些明显障碍,但结论跳跃,缺乏可解释性,且对于多重因素交织的情况容易漏判。

经验3:强制链式推理(Chain-of-Thought) 。我们在提示词中明确要求模型“逐步推理”,并给出步骤模板(如先描述环境,再分析各因素影响,最后总结障碍)。这不仅能提高结论的准确性,其输出的推理过程本身也是极佳的调试和可解释性日志。我们发现,要求模型按“严重程度排序”能有效引导它进行优先级判断,这对后续的推荐动作决策至关重要。

最终版提示词还加入了以下元素

  • 负面示例 :在系统消息(System Prompt)中给出一些错误推理的例子,告诉模型什么是我们不要的。
  • 输出格式约束 :严格要求用清晰的列表、分级标题来组织输出,方便后续程序化解析。
  • 不确定性表达 :鼓励模型在证据不足时使用“可能”、“推测”等词语,而不是武断下结论。我们可以为低置信度的推断设置不同的处理策略(如仅记录日志,不触发自适应改变)。

3.3 性能优化与实时性挑战

实时性是这个系统走向实用的最大挑战之一。一次完整的处理流程涉及传感器数据采集、特征提取、LLM API调用(网络延迟)、结果解析与动作执行。在移动设备上,我们不可能为每一次触控都调用一次GPT-4。

我们的优化策略是:

  1. 事件驱动与节流 :系统不是持续运行,而是由特定事件触发分析周期。触发事件包括:环境光显著变化、设备运动状态改变(从静止到行走)、应用切换到一个新的交互密集型界面(如从列表页进入编辑页)、用户连续操作失败(如多次点击未命中目标)。同时,设置一个全局节流阈值(如每30秒最多分析一次),避免无意义的频繁调用。
  2. 本地轻量级预过滤 :在调用昂贵的LLM之前,先用一套本地的、简单的规则引擎进行快速过滤。例如,如果环境光在正常范围、设备静止、网络良好,且用户最近操作成功率高,则直接跳过本次深度情境分析。这可以过滤掉大部分“无障碍”的常规场景。
  3. 缓存与预测 :对于某些可预测的周期性情境(如用户每天通勤时段会进入“地铁摇晃+单手操作”模式),系统可以学习用户模式,在进入类似情境时提前加载或预执行相应的交互适配方案。
  4. 边缘计算与模型蒸馏 :长远来看,终极方案是将小型的、专门针对情境推理优化的模型部署到设备端。我们正在研究利用LLM(如GPT-4)生成大量的“情境描述-障碍标签”配对数据,然后用这些数据来微调或知识蒸馏一个参数量小得多(如1B-3B)的模型,使其能在端侧实时运行。

4. 应用场景与效果评估

4.1 典型应用场景剖析

Human I/O的理念可以渗透到无数具体的应用场景中,这里举几个我们正在探索或已验证有效的例子:

场景一:移动阅读与内容消费 用户在公交车上颠簸着看新闻App。系统检测到持续晃动和可能的户外光线变化。LLM推断出“操作精度下降”和“视觉疲劳风险”。适配动作:新闻App自动切换为“阅读模式”(减少界面元素,增大字间距和行高),并询问“是否开启自动滚动?”。这比用户自己去设置里翻找要贴心得多。

场景二:户外移动支付 用户在超市门口排队,阳光强烈,手里还提着购物袋。准备调出支付码时,屏幕反光严重。系统通过前置摄像头(在用户授权下)分析画面过曝,结合强光传感器数据,推断“屏幕可视性极差”。适配动作:支付App在检测到尝试调起支付码时,主动在屏幕中央用最大字体、最高对比度显示二维码数字编号(方便收银员手动输入),同时自动将屏幕亮度调到极限,并播放语音“支付码已就绪,数字是XXX”。

场景三:车内智能座舱交互 驾驶员在行驶中想要调节空调温度。传统触屏在颠簸路面上很难点准。系统综合摄像头(检测驾驶员视线偏离道路)、麦克风(检测车内噪音)、运动传感器(检测车辆振动),推断出“驾驶员注意力需集中驾驶,操作精度要求低”。适配动作:中控屏的空调调节区域临时放大,并将触控滑块步进值调大,让驾驶员能快速、粗粒度地完成调整。或者,直接建议“需要帮你把空调调低两度吗?”(语音确认即可)。

场景四:工业环境下的维护指导 技术人员在嘈杂的机房内,戴着脏手套,通过平板电脑查看设备维修手册。系统通过分析环境音、摄像头(脏手套遮挡)、触控点模糊,推断“听觉通道受限,触觉输入不精确”。适配动作:指导界面自动突出显示关键步骤的文本和图示,并开始高亮跟踪当前步骤。同时,将需要确认的“复选框”操作,改为更大的、支持手势划动的开关。

4.2 如何评估系统有效性

评估一个感知-推理-适配系统是复杂的,因为它不像分类任务那样有明确的准确率指标。我们采用了混合评估方法:

  1. 离线模拟评估 :我们构建了一个包含多种情境(如“地铁单手”、“厨房油手”、“阳光下车内”)的模拟测试数据集。每个情境都有我们人工标注的“黄金标准”障碍列表。然后,让我们的系统处理对应的模拟传感器数据输入,将LLM输出的障碍列表与黄金标准进行对比。我们使用**召回率(Recall)**作为核心指标,因为我们更关心系统是否漏掉了重要的障碍(这会导致适配失败),相对可以容忍一些误报(这可能导致不必要的适配,但用户通常可以取消)。在这个测试集上,我们目前的系统对主要障碍(严重程度高)的召回率能达到85%以上。

  2. A/B测试与用户体验指标 :在合作方的应用中进行小流量A/B测试。对照组用户使用原版应用,实验组用户开启Human I/O情境感知适配功能。我们监测的关键指标包括:

    • 任务完成时间 :在特定情境下(如下单、填写表单),实验组是否更快。
    • 操作错误率 :误触、错误点击、输入错误次数是否减少。
    • 用户主动撤销率 :当系统提供适配建议(如“切换语音输入”)时,用户采纳的比例有多高。
    • 用户满意度问卷 (ASQ或单项评分):直接询问用户在该情境下的操作体验。
  3. 可解释性与可控性评估 :这一点常被忽略,但至关重要。我们记录LLM每次推理的完整“思维链”。当用户对系统的自动适配行为感到疑惑或不满时,可以提供一条查看“为什么系统会这么做?”的入口,向用户展示简化的推理摘要(例如:“因为检测到您可能在行走且光线较暗,为防止误触,扩大了按钮点击区域”)。这能极大增加系统的透明度和用户的信任感。同时,必须提供便捷的开关,允许用户全局或针对特定应用关闭情境感知功能。

5. 隐私、伦理与未来挑战

5.1 隐私安全是生命线

这个系统需要处理摄像头、麦克风等高度敏感的数据。隐私处理不当,项目会瞬间死亡。我们的核心原则是:

  • 本地处理优先 :所有传感器数据的特征提取、摘要生成,尽可能在设备端完成。我们传递给云端LLM的,是经过脱敏和抽象化的“情境描述文本”,而不是原始图像或音频。例如,我们传递的是“画面亮度极高,检测到反光”,而不是一张包含用户背景环境的照片。
  • 明确授权与告知 :功能首次启用时,必须用最清晰的语言向用户说明会收集哪些数据、用于什么目的(“用于分析您的操作环境,以便提供更便捷的交互帮助”)、如何进行处理(“特征在本地提取,仅将匿名化摘要发送至云端分析”)。提供逐项开关。
  • 数据不关联、不存储 :云端服务不记录、不存储能关联到具体用户或设备的情境摘要。分析完成后即丢弃。所有用于模型改进的数据,都必须经过严格的匿名化和聚合处理。
  • 提供隐私仪表盘 :让用户可以随时查看过去一段时间内,系统在什么时间、基于什么推断(如“检测到强光”)、执行了什么动作(如“调高了对比度”)。透明是信任的基础。

5.2 伦理困境与设计哲学

即使技术可行、隐私合规,我们也面临伦理选择:

  • 过度干预与用户自主权 :系统在多大程度上可以“替”用户做决定?自动调整界面对比度或许可以接受,但自动发送一条根据情境推测内容的消息就可能越界了。我们的设计哲学是“建议优先,操作为辅”。绝大多数情况下,系统应以非模态通知(Toast)、状态栏提示或浮动按钮的形式提供“建议”,将最终决定权交给用户。只有在对用户体验有极大提升且风险极低的情况下(如自动开启屏幕朗读模式),才考虑自动执行,并必须提供即时撤销的途径。
  • 情境误判的后果 :如果系统误判用户在开车(实际是乘客),从而禁用了某些功能,会引起用户反感。因此,系统的推理需要多证据交叉验证,并设置较高的置信度阈值。对于涉及功能限制的决策,必须尤为谨慎。
  • 数字鸿沟 :这项技术可能会让熟练用户觉得被冒犯(“我知道怎么操作,别来烦我”),而让不熟练的用户受益。因此,个性化设置和学习用户偏好至关重要。系统应该能学习用户对各类建议的采纳/拒绝历史,逐渐调整其干预策略,实现“千人千面”的适度辅助。

5.3 未来发展方向与开放问题

Human I/O目前还是一个早期探索。未来的路还很长,有几个方向特别值得关注:

  1. 多设备协同情境感知 :当前主要局限于单设备。未来的情境应该融合手机、手表、耳机、智能家居等多设备的数据。例如,手表检测到用户心率升高、出汗(可能正在运动),手机端收到信息后,可以提前准备好语音交互界面。
  2. 从感知到预测与预防 :不仅检测当前障碍,还能预测即将发生的障碍。例如,结合日历和导航信息,预测用户10分钟后将进入驾驶状态,提前询问是否开启驾驶模式。
  3. 与操作系统深度集成 :目前我们的实现更多是应用层SDK。真正的威力在于与iOS、Android等操作系统深度集成,提供系统级的情境感知API,让所有应用都能无需重复开发即可受益。
  4. 更高效的小模型 :正如前文所述,依赖云端大模型非长久之计。如何训练出能在手机端实时运行的、专精于情境推理的“小模型”,是工程落地的关键。

这个项目的魅力在于,它站在了AI技术与人本主义设计的交叉点上。我们不是在制造一个更“聪明”的机器来替代人,而是在尝试让机器变得更“体贴”,去理解和适应人在复杂真实世界中的不完美与临时困境。每一次成功的识别与适配,都是一次微小的、技术对人类的善意关照。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐