26 篇文章带有标签 “generative-ai”

我可以 100% 证实,Qwen3.6-27B 在处理编程任务时是一款非常出色的本地模型。在过去的一个半月里,我几乎每天都在使用它,要么是在我的 M2 Ultra 上,要么是在我的 RTX 5090 电脑上。我用它来处理 ggml-org 中一些简单乏味的日常任务——没什么特别惊艳的,但对一个维护者来说绝对是个实用的工具。我想如果我不用把大量时间花在审查 PR(拉取请求)上的话,我使用它的频率还会高得多。目前,我使用了一个非常轻量级的环境——精简了所有内容的 pi agent(pi -nc --offline),并加了一段简短的系统提示词,以便让它更符合我的风格。 来源: Simon Willison 的网络日志

Georgi Gerganov

随着可用的软件越来越像拧开水龙头一样唾手可得,我感到很多事情都在发生变化。杰文斯悖论开始显现,我对软件的需求也在大幅增长。你可以要求任何东西——解释器、可视化工具、仪表盘、定制的单次使用应用……你可以把测试套件扩大 10 倍,自动优化代码,运行大型研究项目并用自定义 HTML 展示结果,什么都可以!《黑客帝国》里说的「解放你的思想」。来源: Simon Willison 的网络日志

Andrej Karpathy

我现在收到的很多创始人邮件都写成了一种强硬的新闻体风格。我知道它们是 AI 写的,因为以前从来没有创始人这样写过。一旦你意识到某件事是 AI 写的,就很难不去忽略它。

我从未 knowingly 读完过一封由人署名但由 AI 写的邮件。这感觉像被欺骗,谁会忍受呢?

这让我对作者评价降低。这意味着他们无法独立写好(或者觉得自己写不好),而且他们试图欺骗我。

用 AI 帮你写东西并不令人印象深刻;任何青少年都能做到。

来源: Simon Willison 的网络日志

Paul Graham

很难说清楚在过去两个月里,人工智能让编程发生了多大的变化:它不是以「往常一样逐步进展」的方式渐进发生的,而是就在去年十二月突然发生的。他指出,由于更高质量模型具备了「长期连贯性和执着性」,编程智能体「在十二月之前基本还不好用,但从那之后基本就能用了」。来源: Simon Willison 的网络日志

Andrej Karpathy

安德烈·卡帕西(Andrej Karpathy)发布了一篇微型散文(推文),提到自己买了一台 Mac Mini(“Apple Store 的店员告诉我这东西卖得像热饼一样快,大家都很困惑”),用来折腾 Claws

我对直接运行 OpenClaw 确实还有点怀疑……但我非常喜欢这个概念。我认为,就像 LLM 智能体(LLM agents)是建立在 LLM 之上的新层级一样,Claws 现已成为建立在 LLM 智能体之上的全新层级。它将编排、调度、上下文、工具调用以及某种持久性提升到了一个新的水平。 环顾四周,既然这种高层级的理念已经很明确,许多更小型的 Claws 已经开始涌现。例如,粗略浏览一下,NanoClaw 看起来非常有趣,它的核心引擎只有大约 4000 行代码(它既能装进我的脑子里,也能装进 AI 智能体的“脑子”里,因此感觉可控、可审计且灵活),并且默认在容器中运行所有内容。…… 总之,还有很多其他的例子——比如 nanobot、zeroclaw、ironclaw、picoclaw(这些前缀真让人发笑)。…… 目前我还不能 100% 确定我最终的配置会是什么样子,但 Claws 绝对是 AI 技术栈中一个令人兴奋的全新层级。

安德烈对新鲜术语有着极强的敏锐度(比如之前他提出的 “氛围编码 / vibe coding” 和 “智能体工程 / agentic engineeri

Andrej Karpathy

最初在 2019 年,OpenAI 使用 32 块 TPU v3 芯片训练了 168 小时(7 天),当时每块 TPU v3 每小时 8 美元,总成本约为 4.3 万美元。它达到了 0.256525 的 CORE 分数,这是 DCLM 论文中提出的一个综合指标,涵盖了 ARC/MMLU 等 22 项评测。

随着最近合并到 nanochat 的多项改进(其中许多来自 modded-nanogpt 仓库),我现在可以在单个 8XH100 节点上用 3.04 小时(约 73 美元)达到更高的 CORE 分数。这意味着在 7 年内成本降低了 600 倍,也就是说,训练 GPT-2 的成本大约每年下降 2.5 倍。来源: Simon Willison 的网络日志

Andrej Karpathy

2025 年,基于可验证奖励的强化学习(RLVR)脱颖而出,成为这一时期事实上的新重要阶段。通过在多个环境中利用自动可验证的奖励来训练大语言模型(例如数学/代码谜题),大语言模型会自发地发展出对人类来说看起来像「推理」的策略——它们学会将问题解决分解为中间计算,并学会多种来回探索的策略以弄清楚事物(参见 DeepSeek R1 论文中的例子)。来源: Simon Willison 的网络日志

Andrej Karpathy

凭借现在的人工智能,我们能够编写以前根本无法手工编写的新程序。我们通过指定目标(例如分类准确率、奖励函数)来做到这一点,并通过梯度下降搜索程序空间,以找到在该目标上表现良好的神经网络。

Karpathy 引用了他的「Software 2.0」博客文章。他指出,「可验证性」是人工智能优化中最具预测性的特征——如果一项任务是可验证的,那么它就可以直接或通过强化学习进行优化。而人工智能「练习」的环境必须满足三个要求:可重置、高效、可奖励。 来源: Simon Willison 的网络日志

Andrej Karpathy

LLM 推理在软件任务中扮演什么角色?

大型语言模型(LLM)的工作原理根植于模式匹配和对下一个词元的统计预测("随机鹦鹉")。从这种方法中产生的一个有些出人意料的能力是它们也能在一定程度上"推理"解决问题。有些模型的推理能力比其他模型更强,OpenAI的"o1"和"o3"模型是两个突出的推理模型,而DeepSeek的"R1"最近引起了很大轰动。但是当我们在编码任务中使用AI时,这种能力发挥什么作用呢?

剧透提醒:我还没有答案!但我有问题和想法。

我将从两个方面开始讨论,这两个方面在我的理解中是推理能力的限制,而且这些限制在编码环境中是相关的。然后我将分享我的想法,即推理在哪些编码任务中可能有用,在哪些任务中可能没用。

上下文至关重要,尤其是对推理而言

苹果公司去年发表的一篇关于大型语言模型推理局限性的论文引起了广泛关注。作者引入了一个新的基准测试,用来测试LLM在"数学推理"方面的能力。他们的基准测试基于一个已有的包含小学数学问题的测试集。他们选取了100个问题,将其转化为带有变量占位符的模板,然后为每个模板创建了50个变体,形成了一个包含5,000个问题的数据集。在第二步中,他们还创建了一个新的数据集,在问题中添加了无关信息。

他们发现:

探索生成式人工智能

生成式人工智能和特别是大型语言模型(LLM)已迅速进入公众意识。像许多软件开发人员一样,我对其可能性感到好奇,但不确定它最终对我们的职业意味着什么。我现在在Thoughtworks担任一个角色,协调我们关于这项技术将如何影响软件交付实践的工作。我将在这里发布各种备忘录,描述我和同事们正在学习和思考的内容。

随着智能代理编码助手变得越来越强大,反应各不相同。有些人从最近的进步推断并声称,"一年后,我们将不再需要开发人员。"其他人则对AI生成代码的质量以及为初级开发人员准备应对这一变化的挑战表示担忧。

在过去几个月中,我定期使用Cursor、Windsurf和Cline中的智能代理模式,几乎完全用于更改现有代码库(而不是从头创建井字游戏)。总体而言,我对IDE集成的最新进展以及这些集成如何极大地提升工具辅助我的方式印象深刻。它们

  • 执行测试和其他开发任务,并尝试立即修复出现的错误
  • 自动识别并尝试修复代码检查和编译错误
  • 能够进行网络研究
  • 有些甚至集成了浏览器预览功能,可以捕获控制台错误或检查DOM元素

所有这些都带来了与AI令人印象深刻的协作会话,有时帮助我在创纪录的时间内构建功能和解决问题。

然而。

即使在那些成功的会话中,我也一直在干预、纠正和引导。而且我经常决定不提交更改。

生成式人工智能

什么是生成式AI?

生成式AI是指能够根据提示或指令创建新内容的AI系统。这些系统被训练于大量数据,学习识别模式并生成类似于训练数据的新输出。现代生成式AI多为基于神经网络架构的深度学习系统。

目前主导生成式AI讨论的是大型语言模型(LLMs)。这些是经过大量文本训练的模型,可以生成连贯的文本,预测给定上下文中最可能的下一个词。尽管基础架构可能很复杂,但我们可以将其视为一个复杂的自动补全系统。

LLMs展现出的能力远超过以前的生成系统,它们能够:

  • 以难以与人类创作区分的方式撰写文章、小说、诗歌或代码
  • 回答问题、提供建议、编写报告、总结文档
  • 理解上下文并保持对话连贯性
  • 同时处理多种语言
  • 理解代码并生成新代码

关键应用领域

生成式AI已经在许多领域展示出其应用潜力:

代码生成和编程辅助

开发人员正在使用生成式AI工具(如GitHub Copilot、Amazon CodeWhisperer和Google Duet AI)来加速编码过程。这些工具可以:

  • 生成样板代码
  • 提出完整函数和算法
  • 帮助编写测试
  • 解释现有代码
  • 重构代码以提高质量
  • 生成文档

内容创建和营销

生成式AI可以产生各种形式的内容:

  • 博客文章、社交媒体更新和营销文案
  • 个性化电子邮件和通信
  • 产品描述和目录
  • 视频脚本和广告文案

客户服务和支持

生成式AI正在改变企业与客户的互动方式: 聊天机器人和虚拟助手 智能响应建议 自动票务分类和路由 知识库生成和

Thoughtworks 技术雷达 第30期

Thoughtworks 技术雷达

Thoughtworks 技术雷达 (Tech Radar) 是一份每半年发布一次的技术报告,涵盖了工具、技术、平台、语言和框架等方面的内容。这一知识成果来自于我们全球团队的经验,重点介绍了您可能想要在项目中探索的内容。

环的含义如下:

  • 1️⃣ 采纳 (Adopt)。我们认为您应该认真考虑使用的点。
  • 2️⃣ 试验 (Trial)。我们认为可以放心使用的点,但还没有达到“采纳”环中那么成熟的程度。
  • 3️⃣ 评估 (Assess)。值得关注的点,但除非非常适合您的需求,否则目前可能不需要试用。
  • 4️⃣ 暂缓 (Hold)。需要谨慎对待的点。

参考:

技术 1️⃣ 将 CI/CD 基础设施作为一种服务 - 2023年4月 将 CI/CD 基础设施作为一种服务已经是很多元化以及成熟的方案,以至于需要自己管理整个 CI 基础设施的情况变得非常少见。

Together AI - The fastest cloud platform for building and running generative AI

用于构建和运行生成式人工智能的最快云平台

注册 Together AI 的开发平台

Together AI Playground

速度非常快

Together AI Inference

OpenAI API from openai import OpenAI import os TOGETHER_API_KEY = os.environ.get("TOGETHER_API_KEY") client = OpenAI( api_key=TOGETHER_API_KEY, base_url='https://api.together.xyz/v1', ) chat_completion = client.chat.completions.create( messages=[ { "role": "system", "content": "You are an expert travel guide.", }, { "role": "user", "content": "Tell me fun things to do in San Francisco.

生成式AI

机器学习的方法

监督学习(Supervised Learning)

监督学习使用带有标签的训练数据来训练模型。这些标签是预先定义的输出,模型通过学习输入数据与这些输出之间的关系来进行预测。监督学习的任务通常分为两类:分类(预测离散的标签)和回归(预测连续的数值)。常见的监督学习算法包括决策树、逻辑回归、支持向量机(SVM)、神经网络等。监督学习广泛应用于图像识别、语音识别、医疗诊断等领域。

无监督学习(Unsupervised Learning)

无监督学习不依赖于标签数据,而是试图在没有明确指导的情况下发现数据中的结构和模式。它的主要任务包括聚类(将数据分组到不同的簇中)和降维(减少数据的复杂性,同时保留其主要特征)。无监督学习常用于市场细分、社交网络分析、异常检测等场景。算法示例包括K-means聚类、主成分分析(PCA)等。

自监督学习(Self-Supervised Learning)

自监督学习是一种无监督学习的形式,它通过从数据本身生成伪标签来创建监督信号。这种方法通常涉及到设计任务,使得模型能够从数据中学习有用的特征表示,而不需要人工标注。自监督学习在计算机视觉和自然语言处理中尤其流行,例如,通过预测图像的旋转角度或文本的下一个字来训练模型。这种方法有助于减少对大量标注数据的依赖,同时为下游任务提供预训练的模型。

生成式AI(Generative AI) 生成式AI的目标是

UnitMesh: AI 赋能软件研发全流程

UnitMesh

AutoDev - AI 辅助编程

AutoDev 是一款基于 JetBrains IDE 的 AI 辅助编程插件。AutoDev 能够与您的需求管理系统(例如Jira、Trello、Github Issue 等) 直接对接。在 IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。您所需做的,仅仅是对生成的代码进行质量检查。

UnitMinions - 《AI 研发提效研究:自己动手训练 LoRA》

Chocolate Factory - AI 开发框架

Chocolate Factory 是一款开源的 LLM 应用开发框架,旨在帮助您轻松打造强大的软件开发 SDLC + LLM 生成助手。

Studio B3 - 辅助需求编程器

Studio B3 是一个为内容创作设计的 AI 编辑器,适用于各种格式,如博客、文章、用户故事等。

UnitGen - 研发模型微调 UnitGen 是一个用于生成微调代码的数据框架 —— 直接从你的代码

AI 大模型

🔥 大模型

ChatGPT

讯飞星火

活字通用大模型

🔥 Andrej Karpathy

State of GPT

🔥 李沐 论文精读 如何读论文 AlexNet ResNet 零基础多图详解图神经网络(GNN/GCN) GAN Transformer BERT Pre-training ViT 卷积神经网络的两个归纳偏置:1、locality(相同区域有相同的特征);2、translation equivariance(平移等变性) local neighborhoods MAE Autoencoder 对比学习论文综述 数据增强:Crop 和 Color 的组合最有效 MoCo CLIP How to Train Really Large Models on Many GPUs?

How Diffusion Models Work

How Diffusion Models Work

扩散模型如何工作

Intuition(直觉)

Making images useful to a neural network(使图像对神经网络有用)

噪声处理:添加不同的噪声级别到训练数据中。

灵感来源于物理学,你可以想像一滴墨水滴入一杯水中,最初你确切地知道它落在哪里,但随着时间的推移,你看到到扩散到水中,直到消失。

神经网络真正应该思考的是在每个噪声级别,当你逐渐向图像添加噪声时:

  1. Bob the Sprite!: 如果是 Bob Sprite,你想让神经网络说那是 Bob Sprite,让 Bob 保持原样。
  2. Probable Bob: 如果可能是 Bob Sprite,你可能想让神经网络说你知道这里有些噪声,建议可能填写的详细信息,让它看起来就像 Bob Sprite。
  3. Well, Bob or Fred...: 如果它只是精灵的轮廓,你想建议可能的精灵的一般细节。
  4. No Idea: 如果看起来什么也不知道,建议提出什么是轮廓,让它看起来更像精灵。

Training a neural network to make sprites(训练神经网络制作精灵)

神经网络学习不同的噪声图像并将它们变回精灵。

它学会消除您添加的噪声。

"No Idea" 的噪声级别很重要,因为它是正态分布的,每一个像素的采样都来自于正态分布。

Building Systems with the ChatGPT API

Building Systems with the ChatGPT API

使用 ChatGPT API 构建系统

Language Models, the Chat Format and Tokens(语言模型、聊天格式和 Tokens)

Load OpenAI API key

import os
import openai
import tiktoken
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file

openai.api_key  = os.environ['OPENAI_API_KEY']

LangChain for LLM Application Development

LangChain for LLM Application Development

LangChain 是用于构建 LLM 应用程序的开源框架

LLM 应用程序开发的 LangChain

LangChain: Models, Prompts and Output Parsers

安装依赖包

pip install python-dotenv
pip install openai

ChatCompletion import os import openai from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) # read local .env file openai.api_key = os.environ['OPENAI_API_KEY'] def get_completion(prompt, model="gpt-3.5-turbo"): messages = [{"role": "user", "content": prompt}] response = openai.ChatCompletion.