datawhale-AI3-reasoning
datawhale 领读:https://linklearner.com/activity/12/3/3
竞赛-推理测试-天池:https://competition.sais.com.cn/competitionDetail/532231
题目涉及关系预测、数值计算、谜题等。
- ~ 8.21 14:00:报名,初赛
- 可单人组队
- 下载文件,本地调试,提交结果文件。每天3次提交机会,仅提交结果文件
- 最终Top150名提交代码审核
- Top100名进入复赛
- 8.29~9.24:复赛
- 10.:决赛
baseline
线上工具:modelscope 运行示例文件
- 注意:不推荐多次运行,仅供体验
代码:https://gitee.com/gigy/aimodel 活动2
赛题分析
- 场景:大语言模型处理推理任务
- 输入数据:逻辑推理的问题,500 行数据,一行1个问题,包含N个子问题,子问题为单选
- 目标:建立可推理的选择模型, 输出答案
answer。模型有高的准确度和泛性。可用深度学习模型解决推理问题,或对开源大模型进行微调。大模型微调方法:prompt 提示词优化:- 构造清晰明确的指令
- 引导模型进入语境:指明角色
- 或许,加点幽默
- 做些 RAG,agent
- 抽取结果上调整
// 输入数据,1行
{"problem": "有一群人和一些食物类型。下列是关于这些个体和食物的已知信息:\n\n1. 鸡肉是一种食物。\n2. 苹果是一种食物。\n3. 如果X吃了Y,且X活着,则Y是一种食物。\n4. Bill存活。\n5. Bill吃了花生。\n6. John吃所有食物。\n7. Sue吃所有Bill吃的食物。\n8. John喜欢所有食物。\n\n根据以上信息,回答以下选择题:", "questions": [{"question": "选择题 1:\n谁喜欢吃花生?", "options": ["Bill", "Sue", "John", "None of the above"]}], "id": "round1_test_data_000"}
// 调用模型获取答案。查错,纠错(默认答案/重新运行)
你是xxx,擅长xxx,问题是xxx,要解决xxx,响应格式是xxx
### 题目:
xxx
### 问题:
选择题1:
xxx
A. xxx
// 输出结果
{"problem": "有一群人和一些食物类型。下列是关于这些个体和食物的已知信息:\n\n1. 鸡肉是一种食物。\n2. 苹果是一种食物。\n3. 如果X吃了Y,且X活着,则Y是一种食物。\n4. Bill存活。\n5. Bill吃了花生。\n6. John吃所有食物。\n7. Sue吃所有Bill吃的食物。\n8. John喜欢所有食物。\n\n根据以上信息,回答以下选择题:", "questions": [{"question": "选择题 1:\n谁喜欢吃花生?", "options": ["Bill", "Sue", "John", "None of the above"], "answer": "A"}], "id": "round1_test_data_000"}
微调
推理理论
- 传统
- 定义逻辑
- 一阶逻辑:表达个体属性及关系。如“所有猫都有四条腿”
- 命题逻辑:真伪描述,如“A是真”
- 模态逻辑:引入“可能”、“必然”概念
- 描述逻辑:用于构建知识图谱,适合语义网,定义概念、类别和它们之间的联系
- 推理:分析知识、得出结论
- 前向链式推理:基于事实,应用规则
- 后向链式推理:根据目标,寻找依据
- 溯因推理:直接信息不足时,添加合理假设
- 非单调推理:随信息加入,允许之前的结论被修正或推翻
- 应对不确定或不完整信息
- 概率逻辑:
- 模糊逻辑:允许不同程度的真值。置信度
- 缺省逻辑:添加合理假设,做最佳推测
- 算法与优化:提升推理效率
- 单元传播:确立变量是否时,更新相关条件
- 冲突驱动的子句学习(CDCL):从冲突中提取新规则,避免重复错误
- 约束传播:缩小变量的取值范围,快速排除不可能项,加快搜索
- 机器学习
- 提取特征:将问题和选项转成计算机可理解的特征向量,如编码为数值向量,通过词袋模型(Bag-of-Words)、TF-IDF 或者词嵌入(Word Embeddings)如 Word2Vec 或 GloVe
- 选择模型:选适合分类任务的模型,如决策树、支持向量机、随机森林、逻辑回归、神经网络
- 训练模型:选有答案的 trains,将其特征向量输入模型中。模型会学习特征和答案间的映射关系
- 预测评估:使用 tests 验证模型准确性和泛化能力。tests 需要包含不曾见过的问题和选项
- 解决新问题
- 优化
- 逻辑规则嵌入:如,如果模型是神经网络,可以考虑使用神经符号集成(Neuro-Symbolic Integration)技术,其中逻辑规则被编码为网络的一部分
- 增强学习:奖励模型在逻辑上合理的选择,这样模型不仅学习到数据中的模式,还能学会基于逻辑原则做出选择
- 元学习:让模型学习如何学习,通过在多个相关任务上训练,使模型能够更快地适应新类型的选择题?
- 深度学习:自动学习特征
- 预处理数据:常用方法是,使用词嵌入(如Word2Vec、GloVe或FastText)或字符级嵌入,将文本转化为数值向量
- 选择模型:根据问题的复杂度和数据的特性选择
- 循环神经网络(RNNs): 特别是长短期记忆网络(LSTMs)和门控循环单元(GRUs),它们擅长处理序列数据,能够捕捉到文本中的上下文关系
- 卷积神经网络(CNNs): 卷积层能够检测局部模式,对于短文本和固定长度的输入有效
- 变换器(Transformers): 如BERT、RoBERTa等预训练模型,它们利用自注意力机制处理序列数据,能够高效地处理长文本和理解上下文。便于在大量未标记文本上进行预训练,再针对具体任务进行微调
- 记忆增强网络: 如记忆网络(Memory Networks)和端到端记忆网络(End-to-End Memory Networks),它们可以在内部存储和检索信息,有助于逻辑推理
- 处理多项选择:转成多标签分类问题。每个选项都是一个标签。模型预测每个选项的概率,将最高分作为答案
- 训练:选有答案的 trains,将其特征向量输入模型中。目标是最小化损失函数,通常是交叉熵损失,提高预测准确性
- 推理:测试/应用
- 后处理和解释: 添加额外的步骤,解释模型决策,如通过注意力权重来了解模型在做决策时关注了哪些部分的文本
- 集成学习: 多个模型预测结果,加权平均,以提高预测准确度
- 持续学习和调整: 保持数据输入,改进模型
remain
化学催化反应速率预测
in: trainset的 SMILES,Yield产率
- Reactant1 , Reactant2 , Product , Additive , Solvent: 物质的SMILES字符串
- Yield: 目标,归一化后的浮点数 float in [0-1]
out: testset 的 Yield
机器学习分两类:分类和回归。预测是回归问题 - 分类:预测结果值离散
- 回归:预测结果值连续
实现: - 数据处理:SMILES 转向量,用于建模
- 模型训练:使用随机森林模型训练数据
资料:
- pandas excel表格处理,读
文字版教程链接:https://inter.joyfulpandas.datawhale.club/Home.html
视频教程链接:https://www.bilibili.com/video/BV1tK4y177AF/ - 机器学习:
https://linklearner.com/learn/summary/13
https://scikit-learn.org/stable/index.html
市场博弈和价格预测
发电厂商的报价信息如下:
| 发电厂商 | 报价 (元/兆瓦时) | 发电能力 (兆瓦) |
|---|---|---|
| A | 100 | 100 |
| B | 150 | 200 |
| C | 200 | 150 |
| D | 250 | 50 |
总需求为 350 兆瓦。
- 报价排序:
- 排序后的顺序为 A、B、C、D。
- 累计发电能力:
- A: 100 兆瓦
- A + B: 300 兆瓦
- A + B + C: 450 兆瓦
- 确定市场出清价格:
- 当累计发电能力达到 350 兆瓦时,我们恰好在 A + B 的范围内,但为了满足总需求,我们需要 C 的一部分发电能力。
- 因此,最后一个被接受的发电厂商是 C,其报价为 200 元/兆瓦时。
- 市场出清价格为 200 元/兆瓦时。
siRAN药物药效预测
极端降水预报
Java2AI
计算机优势:速度快、准确率高
Java 优势:
- 编程基础和逻辑思维能力,便于理解和编写代码
- 经验:处理大规模数据和系统集成,如构建数据处理管道,整合不同组件,软件工程(生命周期管理,理解需求,设计高效可靠的系统,解决问题)
AI岗位
- 算法、NLP自然语言处理、视觉算法、图形算法、语音识别、深度学习、AI大模型
- 城市、制造、医疗、金融
强化:
- 线代、概率论、微积分。便于算法设计和实现
- 语言:Python
- 实践:简单项目-复杂项目,如人工智能分拣系、智能驾驶系统、智能聊天机器人系统
路线:以此为基础,垂直展开
- 基础
- 认识,工具
- Python:语法、技巧、三方库;Numpy 实践 线代
- 数据结构+Git,提高效率和解决复杂问题能力
- 核心:理解算法逻辑和数学原理,便于设计使用算法
- 数据预处理:使用图像、OpenCV,进行数据预处理,特征提取。视觉项目、车道线检测
- 机器学习:线性+激活逼近的结构;深度学习算法:模型构建、训练与性能优化
- 用微积分,理解机器为什么能学习;用概率论和数理统计,理解学习方式
- 深入:算法与神经网络架构
- 视觉:卷积神经网络的运行方式,视觉神经网络复现
- 自然语言:NLP-循环神经网络的关键技术栈与原理,使用 Word-Embedding 理解语言和模型
- 语言大模型:Transformer、注意力机制、位置编码、生成式人工智能原理
- 实战:数据采集、标注、增强-模型训练、预测、部署、上线
- 界面开发
- 数据集标注与制作、工业流水线产品分拣与目标检测、垃圾分拣实时监测、目标分割
- 大模型的RAG、微调与 Agent
- 部署上线
注:
- 辨别:人工智能>机器学习>深度学习
- 人工智能:感知、推理、行动、适应的程序
- 机器学习:用数据量学习规律、改进性能的算法,如线性回归、逻辑回归、决策树
- 数据质量要求高
- 分析股票市场、用户行为;预测房价
- 深度学习:用多层神经网络从大量数据中学习,如 CNNs 卷积神经网络、RNNs 循环神经网络;处理复杂数据结构,如图像、声音、文本
- 数据和计算资源量大
- 视频内容分析、语音识别、自然语言处理
- 卷积神经网络:提取图像特征、图像分类;需大量数据;用于医学、卫星、社交媒体图像识别
- 图像分类:贴标签;用于社交媒体的图片自动标签,安全监控系统的异常行为检测
- 目标检测:找特点对象位置,用于自动驾驶道路检测,零售商店的货架商品监控
- 实例分割:区分同类的不同对象(区分相似对象),用于农作物病害检测、工业生产线的缺陷检测
- 人工智能范围
应用:模型交付
- 产品:机器人、终端、工具
- 制造、家居、城市、农业、医疗、仓储、交通、助教、聊天机器人
技术:特征提取、模型构建 评估 训练 - 综合:视觉、语言、语音、大模型
- 算法:机器学习、深度学习
- 框架:PyTorch、TensoFlow、
基础(硬件):数据源采集、理解、处理 - 嵌入式,智能传感器;大数据、5G 通信、云计算
ref:
https://blog.csdn.net/l01011_/article/details/142339020