前端转大模型到底解决了什么问题?

tts文字转语音,语音转文字,人脸识别 先调用webRTC的getUserMediaStream获取音频流,用这个流初始化一个mediaNode,把它connect连接到一个jsNode,在jsNode的process回调里面不断地获取到录音的数据,停止录音后,把这些数据合并换算成16位的整型数据,并写入wav头部信息生成一个wav音频文件的内存buffer,把这个buffer封装成Blob文件,生成一个url,就能够在本地播放,或者是借助FormData进行上传。他有几个对开发人员可见的属性,包括音频时长,声道数量和采样率。 阅读详情

聊《做过前端的人学大模型,哪些经验可以直接迁移?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。

摘要

去年我带过一个前端同学转大模型方向,简历写得挺漂亮:React、Vue、TypeScript、动画效果,还有两个基于 LangChain 的 Agent 项目。面试时我让他现场讲一个项目,他讲得头头是道,流式输出、RAG 检索、多轮对话全都有。我追问了一句:"如果这个 Agent 能调用公司 CRM 系统,权限怎么管?日志怎么打?崩了怎么回滚?"他沉默了十秒钟。

这个场景不是个例。最近半年我看了不少前端转大模型的简历,普遍问题都一样:Demo 做得很炫,上线前检查几乎空白。大模型应用正在从"能跑就行"进入"能上线才算数"的阶段,权限、日志、可观测性成了硬门槛。前端同学的优势在,但需要补齐这块短板。

目录

  • 前端经验有哪些可以直接迁移
  • AI 应用的交互模式有哪些新东西
  • 权限和日志是前端最容易忽视的
  • 作品集应该展示什么
  • 总结

前端经验有哪些可以直接迁移

文章插图 1

先说结论:前端转大模型不是从零开始,很多能力是相通的。

交互设计能力是最直接的。大模型应用的交互模式和 Web 应用高度相似——输入框、按钮、加载状态、错误提示,这些前端天天在做。流式输出本质上就是个实时数据流渲染问题,和 WebSocket 推送没有本质区别。多模态体验也是,图片上传、语音识别、视频生成,前端早就驾轻就熟。

但有个关键区别:传统 Web 应用的状态是确定的,输入 A 必然得到输出 B。大模型应用的状态是概率性的,同样的输入可能产生不同的结果,甚至同一个请求可能超时、可能返回错误、可能触发安全策略。这意味着前端同学需要重新理解"异常处理"的含义——以前是处理用户操作错误,现在要处理模型的不确定性。

我见过的成功案例,都是把前端工程化思维迁移过来的。比如用状态管理库来管理多轮对话的状态,用组件化思想来封装不同的交互模块,用构建工具来管理 Prompt 模板和配置。这些都能直接复用。

AI 应用的交互模式有哪些新东西

文章插图 2

大模型应用的交互模式和传统 Web 应用有本质区别,主要体现在三个方面。

第一个是流式输出。传统接口是一次性返回结果,大模型应用通常是逐 token 流式返回。前端需要处理的数据结构变了,渲染逻辑也变了。以前是等数据全部返回再渲染,现在要边接收边渲染,还要处理中途断开的情况。

第二个是对话状态管理。传统应用的表单状态是扁平的,大模型应用的对话状态是树状的,需要维护多轮上下文、历史消息、工具调用结果。这个复杂度远超一个 React 组件的 state。

第三个是异步操作的可观测性。传统应用的异步操作有明确的开始和结束,大模型应用的异步操作可能持续几秒到几十秒,期间用户可能刷新页面、可能切换路由、可能发起新的请求。需要设计合理的取消、重试、降级策略。

以流式输出为例,这是前端同学最容易上手但也最容易踩坑的地方。下面是一个实际的实现:

import { useRef, useState } from 'react';

interface ChatMessage {
  id: string;
  role: 'user' | 'assistant';
  content: string;
  status: 'sending' | 'streaming' | 'done' | 'error';
  error?: string;
}

export function useChat() {
  const [messages, setMessages] = useState<ChatMessage[]>([]);
  const abortControllerRef = useRef<AbortController | null>(null);

  async function sendMessage(content: string) {
    const userMessage: ChatMessage = {
      id: Date.now().toString(),
      role: 'user',
      content,
      status: 'done'
    };

    const assistantMessage: ChatMessage = {
      id: (Date.now() + 1).toString(),
      role: 'assistant',
      content: '',
      status: 'streaming'
    };

    setMessages(prev => [...prev, userMessage, assistantMessage]);

    try {
      abortControllerRef.current = new AbortController();

      const response = await fetch('/api/chat', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
          messages: [...prevMessages, userMessage],
          stream: true
        }),
        signal: abortControllerRef.current.signal
      });

      if (!response.ok) throw new Error(`HTTP ${response.status}`);
      if (!response.body) throw new Error('No response body');

      const reader = response.body.getReader();
      const decoder = new TextDecoder();
      let accumulated = '';

      while (true) {
        const { done, value } = await reader.read();
        if (done) break;

        const chunk = decoder.decode(value, { stream: true });
        const lines = chunk.split('\n').filter(Boolean);

        for (const line of lines) {
          if (line.startsWith('data: ')) {
            const data = line.slice(6);
            if (data === '[DONE]') continue;

            try {
              const parsed = JSON.parse(data);
              const token = parsed.choices?.[0]?.delta?.content || '';
              accumulated += token;

              setMessages(prev => prev.map(msg =>
                msg.id === assistantMessage.id
                  ? { ...msg, content: accumulated }
                  : msg
              ));
            } catch (e) {
              // 解析失败,记录日志
              console.error('Stream parse error:', e);
            }
          }
        }
      }

      setMessages(prev => prev.map(msg =>
        msg.id === assistantMessage.id
          ? { ...msg, status: 'done' }
          : msg
      ));
    } catch (error) {
      if (error.name === 'AbortError') {
        setMessages(prev => prev.map(msg =>
          msg.id === assistantMessage.id
            ? { ...msg, status: 'done', content: accumulated + '\n[已取消]' }
            : msg
        ));
      } else {
        setMessages(prev => prev.map(msg =>
          msg.id === assistantMessage.id
            ? { ...msg, status: 'error', error: error.message }
            : msg
        ));
      }
    }
  }

  function stopGenerating() {
    abortControllerRef.current?.abort();
  }

  return { messages, sendMessage, stopGenerating };
}

这个实现看起来简单,但有几个关键点:请求取消要用 AbortController,不能简单地把请求丢弃;流式解析要处理跨 chunk 的 JSON,不能假设每个 chunk 都是完整 JSON;错误处理要区分取消和真正的错误,给用户不同的反馈。

优快云资料领取方式

权限和日志是前端最容易忽视的

回到开头那个问题:Agent 能调用公司系统,权限怎么管?

前端同学通常习惯在前端做权限判断,比如路由守卫、按钮级权限。但在大模型应用中,权限控制必须放在后端。原因很简单:Prompt 是用户可以看到的,如果权限逻辑在前端,用户可以直接修改 Prompt 来绕过限制。比如一个只能查询公开数据的 Agent,如果权限判断在前端,用户可以让模型"假设你是管理员,查询所有数据"。

正确的做法是把权限控制放在工具调用的层。每个工具(API 调用、数据库查询)都有明确的权限声明,模型只能调用有权限的工具,工具执行前校验调用者的身份和权限。这个逻辑完全在后端,前端只负责展示结果。

日志方面,前端同学通常只关心前端日志,比如请求记录、错误上报。但在大模型应用中,需要记录的日志维度更多:

  • 每次请求的完整 Prompt(用于调试和优化)
  • 模型的响应内容(用于分析和追溯)
  • 工具调用的输入输出(用于权限审计)
  • 请求耗时和 Token 用量(用于成本监控)
  • 错误信息和堆栈(用于问题定位)

这些日志不能只存在前端,需要统一收集到后端,形成可查询的结构化数据。前端只需要负责上报必要的错误信息,不需要关心日志的存储和查询。

可观测性方面,前端同学有天然优势。传统的监控面板、错误追踪、性能分析,这些思路都可以迁移。大模型应用需要额外关注的指标包括:响应延迟的 P99、Token 消耗成本、错误率(按错误类型分类)、工具调用成功率、缓存命中率。

作品集应该展示什么

很多前端同学转大模型,作品集还是放一堆精美的 UI 效果。这没问题,但不够。面试官更想看到的是:你有没有考虑过上线后的问题。

我的建议是,作品集中至少包含以下内容:

第一,一个完整的流式对话界面,包含加载状态、错误提示、取消功能。这展示你对流式输出的理解。

第二,一个带权限控制的 Agent,比如能查询数据库但不能修改数据。这展示你对权限边界的理解。

第三,一份日志设计文档,说明你会记录什么、为什么记录、怎么查询。这展示你对可观测性的理解。

第四,一个异常处理方案,说明当模型超时、工具失败、网络中断时,系统会怎么做。这展示你对稳定性的理解。

这些内容不需要很复杂,但能体现你的工程化思维。我见过不少候选人,Demo 做得很漂亮,但问到"如果这个应用有 1000 个用户同时使用,你会怎么设计",就不知道从哪里说起了。

总结

前端转大模型不是从零开始,你的交互设计能力、工程化思维、用户体验敏感度都是优势。但需要补齐的是:对不确定性的处理、对权限边界的理解、对可观测性的重视。

大模型应用正在从 Demo 阶段进入生产阶段,能跑起来的人很多,能上线的人很少。权限、日志、可观测性不是加分项,是必选项。前端同学如果能补齐这块短板,竞争力会很强。

我的建议是:不要只盯着模型调用的 API,多想想应用上线后会发生什么。一个能稳定运行、易于维护、成本可控的 Agent,比十个精美的 Demo 更有价值。

资料展示

下面是我整理的AI大模型学习资料和工具包预览,适合收藏后按主题逐步学习。

AI大模型资料展示 1

AI大模型资料展示 2

AI大模型资料展示 3

如果你想看完整资料目录,可以在评论区留言「资料」;也欢迎告诉我你更关注AI大模型里的哪类内容。

优快云官方大礼包

微信H5网页支付JSAPI部分用户报错:system:access_denied 的解决方案 JSAPI 支付仅支持微信内置浏览器调用。 阅读详情

相关推荐

matlab电偶极子源码,电偶极子的MATLAB场模拟

电偶极子周围电场电势分布的MATLAB三维模拟Matlab可以用于模拟四维场的效果,本文以电偶极子的电场和电势场为例展示MATLAB在该方面领域的应用。摘要电偶极子由一个正电荷和一个负电荷组成,其电场和空间电势分布与单电荷相比具有一些重要的特性。本文将给出电场和电势场的近似表达式。这两个量的精确表达式是复杂的,不太常用,因此 MATLAB 被采用来操作精确值和绘制三维分布的远区域, 近区域和一侧区...

weixin_35135480的博客 3150

前端转大模型:先别追热点,看看它到底能解决什么问题

先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做,以及从哪里动手。摘要:前端切入大模型应用开发,最大的误区是把 LLM 当成一个更聪明的 API。实际做产品时,决定项目能否对外交付的不是 Prompt 写得多花哨,而是交互状态怎么管、错误怎么兜底、成本怎么算清。本文结合近期行业从 Demo 向权限、日志和可观测性过渡的趋势,梳理前端开发者在 AI 工程化中的真实切入点,并给出作品集表达和简历优化的具体建议。前端的转型优势:交互直觉是隐形杠杆。

LLM_9528的博客 367

AnyLogic 建立谢林模型

AnyLogic 建立谢林模型说明创建一个新模型创建代理人群体和离散空间双击 people 前的图标,编辑 Person设置 Agent 的形状(Person)在模型中启用离散时间,实现代理行为点击 Person,进行编辑点击运行按钮效果图 说明 我们将把 Schelling 的模型实现为一个基于离散空间/离散时间的代理模型。空间代表一个城市,每个单元格代表一个房子。 agent 是人,是两种颜色:黄色和红色。 最初,人是随机分布在城市中的。人比房子少,所以总是有一个人可能会移动。 这个模型中的 agent

qq_45642410的博客 2577

【开发日志】数字人+LLM:从概念到实现的全程记录!

结论:数字人是比较鸡肋比较KPI的人工智能应用,它的应用场景仅限于生成视频投放到视频网站上或者去直播。在任何生产环境中很难提供真正的生产力。苹果的Siri等手机助手各种车机、物联网设备各种大模型的应用银行等机构的服务机器人没有一个是使用数字人的,算力是一方面,更重要的是根本没有达到算力应有的效果和实际的生产力。纯鸡肋。

2401_84204413的博客 4436

手把手教你编写PCIe设备驱动:基于Linux内核的实战教程

本文详细介绍了基于Linux内核的PCIe设备驱动开发全流程,包括环境准备、设备探测、中断处理、DMA配置等核心内容。通过实战代码示例和Makefile编写指南,帮助开发者快速掌握PCIe驱动开发技术,实现高性能设备驱动开发与优化。

weixin_30687051的博客 194

ESP32设备驱动-VCNL4040趋近传感器

VCNL4040 将趋近传感器 (PS)、环境光传感器 (ALS) 和高功率 IRED 集成到一个小型封装中。它通过CMOS工艺将光电二极管、放大器和模数转换电路集成到一个芯片中。

视觉与物联智能 942

数字人+LLM 开发过程记录

结论:数字人是比较鸡肋比较KPI的人工智能应用,它的应用场景仅限于生成视频投放到视频网站上或者去直播。在任何生产环境中很难提供真正的生产力。苹果的Siri等手机助手各种车机、物联网设备各种大模型的应用银行等机构的服务机器人没有一个是使用数字人的,算力是一方面,更重要的是根本没有达到算力应有的效果和实际的生产力。纯鸡肋。

Q2024107的博客 1533

QT开发串口程序与单片机通讯

如果有对象对这个信号感兴趣,想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。的内容,虽然实现的功能很简单,但是QT上位机开发的步骤基本就是这些步骤,通过这个基础实例把这些套路摸透我们就可以接着进行后续更多QT程序地开发学习了。QWidget类:所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。我们上面运行的上位机都是在Qt Creator中编译运行的,如果我们需要把编写好的可执行文件发送给别人使用的话还需要进行打包。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 948

SpringBoot项目接入阿里云通义大模型实现语音转文字

而调用这个指令时, 如果要转换的文件比如"C:\Users\Administrator\Desktop\yinpin\wav\aaaa.wav"已经存在了, 那么他会询问是否覆盖源文件, N/Y, 需要再输入一下Y来执行下一步, 这是我在测试的时候发现的, 正常来说上边的代码不会出现这个问题, 因为文件名都是随机的, 而且文件在使用完毕之后会删除掉. 如果想保险起见可以在店指令时附加-y参数, 就是总是选择是就好了, 就像这样。以下是逻辑代码, 注释尽量写的很详细了.好了, 现在就可以调接口了.

Mr_Sweetor的博客 1341

《QT+PCL》点云的点选与框选

【代码】《QT+PCL》点云的点选与框选。

阁楼 3602

声音源定位:利用YOLO与麦克风阵列定位声音来源YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一个用于目标检测的深度学习模型。YOLO的最大特点是其通过一次前向传播即可完成多个目标的检测,速度和精度相对其他目标检测算法具有显著优势。YOLO模型的版本不断更新,从YOLOv1到YOLOv10,算法精度和速度都有了显著的提升。声音源定位是利用多个麦克风阵列收集的声音信号,通过算法计算声音源的位置。声音源定位的关键在于准确估计每个麦克风的声音到达时间,从而确定声音源的空间坐标。基于时延估计(TDOA)

YOLO 673

Qwen3-VL视觉编程实测:1小时1块体验草图转代码黑科技

效率飞跃:从草图到可用代码只需几分钟,比手动开发快10倍以上质量可靠:生成的代码结构清晰,通过简单调整即可投入生产环境成本极低:按需使用GPU资源,实测1小时成本不足1元学习曲线平缓:无需复杂配置,跟着本文操作就能立即见效持续进化:模型会不断更新,建议定期检查优快云镜像广场获取最新版本现在就可以上传你的第一张草图,体验AI编程助手的魔力。我团队已经用这个方案完成了3个紧急项目的前端开发,实测非常稳定。💡获取更多AI镜像想探索更多AI镜像和应用场景?访问优快云星图镜像广场。

AgatePanther34的博客 281

【Cesium开发实战】解决加载白膜数据位置不合适问题(地底或浮空)

解决白膜位置地底或者浮空问题。

莫言情怼的博客 570

【Bug已解决】PDF generation method 解决方案

【Bug已解决】PDF generation method 解决方案 一、现象长什么样 你需要在程序里生成 PDF,但面对一堆方案不知道选哪个,踩了一圈坑: 用 print to PDF(浏览器打印)最省事,但样式不可控、分页乱、无法自动批处理; 你试了某个库,中文直接变方块(字体没嵌); 你要"从 HTML 生成 PDF",发现 wkhtmltopdf 停产、CSS 支持旧; 你要"精

博客 251

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

前端开发转大模型岗位面试全复盘

本文纯客观复盘前端转大模型岗位的全流程面试 + 备考经验,无多余营销,重点分享真实面试场景、高频考点及避坑技巧,帮同样想从前端转大模型相关岗位的朋友少走弯路。

huang9604的博客 599

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

前端解决跨域问题( 6种方法 )

跨域问题是指当一个网页试图访问来自不同源(域名、协议、端口)的资源时,浏览器会出于安全考虑而限制这种访问`**。这是因为浏览器的同源策略防止了恶意网站获取其他网站的敏感信息。

大剑师兰特的GIS世界 4937

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LLM大模型学习:33岁前端程序员如何转大模型?收藏这一篇就够了(非常详细)

最近各行各业都不容易啊,那个中金女员工跳楼事件频繁上热点,引起广泛的关注,本质上还是经济下行,我们互联网行业也是如此,特别是程序员,本来就有35岁危机,加上行业不景气,大厂都在裁员,那么我们程序员面对这困境怎么办呢,还有那些即将走上程序员岗位的年轻人怎么办呢,今天跟大家好好聊一聊这个话题,结合一下自己的经历,我是如何从前端转到大模型这个岗位的,希望能对大家有一点启发。

chengxuyuanyy的博客 893

前端程序员如何转型为大模型工程师?前端开发转ai转型攻略!

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!😝有需要的小伙伴,可以保存图片到。

程序员鑫港的博客 2132

前端如何进行大模型技术输出落地

最近一俩年,大模型实在卷的不行,以前我是觉得大模型和我一个干前端的没啥关系,可是在今年我的这个想法变了;身边的人都开始关心大模型的发展了,我们团队就开始发力去研究大模型了;我觉得是机遇来了,我们团队在研究了几个月后,还真的发现了不少的落地场景,其中不少还应用到了公司内部的业务,实现了为业务赋能的使命。今天我想给大家介绍的刚好是我们团队准备对外公开使用的大模型落地项目,是一个关于电商工具的垂直领域的工具,直接载体就是h5页面;

2401_85375298的博客 1445

前端如何进行大模型技术输出落地_前端接入大模型

最近一俩年,大模型实在卷的不行,以前我是觉得大模型和我一个干前端的没啥关系,可是在今年我的这个想法变了;身边的人都开始关心大模型的发展了,我们团队就开始发力去研究大模型了;我觉得是机遇来了,我们团队在研究了几个月后,还真的发现了不少的落地场景,其中不少还应用到了公司内部的业务,实现了为业务赋能的使命。今天我想给大家介绍的刚好是我们团队准备对外公开使用的大模型落地项目,是一个关于电商工具的垂直领域的工具,直接载体就是h5页面;

HJS123456780的博客 1448

前端程序员转行大模型,我可不想被裁了_前端ai大模型

前端程序员转行到大模型领域,需要学习一系列新的技能和理论知识。以下是一个学习路径的概览

qkh1234567的博客 2088

得物整个前端部门都没了转大模型,这次狼真的来了!

得物整个前端部门都没了,不是裁员、不是优化,而是要求他们集体转AI全栈,以后前后端代码都得写!说实话,这次前端真的危险了。

pythonhy的博客 1504
上一篇: 爬虫转大模型:抓数据是基本功,能让Agent上线兜底才是真本事
下一篇: Codex看起来很强,为什么一进真实项目就容易失控?
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值