注解和标注是什么?在编程和 AI 中给内容加上额外信息
注解(Annotation),也常译作标注,在不同的领域有不同的含义。在编程领域,它通常指一种为代码添加额外信息的机制;在人工智能领域,它指的是为数据集添加标签或标记、以便对数据进行分类和训练的过程。
编程中的注解
在 Java 语言中,注解是 JDK 5.0 引入的一种机制,用来为代码添加元数据,也就是“关于代码的信息”。Java 中的类、方法、变量、参数、包等都可以被注解修饰。注解以 @ 符号开头,写在被修饰的代码前面。比如 @Override 表示这个方法是重写了父类的方法,如果父类中并没有这个方法,编译器就会报错,帮助发现拼写等错误;@Deprecated 表示这段代码已经过时,不建议再使用;@Test 在测试框架中标记一个方法是测试用例。
注解本身不直接改变代码的运行逻辑,但编译器、开发工具和框架可以读取这些注解,并据此执行相应的操作:比如在编译时进行检查、自动生成代码,或者在程序运行时根据注解进行配置。Spring 等 Java 框架大量使用注解来简化配置,开发者只需在代码上添加几个注解,就能完成原本需要大量配置文件才能实现的功能。Python 中也有类似的“装饰器”和“类型注解”。
人工智能中的标注
在人工智能和机器学习中,annotation 通常译作“数据标注”,指的是向数据集添加标签或标记,对数据进行分类和描述,为模型的训练提供“正确答案”。这是监督学习的基础:模型需要从大量标注好的数据中学习规律。
不同类型的数据有不同的标注方式。图像标注:给图片打上类别标签,用矩形框框出物体的位置,勾勒物体的轮廓,标注人体的关键点等。文本标注:标注文本的情感倾向,标注其中的人名、地名、机构名等实体,标注词性和句法结构,标注两段文本之间的关系。语音标注:把语音转写成文字,标注说话人、情绪和时间戳。视频标注:逐帧标注物体的位置,标注动作和事件。在大语言模型的训练中,还有一类重要的标注:人工编写高质量的问答示范,以及对模型生成的多个回答进行比较排序,用于指令微调和基于人类反馈的强化学习。
标注的质量至关重要
数据标注的质量直接决定了 AI 模型的效果:标注错误、标准不统一,都会让模型学到错误的规律。因此,高质量的标注需要清晰的标注规范、经过培训的标注员和严格的质量检查,专业领域的标注还需要领域专家参与。数据标注已经发展成为一个庞大的产业。为了降低成本,人们也越来越多地使用 AI 辅助标注:先由模型自动生成初步的标注,再由人工审核和修正。