使用PyTorch实现线性回归
之前进行过机器学习的数学笔记-回归中,主要是人工计算导数以及更新计算 本次为对应《动手学深度学习》线性回归部分内容,使用PyTorch 来简化实现 构造测试数据 找到合适的数据比较麻烦,我们可以自己生成对应的测试用的数据,添加一定的噪声 线性模型:$\mathbf{y}=\mathbf{W}\mathbf{X}+b$,其中 $\mathbf{W}$ 和 $\mathbf{X}$ 都是矩阵 比如可以是$y=w_1x_1 + b$ 也可以是 $y=w_1x_1+w_2x_2+b$ 等等 我们可以根据输入的 $\mathbf{W}$ 和 $b$ ,根据$\mathbf{W}$的形状生成对应高斯分布的$\mathbf{X}$,执行 $\mathbf{y}=\mathbf{W}\mathbf{X}+b$ 获取对应的 $y$ 值 X 的值可以从高斯分布中采样,在pytorch中使用 torch.normal(均值, 标准差, 数据形状) 函数 对于$y=w_1x_1 + b$ 的形式,比如 w1=5.2, b = 3,那么可以用如下方法生成X 1234567891011121314# 均值...
基于SpringAI实现Agent
本文主要介绍一下通过Spring AI 来快速实现一个简单的类似OpenAI Agents SDK的功能 具体效果为在application.yml 中配置对应的agent 信息,如 12345678910111213141516171819202122spring: ai: agents: # 定义一个Agent - name: historyTutor # 与大模型交互时的Agent的系统提示词 instructions: You provide assistance with historical queries. Explain important events and context clearly. # 其他Agent可以获取到的关于当前agent的描述信息 handoffDescription: Specialist agent for historical questions # 定义另一个Agent - name: mathTutor instr...
如何构建一个Agent
原文:https://blog.langchain.com/how-to-build-an-agent/ 本文介绍了当我们有了想法之后,如何通过一系列的步骤来逐步实现一个agent 的过程 其中主要侧重思路和过程,不涉及具体的技术实现细节 下面内容为对原文的理解翻译学习,大家可以优先考虑阅读原文 Step 1: 举例说明agent的工作任务 首先挑选一些可以交给聪明实习生的工作,如果他都无法在足够的时间和资源的情况下完成,那么这个任务可能不适合agent 可以以想出5-10个具体的任务例子来开始,这样可以确保 验证你的想法的合理性,不会太琐碎或者模糊 可以为后续的效果衡量提供基准 例子:构建一个邮件agent 我们可以定义如下的任务: 优先处理来自关键利益相关者的紧急电子邮件 根据日程情况安排会议 忽略垃圾邮件或者不需要回复的电子邮件 根据公司文件回答产品问题 需要注意如下问题: 如果不能提供具体的例子,说明你的任务范围太宽泛了 如果传统软件效果更好时,不要考虑使用agent Step2: 设计操作流程 编写详细的标准操作流程(SOP),其中包含有关人类如何执行任务...
基于LlamaIndex的RAG简介
LLamaIndex顾名思义,看起来是一个适合构建索引的框架,也就是 RAG(Retrieval-Augmented Generation),所以我们本次主要看一下如何使用LlamaIndex 来实现一下RAG(当然,它也能用来实现智能体等功能) RAG 的交互流程如下 主要涉及如下几个步骤节点 快速使用 先通过一个例子快速感受一下如何使用,因为默认的OpenAI 的接口很难访问,这里使用阿里的dashscope 注册API 的部分参考官方文档即可,这里不再赘述 首先安装相关的依赖包 123pip install llama-indexpip install llama-index-llms-dashscopepip install llama-index-embeddings-dashscope 编写相关代码 123456789101112131415161718192021222324252627from llama_index.core import Settings, VectorStoreIndex, SimpleDirectoryReaderfrom...
LangGraph基本概念介绍
LangGraph 是一个用于构建大型语言模型 Agent 的编排框架,它与 LangChain 深度集成,具备出色的有状态流程管理能力。在之前的文章中,曾介绍过如何使用LangGraph及MCP实现Agent。在那篇文章中可以看到,得益于 LangGraph 内置的丰富组件,开发过程非常简洁。 本文将简要介绍 LangGraph 中常用的一些核心概念,帮助更好地理解和使用。如需详细内容,请参考官方文档 核心组件 State(状态) State 是 LangGraph 中的数据结构,用于表示一次对话流程中的所有信息,例如用户输入、大模型响应等。通常我们通过继承 TypedDict 或使用 Pydantic 的 BaseModel 来定义 State: 12345from typing import TypedDictclass ChatState(TypedDict): message: str response: str 我们将以一个简单的例子来展示如何使用 State 构建 LangGraph,可以先不关注其中的具体细节,只要看State 相关部分 12345...
使用LangGraph及MCP实现Agent
目前agent 大致有两种风格,一种是自己定义相应的工作流程(workflows),还有一种就是流程完全让大模型自己进行判断处理(agents) 本次主要简单记录一下使用langgraph 及mcp 实现一个 agents 这个可以认为是一个最简化工作流,只有llm 及tools 两个节点,当大模型判断需要调用tools 时就执行调用,直到大模型认为不需要调用工具,这时认为执行结束了,可以返回对应的结果 stateDiagram-v2 [*] --> Start Start --> Agent Agent --> Tools : continue Tools --> Agent Agent --> End : end End --> [*] 交互流程 sequenceDiagram participant U as User participant A as Agent (LLM) participant T as Tools U->>A: Initial input Note over A:...
机器学习数学笔记-分类
感知机 感知机是一种监督学习算法,用于解决线性可分(Linearly Separable)的二分类问题,具体内容如下: 计算预测值:$z=w_1x_1 + w_2x_2 + b$ 激活函数为阶跃函数: $$ y_{pred}= \begin{cases} 1 & z \ge 0\\ 0 & z \lt 0 \end{cases} $$ 参数更新函数: $$ w_i = w_i + \eta \cdot (y_{true} - y_{pred}) \cdot x_i$$ $$b = b + \eta \cdot (y_{true} - y_{pred})$$ 下面我们通过具体的例子,应用一下上面的公式来使用感受一下: 学生有两门课程的成绩,语文和数学,预测是否通过考试 假设每科分数均为 0-100,同时总分超过 120 分为通过考试 构造测试数据 12345678910111213141516171819202122232425import numpy as npimport matplotlib.pyplot as pltnum_samples = 50# 随机生成...
机器学习的数学笔记-回归
《白话机器学习中的数学》笔记 机器学习主要擅长包括回归、分类、以及聚类任务 回归是一种预测性的建模技术,用于确定一个或多个自变量(特征)与因变量(目标值)之间的关系,重点预测的是连续的数值。如根据房子的各类信息,预测房屋的价格 分类是将样本划分到不同的类别中,每个类别通常对应一个特定的标签,它是离散的、无序的。如根据邮件的信息判断其是否是垃圾邮件 聚类是将数据集中的样本划分成不同的组,使得同一组内的样本相似度高,而不同组之间的样本相似度低。聚类的结果事先是未知的,算法需要自行发现数据中的潜在结构。比如电商平台对客户进行分组,高消费、低消费等等。同时它和分类的区别就是它是无监督学习,而分类是有监督学习(可以认为是需要提供有正确答案的数据来学习) 这篇文章我们主要来学习一下其中的回归任务 最小二乘法 对于简单的线性变化,可以定义一个一次函数,定义如下 $$ f_\theta(x) = \theta_0 + \theta_1 x $$ 假设 x 对应的实际值是 y,那么我们假设的 $\theta_0$和$\theta_1$计算后的值,与实际值的误差可以表示如下 $$ E(\...
基于Trae开发自动表关联查询工具
对于复杂的一些业务,会涉及很多张表,其间有各种各样的关联关系,在开发&测试过程中,随时需要查看这些表中的数据状态,这种情况下需要我们写一些关联查询的SQL或者多条SQL执行来查看结果,个人感觉用起来还是不太方便,所以想开发一个关联表自动进行查询的工具 后端基于spring boot自行开发;前端部分使用了Trae,让大模型来进行的开发~ 后端项目代码、 前端项目代码、 体验地址 服务主要还是本地部署个人使用,为了简化,本地数据库使用了sqlite的文件形式存储,同时采用了将前端项目打包结果复制到后端项目中同步部署,所以没有其他任务外部依赖 在后端项目中启动后,直接访问 http://localhost:8080 即可使用,或者打包后通过 java -jar xxx.jar 执行 注意: 需要 jdk 版本大于等于 21 只支持MySQL数据库 没有做鉴权及SQL注入等处理,所以只建议本地安装个人使用 下面进行一下对应功能介绍 数据源管理 用来管理数据库(MySQL)的连接(需要服务所在的机器可以连接到数据库) 表字段关系管理 这里主要进行字段关系的维护,如果使用了...
使用Cursor开发聚会分账小程序
平时跟朋友一起聚会或者出游的时候,大家一般都会选择AA分摊费用,这样更公平也不伤感情。不过,问题也随之而来:支出总是乱七八糟的,比如谁打了车,谁买了菜,谁带了零食……光是汇总这些就够头疼了。如果再碰上有些开销不是所有人都参与,那结算起来简直就是灾难 之前我写过一个简单的Web小工具,本想着能解决问题,结果朋友们吐槽太麻烦,建议我做个小程序。不过,说实话,我对小程序开发完全是个小白。正好最近大模型特别火,我就想着用 Cursor 来试试,顺便满足一下好奇心。如果你也有类似的需求,可以来看看,说不定能帮上忙! 登录页面 目前登录可以随意注册账号,或者也可以通过微信登录(不需要任何其他权限,只使用了openId) 账本列表 每个账本可以理解为一次聚合,一次旅行等等 创建账本 账本费用明细 其中展示账本的费用明细,包含全部明细以及每个人的分摊明细以及应付、应收等 费用录入 费用分享 可以将费用明细分享给其他人 有兴趣的同学可以扫码体验 全部代码已上传Github: 后端代码、小程序代码 大家如果有其他建议之类的也欢迎交流~~
