Video yükleniyor...

Video Yüklenemedi

Ana Sayfaya Dön

HackerNews 上面的这个热门文章: 推荐大家看下,作者创建了一种 Context Mode 来节省上下文 token 当调用 MCP 的时候,工具调用会从两个方向消耗上下文窗口,输入和输出都会耗费 token。 作者的解决方案是:Context Mode 在 Claude Code 和外部工具输出之间再添加一层,核心目标是防止原始大块数据进入上下文窗口,实现高达 98% 的上下文节省 主要的实现原理: 1 沙箱隔离执行,每个工具调用在独立的子进程中运行,支持 10 种语言运行时(JS、Python 等),只把 stdout 结果返回,原始输出数据留在沙箱内不进上下文。 2 知识库 + 精简输出:使用 SQLite FTS5 虚拟表 + BM25 排名 + Porter stemming 对 Markdown 内容建索引,模型需要时再精准拉取代码块,而不是塞摘要或全文。 作者的测试数据: Playwright 快照:56 KB → 299...

36,372 görüntüleme • 4 ay önce •via X (Twitter)

0 Yorum

Yorum bulunmuyor

Orijinal gönderinin yorumları burada görünecek

Benzer Videolar

所有VibeCoding都应该看下这篇文章,我觉得有很多知识和方法论可以学习。 这篇文章是Varick AI Agents的CTO 写的,系统地总结了利用 Claude Code 进行高效开发的实战策略。 Eyad Khrais 强调先思考、后编码的核心理念,建议在执行任务前通过“计划模式”明确架构逻辑,而非盲目输入。 文件的配置技巧,指出该文件应作为动态的“项目指南”,通过简洁且带有意图说明的指令来引导模型。 关键内容总结: 1. 先思考,后行动 (Think First) 这是使用 AI 工具最关键的一步。绝大多数人犯的错误是直接开始输入,而不是先进行规划。 启用计划模式 (Plan Mode):连按两次 Shift + Tab 进入计划模式。花费 5 分钟进行规划,可以节省后续数小时的调试时间。 架构至上(这也是我说的需求至上):在要求 Claude 构建功能之前,必须先确定架构。如果输入模糊(如“建一个认证系统”),输出质量会很差; 如果输入具体(指定模型、存储方式、中间件等),输出会显著提升。 输入决定输出:如果你得到了糟糕的代码,通常是因为你的提示词或规划(输入)很差。 2. 掌握 文件 是 Claude 在每次会话开始前都会阅读的“入职材料”,决定了项目的成败。 保持简短:Claude 每次只能可靠地遵循约 150-200 条指令。不要写成小说,否则它会随机忽略内容。 具体且解释“为什么”:不仅要告诉它做什么(例如“使用 TypeScript 严格模式”),还要告诉它原因(例如“因为我们曾因隐式类型出过错”)。这种上下文能帮助 Claude 做出更好的判断。 持续更新:这是一个活文档。每当你需要纠正 Claude 两次以上时,就按 `#` 键将该指令添加到文件中。 3. 管理上下文窗口 (Context Window) 虽然模型拥有很大的上下文窗口(如 200k token),但在达到 100% 之前很久模型就开始退化了。 退化阈值**:大约在 **20-40% 的上下文使用率**时,输出质量就开始下降。 应对策略:限定范围:每个对话只专注一个功能或任务。 外部记忆:使用 ` 或 ` 等文件记录进度,以便跨会话延续工作。 重置技巧:当上下文变得臃肿时,复制关键信息,运行 `/compact`(压缩),然后 `/clear`(清除)上下文,最后粘贴回关键信息。这比在退化的上下文中挣扎要好得多。 经常清除:一旦对话偏离轨道,立即清除并重新开始。 4. 提示词工程与模型选择 明确需求:具体说明你想要什么,并明确指出**不要做什么**(例如“不要过度设计”、“不要增加不必要的抽象”)。 模型分工: Opus:适合复杂的推理、规划和架构决策。 Sonnet:更快更便宜,适合在架构确定后的具体执行和代码编写。 工作流:使用 Opus 进行规划,然后按 Shift+Tab 切换到 Sonnet 进行实施。 5. 高级工具与自动化 利用所有功能:尝试使用 MCP(连接外部服务如 GitHub、数据库)、Hooks(在代码更改前后自动运行 Prettier 或类型检查)和自定义斜杠命令(将常用提示词打包)。 无头模式 (Headless Mode):使用 `-p` 标志在非交互模式下运行 Claude,将其集成到脚本和自动化工作流中(如自动 PR 审查、日志更新)。 6. 摆脱死循环 当 Claude 陷入循环或持续出错时,**不要**继续增加指令或施压。 改变方法:清除上下文(`/clear`),简化任务,或者自己写一个最小化的示例代码展示给它看(Show instead of tell)。

比特币橙子Trader

27,794 görüntüleme • 6 ay önce

看我作为一个 AI 博主是如何用飞书 + 【可联网的】DeepSeek R1 搭建简单自动化工作流提升工作效率的 作为一个 AI 博主,日常一大部分工作是阅读和分享各种海外的AI资讯,这就少不了要翻译各种英文文章。之前我很多操作是手动的,比如复制粘贴文章到 Markdown 编辑器,然后从编辑器复制到 DeepSeek R1 或者 ChatGPT 去翻译,再改写后发布。 之前看 orange ai 分享的飞书多维表格接入 DeepSeek R1 的教程,【加上这周飞书的AI直播】,按照我自己的场景定制了几个工作流,最开始只是简单的文本翻译,后来发现也能用支持从图片提取文字,那意味着我可以直接先把图片转成文字,再基于翻译好的文本用 DeepSeek R1 翻译。简单设置后就成功了。 再后来我甚至更进一步,直接从 URL 抓取内容,然后借助 DeepSeek R1 翻译,最后甚至还可以把翻译后的文章用各种不同的文章风格改写,使用的时候只要输入 URL 就可以自动生成一篇高质量的文章,是真的很方便。 具体来说,就是飞书在添加字段的时候,可以选 ShortCuts(中文可能对应的是“快捷方式”),然后从快捷方式中选择各种不同的工具,比如说 AI 抓取、DeepSeek R1、图片 OCR、图片生成、抠图等等,并且你可以设置某个字段的内容为输入,以及自定义提示词。 就像我前面自动从 URL 生成文章的流程,主要有这样几个字段: - URL:输入 URL - 原始网页内容(AI Web Link Reader):从输入的 URL 中提取标题、内容为 Markdown 文本 - 翻译为中文(DeepSeek R1):将抓取后的 Markdown 文本翻译为中文 - 翻译为中文 - 输出结果:DeepSeek R1 的输出结果 - 风格改写(DeepSeek R1):将翻译后的内容用指定的风格改写,阅读起来更自然 - 风格改写 - 输出结果:DeepSeek R1 的输出结果 除了上面的 URL 生成文章外,里面还包含了几个不同的常用工作流: - 将输入的文本内容翻译为中文 - 将输入的图片内容翻译为中文 - 生成多条爆款标题供选择 工作流的飞书模板链接🔗我放在了评论,建议你也可以试试,应该可以发掘出不少有意思的场景。⬇️

宝玉

87,333 görüntüleme • 1 yıl önce

发现一个讲的很细的大语言模型微调教程,详细介绍了整个流程,包括数据准备、参数设置、资源监控等关键步骤。 基本没有技术能力也可以完成微调。想要了解 LLM 原理的可以按这个实践一下。 时间轴: 0:00 概念概览 3:02 自定义数据的准备 8:17 微调操作演示(T4 版本) 16:52 微调操作演示(A100 版本) 19:13 在 Hugging Face 上的保存与使用方法 文字版整理: ✲ 如何使用自己的数据对大语言模型进行微调(fine-tuning): 对大语言模型进行微调并不一定非常困难和昂贵。通过使用自己的数据集对预训练模型进行微调,可以让模型更好地适应特定的任务需求。微调过程能够在保留原模型语言理解能力的基础上,进一步提升其在特定领域或任务上的表现。 ✲ 使用Hugging Face模型库和Unslaw工具进行模型微调: Hugging Face提供了丰富的预训练语言模型资源,用户可以根据任务需求选择合适的模型作为基础进行微调。而Unslaw工具则提供了一套简单高效的微调流程,其优点包括出色的内存使用效率以及对扩展上下文窗口的支持。通过Unslaw,用户能够以较低的资源开销完成模型微调。 ✲ 在Google Colab上使用免费/付费GPU资源进行微调: Google Colab提供了免费和付费的GPU资源,用户可以根据任务的复杂程度选择使用T4或A100。对于大多数微调任务而言,免费的T4资源已经足够。但如果数据集较大或模型较为复杂,升级到A100可以获得更充裕的算力支持。Colab为用户提供了一个易于上手的模型微调环境。 ✲ 准备自定义的微调数据集: 准备微调数据的过程并不复杂。用户可以直接使用纯文本文件作为数据来源,而无需进行额外的预处理。为了获得理想的微调效果,建议至少准备100-200个样本。在示例中,为了快速演示,仅使用了几个样本。通过一个简单的Python脚本,可以方便地将原始文本数据转换为微调所需的JSON格式。 ✲ 修改Colab笔记本中的参数设置: 在Colab笔记本中,需要根据实际情况调整一些参数。例如,可以根据数据集的token数量来设置max_sequence_length参数,借助rope scaling技术,模型能够支持任意长度的上下文。此外,还可以选择使用Instruct系列模型作为base model,直接在其基础上进行指令微调。为了节省资源,可以启用4-bit量化。同时,参考Q-Lora论文的建议,调整R值和alpha值,以在资源占用和模型质量之间取得平衡。 ✲ 训练过程中的资源使用监控: 在模型训练过程中,用户可以通过Colab的资源监控选项卡实时观察GPU、内存和硬盘的使用情况。如果发现资源不足,可以考虑从T4升级到A100。通过监控资源占用,用户能够及时调整配置,确保微调任务稳定高效地进行。 ✲ 模型训练的loss变化和最佳checkpoint的选择: 通过记录不同训练步数下的loss值,可以判断模型的收敛情况。理想的做法是选择loss下降曲线趋于平缓的点作为最佳checkpoint,这样既能充分训练模型,又能避免过拟合。为了事后方便筛选,可以设置每隔一定步数保存一次checkpoint。 ✲ 模型微调完成后的保存与使用: 微调完成后,可以选择只保存adapter layers以加快保存速度。但更推荐的做法是保存完整模型,并使用float16精度,这样可以得到一个更通用和标准的模型格式,方便后续的部署和使用。 ✲ 在Hugging Face上公开或私有发布微调后的模型: 用户可以选择在Hugging Face的模型库中公开或私有地发布自己微调后的模型。发布之前,需要在Hugging Face账号中创建一个访问令牌,并在发布时提供相应的用户名和令牌信息。通过在Hugging Face上发布模型,用户可以方便地与他人分享自己的微调成果。 ✲ 使用微调后的模型进行推理(inference): 在使用微调后的模型进行推理时,首先需要加载保存的模型。接着,使用tokenizer对输入的文本进行处理,并将其传入模型。进行推理时,max_length参数需要与训练时保持一致,以确保生成的结果不会被截断。完成以上步骤后,就可以利用微调后的模型进行各种实际应用了。

歸藏(guizang.ai)

61,710 görüntüleme • 2 yıl önce

最近拿 StepFun 的 Step 3.7 Flash 跑了一次完整的自动编程流水线,从需求文档到能用的工具,65 分钟,中间没碰键盘。 先说模型。Step 3.7 Flash 的定位是把 Agent 工作流从头跑到尾:规划、写代码、跑测试、审代码、出错重试,看的是整条流程跑完的综合效率。原生多模态,开源可部署。Agent 循环一次要调几百次模型,快和便宜在这里不是锦上添花,是能不能跑得起的问题。 再说项目。hero-coding 是我用 Go 写的一个自动编程流水线:输入一份 Markdown 需求文档,四个 Agent 执行——Planner 把需求拆成带依赖关系的小任务,Worker 在独立的 git worktree 里写代码提交,Verifier 跑测试出硬证据,Reviewer 审 diff,通过就合入主干,不过就打回重做。四个角色全部由 Step 3.7 Flash 驱动,区别只是 system prompt 和工具权限。 这次给它的需求:做一个 Agent 运行日志分析工具,读日志文件,统计每个 Agent 的调用次数、成功率、平均耗时、token 消耗,找出最慢和最不稳定的 Agent。 实际跑下来: · Planner 把需求拆成 6 个任务,自动排好依赖顺序 · 6 个任务全部自动交付,逐个合入主干 · 期间 Reviewer 打回 5 次——有测试全绿但被审出正确性问题的,有只改测试期望值想糊弄过去被拒收的,全部在重试轮次内自动修复 · 不是一个模型在自言自语,是多个 Agent 在互相检查,而且检查真的拦住了东西 · 最终产出的 CLI 直接能用,视频结尾是它分析真实日志的输出 视频是完整过程的运行日志。 国内: 海外: StepFun

劳伦斯

51,555 görüntüleme • 1 ay önce

非常好的一个演示视频,通过可视化清晰的介绍了 LLM 的核心 Transformer 架构的原理。 包括词嵌入、自注意力机制等关键技术。对了解GPT-3等大型语言模型的内部结构很有帮助。 👇下面是文字版本: GPT的全称及其含义 GPT是Generative Pre-trained Transformer的缩写。其中,"Generative"表示这个模型是用来生成新文本的;"Pre-trained"意味着模型是在大量数据上预先训练好的;"Transformer"则指代一种特定类型的神经网络结构。因此,GPT本质上是一个基于Transformer架构、经过预训练、能够生成文本的语言模型。 Transformer的定义及其在AI领域的应用 Transformer是一种专门处理序列数据的神经网络架构。它最初是为机器翻译任务设计的,但后来被发现在其他许多NLP任务上也有出色表现,如语言建模、命名实体识别等。除了NLP,Transformer也被应用于语音识别、图像字幕生成等领域。Transformer的成功很大程度上归因于其独特的自注意力机制,使其能够高效地处理长程依赖关系。 Transformer的工作原理简介 Transformer的工作流程可以概括为三个主要步骤:首先,将输入的文本序列转化为一组向量表示;然后,通过自注意力机制和前馈神经网络对这些向量进行变换和更新;最后,根据更新后的向量生成输出分布,用于预测下一个词。整个过程中,自注意力机制起到了关键作用,使得模型能够动态地确定输入序列中每个位置与其他位置之间的相关性,从而更好地捕捉上下文信息。 Transformer处理文本信息的过程 当Transformer处理一段文本时,首先需要将其分割成一个个基本单元,如单词或子词,这些基本单元被称为"token"。接着,每个token都会被映射为一个高维向量,即"词嵌入"。这一步旨在将离散的文本符号转化为连续的向量表示,以便神经网络进行处理。然后,这些词向量会通过多个编码器层进行变换和更新,每一层都会综合考虑当前token与其他token之间的关系,从而使每个向量都融入了上下文信息。最后,解码器根据编码器的输出和之前生成的token,预测出下一个最可能的token。通过不断重复这一过程,Transformer就可以生成连贯的文本片段。 词嵌入(Word Embedding)的概念和作用 词嵌入是一种将词映射到高维向量空间的技术。通过词嵌入,每个词都被表示为一个实数向量,这个向量捕捉了该词的语义信息。词嵌入的一个重要特性是,语义相似的词往往在向量空间中距离较近。例如,"king"和"queen"这两个词的向量之间的距离会比"king"和"apple"的距离更近。此外,词嵌入还能够反映词之间的类比关系,如"king"-"man"+"woman"的结果会接近"queen"。词嵌入为神经网络提供了一种处理文本数据的有效方式,使其能够利用词语之间的语义关系进行推理和预测。 深度学习模型的基本结构和特点 深度学习模型通常由多个层组成,每一层对输入数据进行一定的变换,并将结果传递给下一层。层与层之间的连接通常是通过矩阵乘法实现的,其中矩阵的元素就是模型的参数。这些参数在训练过程中会不断更新,以使模型的输出与期望输出尽可能接近。深度学习模型的训练通常采用反向传播算法,即根据输出的误差,逐层调整参数的值。通过多次迭代,模型可以逐渐学习到数据中的规律和模式。深度学习模型的一个显著特点是,它们可以自动学习数据的表示方式,而无需人工设计特征。这使得深度学习在处理图像、语音等复杂数据时表现出色。 Softmax函数的作用和计算过程 Softmax函数常用于深度学习模型的输出层,特别是在多分类问题中。它的作用是将一组实数转化为一个概率分布,使得每个类别都有一个0到1之间的概率值,并且所有类别的概率之和为1。Softmax函数的计算过程分为两步:首先,对每个输入值取指数;然后,将每个指数值除以所有指数值的和。这样得到的结果就是一个合法的概率分布。Softmax函数有一个很好的性质,即输入值较大的类别会获得较高的概率,而输入值较小的类别的概率会趋近于0。这使得模型的输出更容易解释,并且有利于进行决策和预测。 生成模型预测下一个词的过程 当生成模型(如GPT)预测下一个词时,通常采用以下步骤:首先,根据前面已经生成的词,模型会计算出每个可能的下一个词的概率。这个概率分布反映了模型对不同词的偏好程度。然后,从这个分布中采样出一个词作为新生成的内容。接下来,模型将这个新词加入到已生成的序列中,并重复上述过程,直到达到预设的长度或遇到终止条件(如句号)为止。通过这种不断预测和采样的方式,生成模型可以创作出连贯而富有创意的文本。值得注意的是,为了提高生成文本的多样性和自然度,可以引入"temperature"等超参数来调节输出分布的形状。 GPT-3的参数量和嵌入矩阵 GPT-3是目前最大的语言模型之一,其参数量高达1750亿。这意味着,模型需要学习和存储大量的权重值,以刻画自然语言中的规律和模式。GPT-3的一个重要组成部分是嵌入矩阵(embedding matrix),它负责将每个词映射为一个高维向量。在GPT-3中,嵌入矩阵的大小为50257×12288,即词表中共有50257个不同的词(或子词),每个词被映射为一个12288维的向量。嵌入矩阵中的每个元素都是一个可学习的参数,在训练过程中会不断更新,以使得语义相似的词具有相近的向量表示。GPT-3庞大的参数量使其能够学习到比以往模型更加细致入微的语言知识,这也是其在各种NLP任务上表现出众的原因之一。 模型训练中的"Temperature"超参数 在生成模型的训练过程中,"Temperature"是一个重要的超参数,它控制着输出分布的形状。具体来说,temperature值越高,输出分布就越平缓,生成的结果也就越多样化;反之,temperature值越低,输出分布就越尖锐,生成的结果也就越保守。合适的temperature值可以在确保生成内容连贯性的同时,提高其丰富性和创造性。例如,当temperature值接近于0时,模型会倾向于选择概率最高的那个词,导致生成的文本可能流于老套;而当temperature值较高时,模型会给予概率较低的词更多机会,从而产生更加新颖和意想不到的结果。在实践中,temperature值通常需要根据具体任务和需求进行调整,以达到理想的平衡。

歸藏(guizang.ai)

51,871 görüntüleme • 2 yıl önce

微软2023年Build大会演讲:如何训练和应用GPT(中英文字幕) 这是本次微软2023年Build大会来自OpenAI的AI 研究员和创始成员Andrej Karpathy的一个主题为State of GPT的演讲。 演讲主要有两部分内容: 1. OpenAI是如何训练GPT的 2. 我们如何有效应用GPT 都是非常有价值的分享。 首先对于如何训练GPT,通常来说是四个阶段预训练(Pretraining),有监督的微调(Supervised Finetuning),奖励建模(Reward Modeling)和强化学习(Reinforcement Learning),这几个阶段通常是依次进行,每个阶段都有不同的数据集。 预训练(Pretraining): 这个阶段的目标是让模型学习一种语言模型,用于预测文本序列中的下一个单词。训练数据通常是互联网上的大量文本。模型从这些文本中学习词汇、语法、事实以及某种程度的推理能力。这个阶段结束后,模型可以生成一些有意义且语法正确的文本,但可能无法理解具体任务的需求。 有监督的微调(Supervised Finetuning): 在预训练后,模型会进入微调阶段。在这个阶段,人类评估员将参与并给出指导,他们会给模型提供对话样本,样本中包含了输入和期望的输出。这使得模型能更好地适应特定任务或应用,例如回答问题或编写文章。 奖励建模(Reward Modeling): 评估员将对模型生成的不同输出进行排名,以表示它们的质量。这个排名将被用作奖励函数,指导模型优化其生成的输出。 强化学习(Reinforcement Learning): 强化学习阶段是一个迭代的过程,模型会试图优化其行为以获得最大的奖励。在这个阶段,模型会产生新的输出,评估员会对这些输出进行排名,然后模型根据这个反馈调整其行为。 然后是如何有效应用GPT 在演讲中Andrej举了一个非常好的例子:人类和大语言模型(LLM)都是如何写作的?从这个例子中你能明显感觉到人类和GPT之间的差异。 假设你要写一篇文章去比较加利福尼亚州和阿拉斯加州的人口,你的写作的过程中可能是像这样的: - 我需要写一篇文章去比较加利福尼亚州和阿拉斯加州的人口 - 我需要去获取两个州的人口数据 - 我不知道这两个周的人口数据 - 去维基百科找到加利福尼亚州的人口是39.2M - 去维基百科找到阿拉斯加州的人口是0.74M - 现在我需要计算一下两个州人口数相差多少倍,但是可能需要计算机帮忙 - 用计算器算出来39.2除以0.74约等于53 - 快速的检查一下53倍这个数字是不是符合常识,嗯,这是一个相当大的比值,但加利福尼亚州毕竟是人口最多的州,所以这个结果或许是合理的,可以继续 - 好了,我现在有了我需要的所有信息 - 写下:“加利福尼亚州的人口比53倍的……” - 觉得好像不太好,删除重写成:“加利福尼亚州的人口是阿拉斯加州的53倍。” - 嗯,觉得还不错 也就是说,当人类写作时,哪怕是这样一个简单的句子,可能内心实际上进行了大量的运算的。 但当我们用GPT进行写作这样的句子看起来会是什么样呢? 从GPT的角度看,这只是一系列的标记(Tokens)。当GPT在接收到一个输入,比如你给出的主题。它会生成一段与输入相关的文本,GPT的目标是预测下一个词,所以它会连续生成一串词,形成一段连贯的文本。 从本质上看,Transformer只是标记模拟器,它不知道自己知道什么不知道什么,它不知道自己擅长什么或不擅长什么,它只是尽力生成下一个标记,它也不会进行反思,也不会不进行任何合理性检查。它不会纠正自己的错误,它只是产生抽样的标记序列,它没有像人类那样的内心独白流。 但是,GPT有一些优势,如它们拥有大量的基于事实的知识,并且拥有相对大的并且完美的工作记忆。GPT通过自我注意力机制,能立即获取到上下文窗口中的信息,从而进行无损记忆。然而,GPT在推理和判断方面的能力相对较弱,如果提出的问题需要更复杂的推理,单凭一个标记的信息,GPT往往无法给出正确的答案。 一些技巧可以提升GPT的表现,比如Cot(Chain of Though)设定步骤来引导GPT展示其工作过程,或者通过多次抽样然后选择最佳结果等,或者可以让GPT检查自己的输出,比如询问它是否完成了任务,最好是在Prompt中明确的要求它检查自己的输出。 后面还介绍了目前比较流行的GPT应用,比如Agent、Plugin、CoT、Embedding等 最后他用GPT-4写了一个结尾: “女士们,先生们,2023年Microsoft Build的创新者和先驱者们,欢迎来到这个独一无二的卓越人才的集结地。你们是未来的架构师,是塑造数字领域的视野家,在那里人类繁荣发展。拥抱科技的无限可能,让你的想法飞得和你的想象力一样高。让我们一起创造一个更连通,更出色,更包容的世界,为未来的世代留下。准备好释放你的创造力,探索未知,把梦想变成现实。你的旅程今天开始。” 原始视频地址: YouTube地址:

宝玉

298,761 görüntüleme • 3 yıl önce

向量数据库脑电图来啦! 把一大堆文档拖进 RAG,然后提问题,结果大模型回答的驴唇不对马嘴,是不是会怀疑大模型到底是怎样在向量数据库检索的, 才能搞成这个熊样? 来看这个 RAG 可视化项目 Project Golem! 它把向量数据库从黑盒变成了一个可交互的 3D "大脑皮层"。使用 UMAP 算法将 768 维的嵌入向量降维到 3D 空间,当你输入查询时,它不只是返回文本,而是会"点亮"与你的查询相关的神经通路。 这个项目的设计初衷是作为 RAG 的诊断工具。当检索失败时,你可以亲眼看到"思考"从嵌入查询出发所走过的精确路径。 如果看到一个紧密的簇亮起,说明模型找到了一个连贯的概念。如果可视化看起来很分散,那就意味着检索到的文本块在语义上彼此相距甚远,这正是你需要的视觉提示,告诉你 RAG 正在幻觉或强求关联。 技术栈方面,嵌入模型用的是 Google 的 embedding-gemma-300m,向量数据库是 LanceDB,前端是 Three.js 和 WebGL,后端是 Flask。 项目已经在 Reddit 的 LocalLLaMA 社区获得了 200 多个赞。有用户说这看起来真的像大脑中神经细胞的激活。还有用户说这对数据库优化太棒了,当某个查询表现不佳时,能立刻调出投影,瞬间获得一把手术刀。 项目还支持对接 Qdrant、Pinecone 等外部向量数据库,架构是解耦的,3D 查看器本质上是一个位于数据之上的界面,你无需移动数据,只需将其投影出来即可。 项目地址:

karminski-牙医

33,905 görüntüleme • 6 ay önce

OpenAI 的大神 Andrej Karpathy 前几天在他的 YouTube 频道讲了一堂课,系统的介绍了大语言模型,内容深入浅出,非常赞,抽空将它翻译成了双语,由于内容较长,我将分批上传,以下是第一部分精校后的双语视频,字幕文稿如下: Intro: Large Language Model (LLM) talk 大家好。最近,我进行了一场关于大语言模型的 30 分钟入门讲座。遗憾的是,这次讲座没有被录制下来,但许多人在讲座后找到我,他们告诉我非常喜欢那次讲座。因此,我决定重新录制并上传到 YouTube,那么,让我们开始吧,为大家带来“忙碌人士的大语言模型入门”系列,主讲人 Scott。好的,那我们开始吧。 LLM Inference 首先,什么是大语言模型 (Large Language Model) 呢?其实,一个大语言模型就是由两个文件组成的。在这个假设的目录中会有两个文件。 以 Llama 2 70B 模型为例,这是一个由 Meta AI 发布的大语言模型。这是 Llama 系列语言模型的第二代,也是该系列中参数最多的模型,达到了 700 亿。LAMA2 系列包括了多个不同规模的模型,70 亿,130 亿,340 亿,700 亿是最大的一个。 现在很多人喜欢这个模型,因为它可能是目前公开权重最强大的模型。Meta 发布了这款模型的权重、架构和相关论文,所以任何人都可以很轻松地使用这个模型。这与其他一些你可能熟悉的语言模型不同,例如,如果你正在使用 ChatGPT 或类似的东西,其架构并未公开,是 OpenAI 的产权,你只能通过网页界面使用,但你实际上没有访问那个模型的权限。 在这种情况下,Llama 2 70B 模型实际上就是你电脑上的两个文件:一个是存储参数的文件,另一个是运行这些参数的代码。这些参数是神经网络(即语言模型)的权重或参数。我们稍后会详细解释。因为这是一个拥有 700 亿参数的模型,每个参数占用两个字节,因此参数文件的大小为 140 GB,之所以是两个字节,是因为这是 float 16 类型的数据。 除了这些参数,还有一大堆神经网络的参数。你还需要一些能运行神经网络的代码,这些代码被包含在我们所说的运行文件中。这个运行文件可以是 C 语言或 Python,或任何其他编程语言编写的。它可以用任何语言编写,但 C 语言是一种非常简单的语言,只是举个例子。只需大约 500 行 C 语言代码,无需任何其他依赖,就能构建起神经网络架构,并且主要依靠一些参数来运行模型。所以只需要这两个文件。 你只需带上这两个文件和你的 MacBook,就拥有了一个完整的工具包。你不需要连接互联网或其他任何设备。你可以拿着这两个文件,编译你的 C 语言代码。你将得到一个可针对参数运行并与语言模型交互的二进制文件。 比如,你可以让它写一首关于 Scale AI 公司的诗,语言模型就会开始生成文本。在这种情况下,它会按照指示为你创作一首关于 Scale AI 的诗。之所以选用 Scale AI 作为例子,你会在整个演讲中看到,是因为我最初在 Scale AI 举办的活动上介绍过这个话题,所以演讲中会多次提到它,以便内容更具体。这就是我们如何运行模型的方式。只需要两个文件和一台 MacBook。 我在这里稍微有点作弊,因为这并不是在运行一个有 700 亿参数的模型,而是在运行一个有 70 亿参数的模型。一个有 700 亿参数的模型运行速度大约会慢 10 倍。但我想给你们展示一下文本生成的过程,让你们了解它是什么样子。所以运行模型并不需要很多东西。这是一个非常小的程序包,但是当我们需要获取那些参数时,计算的复杂性就真正显现出来了。 那么,这些参数从何而来,我们如何获得它们?因为无论 run.c 文件中的内容是什么,神经网络的架构和前向传播都是算法上明确且公开的。

宝玉

1,122,518 görüntüleme • 2 yıl önce