首页
学习
活动
专区
圈层
工具
发布

FastAI 之书(面向程序员的 FastAI)(五)

我们的独立变量将是从我们非常长的列表中的第一个单词开始并以倒数第二个单词结束的单词序列,我们的因变量将是从第二个单词开始并以最后一个单词结束的单词序列。...metrics=accuracy).to_fp16() 在训练分类器之前的最后一步是从我们微调的语言模型中加载编码器。...before_batch 在整理之前应用于项目列表上。这是将项目填充到相同大小的理想位置。 after_batch 在构建后对整个批次应用。这相当于DataBlock中的batch_tfms。...Jeremy 说 我在高度经验丰富的从业者中经常看到的一个常见实际错误是在分析过程中未能在适当的时间使用适当的数据集。特别是,大多数人倾向于从太大、太复杂的数据集开始。...例如,如果您从 1 开始乘以 2,您会得到序列 1、2、4、8,…在 32 步之后,您已经达到 4,294,967,296。

93610

我对安全与NLP的实践和思考

例如,在Webshell检测中,Webshell文件内容,在恶意软件检测中,API序列,都可以视作长文本数据,使用NLP技术进行分词、向量化、预训练等操作。...第二,起源于两个github项目。第一个是一个单纯的文本分类项目,作者是对3个文本数据集,使用1种特征化方法,训练13种机器学习和深度学习模型。...在不同的安全场景中,安全数据不同,采用的分词粒度也可能不同,例如用于恶意样本检测的动态API行为序列数据,需要进行单词粒度的划分。域名安全检测中的域名数据,最好采用字符粒度划分。...第二种预训练的方式,调个gensim库中word2vec类预训练,对于不在预训练字典中的数据,其词嵌入向量直接填充为0,第三种预训练+微调的方式,稍微复杂一点,简单来说就是前两种方式的组合,用第二种方式得到预训练矩阵...第一个非预期问题是,已知的库和函数不能完全满足我们的需求。一般来说,使用keras的文本处理类Tokenizer预处理文本数据,得到词序列索引,完全没有问题。

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从零到一:利用社区数据,LoRa微调与Spring AI 构建私有化千问模型

    无论是通过哪种方式提取文本,最终提取的内容都会被自动封装为适合向量数据库存储的 Document 格式。在此过程中,我们只关注文本内容,其他部分的内容将被忽略,确保AI能够高效地进行提取处理。...首先,确保你有一台至少具备20GB GPU内存的服务器。如果没有,可以考虑在云端租赁一台。这里我使用的是AutoDL AI算力云,具体细节就不再赘述。如果你没有微调的经验,我建议从零开始学习。...我个人是在一个开源项目中积累经验的,开源项目地址如下:https://github.com/datawhalechina/self-llm微调接下来,我们需要租赁一台服务器,环境依赖可以直接使用社区提供的镜像...如图所示:我使用的是从Qwen2.5-7B拉取的镜像,该镜像已包含开源项目所需的所有文件和目录。...我就不拿7B的基础模型作对比了,因为其效果显然不如Lora微调后的版本。为了做一个更合适的对比,我选择了我常用的Kimi模型。通过对比可以看出,确实在没有联网的情况下,某些知识的表现不如微调后的效果。

    74510

    IntelliJ IDEA 2018.3 重大升级,哪些功能打动了你?

    多行TODO评论 IntelliJ IDEA 2018.3现在支持多行 TODO 注释,现在第一个和所有后续的 TODO 注释行在编辑器中突出显示并列在TODO工具窗口中。...禁用对特殊文件和文件夹的代码格式化 我们已经可以从格式化、导入优化和代码重排中锁定某些文件——实际上是从任何涉及格式化的操作中锁定,无论是显式的还是隐式的。...VCS日志中的高级导航 您现在可以在VCS日志中从提交散列导航到VCS日志选项卡中的提交之后,或者在使用Go to hash/branch/tag操作之后,使用前进和后退导航操作。...现在,您可以在“ 异步注释配置”对话框中定义自己的异步注释。 删除所有断点的操作 IntelliJ IDEA 2018.3提供了一些方便的新操作,可以删除项目中的所有断点或文件中的所有断点。...IDEA 分析 Java 程序的性能分析了,主要包括如下几个方面: 火焰图分析 CPU 性能消耗,你可以分析 Java 进程的所有线程的 CPU 消耗火焰图,也可以只选择一个线程来分析 方法调用图,可以找到在某个线程中

    2K20

    从零训练一个多模态LLM:预训练+指令微调+对齐+融合多模态+链接外部系统

    模板结构是一个文本字符串,有两个槽:一个输入槽 [X],用于输入问题,一个输出槽 [Z],用于中间生成的答案文本Z。在实际操作中,为了让模型理解任务,用问题和答案填充模板得到几个学习样例。...然后用实际输入填充模板并和学习样例组合起来,得到完整的prompt一起输入模型。在情感分析任务中,模板的形式可以采用"[X], it is [Z].”。...然后,采用 ChatGPT/GPT-4 对进化得到的指令生成回复。进一步,混合所有生成的指令数据来微调语言模型。 下图展示了一个Evol-Instruct的例子。从一个简单的初始指令“1+1=?”...主要有两种方法,一种是通过提示将外部工具集成到LLM中,这种方法容易受到输入长度的限制。另一种方法是通过在API>数据集上有监督的微调LLM,实现其在广泛APIs集合上的准确调用。...2.2 模型选择 如表1所示,在解析了任务之后,LLM根据模型描述选择托管在huggFace上的专家模型来执行任务。

    8.8K22

    小白避坑指南:国内用Colossal-AI微调DeepSeek 1.5B的完整踩坑记录(附镜像加速方案)

    我会尽量用通俗易懂的语言进行表达,由于笔者能力有限,有错误之处,请大家多多担待,可以在评论区跟我指出交流。基本流程:1 从hugging face上下载我们需要微调的模型,这里笔者试了很多方法。...我们只需要调用相应的官方提供的API就能够相应的策略(像笔者有两张A100的卡就能得到的充分利用)。...启动器设置的,可以使用colossalai.launch_from_torch()这个函数直接从环境变量中读取。...(如模型、优化器、损失函数和学习率调度器)中,本质上是对于模型进行的再次封装,要注意封装过后,模型很多原来的函数使用方式要变,封装后的模型不具备原本的函数。...写在最后以后还是要及时编写博客,因为好多东西是一段时间之前的,很多坑已经忘了,写了一些印象比较深的坑。之后笔者会继续使用强化学习算法微调deepseek,感兴趣的友友可以多多关注。

    64900

    纯手工打造车载车牌识别检测系统,现已开源!

    第一步:确定项目范围 开始之前,我脑海里出现的第一个问题是这样一个系统应该能够做到什么。如果说我活到现在学到了什么,那就是循序渐进——从小处着手永远是最好的策略。...在确定这些细节之前,我知道我得先做到: 一个机器学习模型,以未标记的图像作为输入,从而检测到车牌; 某种硬件。简单地说,我需要连接了一个或多个摄像头的计算机系统来调用我的模型。...第一个意味着有一个中心「大脑」计算机系统,这很复杂,而且很贵。第二个面临的则是延迟和基础设施方面的挑战,特别是使用 gpu 进行推理。 在我的研究中,我偶然发现了一个名为 cortex 的开源项目。...我想到了以下架构: 从 Pi Camera 以可接受的分辨率(800x450 或 480x270)收集帧速率为 30 FPS 的帧,并将每个帧推入一个公共队列; 在一个单独的进程中,我将从队列中取出帧,...并将它们分发给不同线程上的多个工作站; 每个工作线程(或者我称之为推断线程)都会向我的 cortex API 发出 API 请求。

    1.8K10

    问答AI模型训练前的必做功课:数据预处理

    翻译完了UDL这本书之后放松了一个多礼拜没有更新文章了,主要最近也在学习一些微调上面的知识,平时晚上还需要跑跑代码看看视频啥的,因此也一直没太有空写文章,UDL的翻译整理成PDF的工作都没空整。...只截断第一个序列(only_first) 当你有一对序列(如问题和上下文)时,这个策略只会截断第一个序列。 这对于一些特定的任务(如单句任务或者任务中第一个序列更重要的场景)可能是有用的。...每个元组的第一个元素表示该token在原始文本中的起始字符索引,第二个元素表示结束字符索引。 如上图所示,因为第一个元素是特殊token, [CLS] ,因此输出的第一个元组是(0, 0)。...填充有前置填充和后置填充,就如字面意思一样,往字符串前面还是后面填充,前面指的是左边,后面指的是右边。在BERT中,我们希望是后置填充。...# 注意:如果答案是最后一个单词(边缘情况),我们可以在最后一个偏移之后继续。

    51510

    Kimi+Langchain+FastGPT:文档转LLM微调数据集 QA问答对生成、Kimi 128KAPI免费接入!

    最近一段时间我在使用FastGPT这个项目,这个项目需要我们自己借助One-API去接入其他第三方模型,我想要接入Kimi,就像在Coze平台上使用它一样~ 一、使用Kimi+Langchain生成QA...,在浏览器打开3000端口:http://localhost:3000/ 2、Fastgpt内部集成了One-API项目: One-API:让国内LLM、Coze等跑通仅支持OpenAI API的开源项目...3、在fastgpt中新建一个知识库,文本处理模型就选择moonshot-v1-128k 嵌入模型默认用的是Openai的(用不了),你可以选择去Ollama中下载一个,然后和上面配置Kimi API一样的步骤...记得config.json也要配置,fastgpt才有显示 两个模型都有之后,然后选择新建文本数据 现在选择问答拆分+自动: 问答拆分的自定义规则是需要你的文本中包含分割符,并且输入拆分引导词: 选择之后点击提交下一步...,几分钟之后,他就可以得到这样的问答对 选择一个查看: QA问答对的知识库还可以导出为CSV格式: 至此,第2部分结束~ 三、用于学习与测试的免费Kimi API项目 ▲ https://github.com

    1.9K10

    IntelliJ IDEA 2018.3 重大升级(转)

    3|1多行TODO评论 IntelliJ IDEA 2018.3现在支持多行 TODO 注释,现在第一个和所有后续的 TODO 注释行在编辑器中突出显示并列在TODO工具窗口中。...3|2禁用对特殊文件和文件夹的代码格式化 我们已经可以从格式化、导入优化和代码重排中锁定某些文件——实际上是从任何涉及格式化的操作中锁定,无论是显式的还是隐式的。...4|3VCS日志中的高级导航 您现在可以在VCS日志中从提交散列导航到VCS日志选项卡中的提交之后,或者在使用Go to hash/branch/tag操作之后,使用前进和后退导航操作。...现在,您可以在“ 异步注释配置”对话框中定义自己的异步注释。 10|4删除所有断点的操作 IntelliJ IDEA 2018.3提供了一些方便的新操作,可以删除项目中的所有断点或文件中的所有断点。...IDEA 分析 Java 程序的性能分析了,主要包括如下几个方面: 火焰图分析 CPU 性能消耗,你可以分析 Java 进程的所有线程的 CPU 消耗火焰图,也可以只选择一个线程来分析 方法调用图,可以找到在某个线程中

    1.4K50

    IntelliJ IDEA 2018.3 重大升级(转)

    3|1多行TODO评论 IntelliJ IDEA 2018.3现在支持多行 TODO 注释,现在第一个和所有后续的 TODO 注释行在编辑器中突出显示并列在TODO工具窗口中。...3|2禁用对特殊文件和文件夹的代码格式化 我们已经可以从格式化、导入优化和代码重排中锁定某些文件——实际上是从任何涉及格式化的操作中锁定,无论是显式的还是隐式的。...4|3VCS日志中的高级导航 您现在可以在VCS日志中从提交散列导航到VCS日志选项卡中的提交之后,或者在使用Go to hash/branch/tag操作之后,使用前进和后退导航操作。...现在,您可以在“ 异步注释配置”对话框中定义自己的异步注释。 10|4删除所有断点的操作 IntelliJ IDEA 2018.3提供了一些方便的新操作,可以删除项目中的所有断点或文件中的所有断点。...IDEA 分析 Java 程序的性能分析了,主要包括如下几个方面: 火焰图分析 CPU 性能消耗,你可以分析 Java 进程的所有线程的 CPU 消耗火焰图,也可以只选择一个线程来分析 方法调用图,可以找到在某个线程中

    2.2K20

    你所不了解的常用开源 LLM 微调库

    尤其是在参数规模动辄数十亿的模型时代,如何选择合适的微调方法和工具链,直接决定了项目的效率与可维护性。...众所周知,随着大模型技术的不断深入发展,在开启大模型微调之旅时,我们常常会被各种开源微调库的热度所吸引。但我想先问一句:为什么你需要一个“合适的”微调库?...这个问题看似简单,却触及了整个项目成功的关键。在实际工作中,选择一个合适的微调库,绝不仅仅是追求最新的技术潮流,它更像是在为你的整个项目周期下一盘棋。...再者,微调的目的终究是为了兼容你最终的部署目标。一个微调好的模型,如果无法顺利部署到你的推理 API 或边缘端设备上,那它的价值就无法兑现。...在实际的业务场景中,选择微调工具时,重点并不是寻找所谓“最强”的方案,而是要根据自身的需求与资源条件,匹配最合适的能力。

    65310

    用 GpuGeek 玩转大模型推理与微调实战:高性价比平台打造极致效率体验

    我在实际项目中选择使用了 GpuGeek 平台,从模型部署、推理测试到定制化微调,整个流程丝滑高效,大大节省了时间和资源投入。...在 GpuGeek 上完成训练部署全过程 二、为什么选择 GpuGeek?...四、总结与建议 在本次大模型推理与微调的实战中,我选择了GpuGeek平台,并对其性能和便捷性感到非常满意。...整个过程从环境配置、模型微调到推理部署都非常顺利,GpuGeek平台的高效性和灵活性为项目提供了强大的支持。...在实际操作中,我使用QLoRA技术对LLaMA2-7B模型进行了低成本微调,整个训练过程在A100显卡上运行流畅,每step时间控制在2秒内,显存利用率近乎饱和,训练效率极高。

    34010

    LLM Agent指令微调方案: Toolformer & Gorilla

    多工具调用核心需要解决3个问题,在哪个位置进行工具调用(where), 从众多工具中选择哪一个(Which), 工具的输入是什么(What)。...解码时,模型会在恰当的位置生成API调用的请求,并中止解码,去调用API得到返回值,把返回值拼接到"->"字符之后,再继续模型解码,如下图片Toolformer的创新主要在API调用的样本构造,因此我们先来看下样本构造的部分样本...因此作者计算了在工具调用位置之后,所有token的加权条件解码概率。...降幅超过阈值,则保留该样本整体量级上,1个API生成了25K左右的样本用于微调,样本长度1024微调使用以上样本生成方案得到多API调用的样本集混合后得到增强训练样本。...每一轮随机从6个样本中采样3个作为Few-Shot,并通过指令让GPT4随机生成10个真实世界的使用case,总共生成16450个指令样本,生成的指令样本如下图片同时Gorilla加入了Retriever-Aware

    2.8K110

    利用Github和Railway搭建专属的ChatGPT

    这篇文章重新发表一次,之前加了一个小广告,对此深表抱歉。那个星球我去体验了 几天,从体验效果来看“一般”,里面一篇混乱,没有实际的东西,全是网上的一些文 章整理,然后一群小白在那里问问题。...我已经退出了,各位自行考虑。 ChatGPT 什么是 ChatGPT ChatGPT 是一个基于人工神经网络技术的自然语言处理模型,由 OpenAI 开发。...微调阶段 在预训练完成后,ChatGPT 可以通过微调来适应特定的任务。...在微调阶段中,ChatGPT 通常会使用有监督的学习方法,即使用带标注的数据进行训练,并通过优化损失函数来更新模型参数。...image.png 获取 Github 代码 项目自己写? 不可能!白嫖才香。 将https://github.com/Chanzhaoyu/chatgpt-web项目 fork 到自己的仓库中。

    1K20

    修改几行代码就让LLM应用提速100多倍!这个团队两周搭建ChatGPT缓存层,曾被老黄OpenAI点赞

    源于一次午饭闲聊 GPTCache 的灵感起源是从一次午饭闲聊时开始的。 在展开讲述前,先普及一个背景。我的团队负责开源项目 Milvus 的开发与维护,需要频繁为社区用户答疑解惑。...同时,这也验证了我之前的一个猜测:为什么在 ChatGPT 如此火爆的情况下,LLM 依然没有得到最为广泛的应用?...JAX 的区别? Redis 会将其定义为两个不同的问题。而事实上,这两个问题表达的是同一个意思。无论是通过缓存整个问题还是仅缓存由分词器生成的关键字,Redis 都无法命中查询。...接下来,我们随机选择 1,000 个样本,并使用对应的另 1,000 条句子(句子对中的另一个句子)作为查询语句。...原因可能是相似性评估器中使用的模型针对该数据集进行过微调,所以几乎所有负样本的相似性打分都降低了。

    93410

    如何用 GPT2 和 BERT 建立一个可信的 reddit 自动回复机器人?

    "a bunch of primary comment text [SEP] all of the reply text” 在我用这种格式训练模型之后,我可以给训练模型一个字符串,比如「一些新的主要评论文本...和在原始教程中一样,你需要授予笔记本从 Google 驱动器读写的权限,然后将模型保存到 Google 驱动器中,以便从以后的脚本重新加载。...为了确定最佳方案,我实际上想做两件事: 过滤掉不切实际的回复 对于具有现实性的回答,选择一个我认为最有说服力的 因此,为了做到这一点,我必须训练两个分类器,一个是预测真实回复的概率,另一个是预测高分回复的概率...BERT 鉴别器运行,根据其真实性会得到从 0 到 1 的分数。...幸运的是,我可以使用 praw 库和下面的代码片段,从几个我认为会产生一些有趣响应的 reddit 中的前 5 个「上升」帖子中获取所有评论。

    4.2K30

    微调就不是一个岗位?大力出奇迹将继续适用?大模型将对软件生态带来哪些变化?

    首先是它擅长通过学习历史代码,并简单地复用和填充相似的函数和历史调用方式,特别是存在类似代码的情况下。...另一个尝试是稍微复杂一点,比如说我们有一个用于数据同步的开源项目 Apache SeaTunnel 。在这个项目中做 SaaS 连接器时,我们完全复刻了 ChatGPT 来生成相关的代码。...我一直在思考为什么代码生成工具在大模型落地方面进展如此迅速。我认为其中一个原因是代码补全和生成允许用户进行干预,从而保证容错率。为什么大模型在其他场景下(如营销文案生成)迟迟未能落地?...将来的每个游戏可能都会生成一个角色,并根据故事与真人进行交互。如果每个安卓手机都内嵌一个 Gemma 开放模型,游戏调用这个模型时,用户的游戏体验会是怎样的?...例如,如果你想要微调模型以理解特定的 SDK 库,并在代码补全时生成可以直接调用企业内部 SDK 或 API 的代码,那么你需要考虑如何教会模型实现这一点,构造什么样的数据,如何标注数据,以及如何筛选和处理数据

    28510

    一个邪修方法,帮你把用Agent的钱省掉80%。

    这无论怎么想,都是荒唐的。 但好消息是,这种荒唐的状况,似乎真的开始改变了。 还是MiniMax Agent,他们除了不断正常的在优化Token消耗之外。...这也意味着我直接得到了你那份已经被验证过无数次的、成功的配方。我可以在你的基础上,进行微调。...而在GitHub出现之后,整个软件开发的世界被改变了,你想做一个网站,你不需要从零开始写一个React框架,你只需要fork它,然后在巨人的肩膀上开始你的工作。 这个Remix是同理的。...而Dota,也催生出一整个moba赛道,在这个赛道中,诞生了《英雄联盟》、《王者荣耀》这样的超级游戏。 那个地图编辑器,就是当年的Remix功能。它把创造的权力,赋予了每一个普通的玩家。...可以看出来,MiniMax想从一个单纯的AI工具提供商,向一个AI生态营造者转变。 而且,确实有用。 而且在几乎所有的AI绘图或者视频网站中,Remix基本就是标配。

    31210

    用ChatGPT搭建代码知识库,提升开发效率

    在 30 个常见用例的测试下,查询精度达到了 90%。常用组件的检索时间从平均 10 分钟缩短至 2 分钟,从而提升了前端研发效率 20%。 1....例如,前端开发中经常使用的公司开源项目 TDesign 就是一个例子: 幸运的是,针对这个问题,业界已经提供了解决方案——构建知识库,一般有两种路径: 首选的方法是对开源的大型语言模型(LLM)进行全面或部分的微调...在对两种方案进行对比分析后: 1、考虑到 TDesign 已经在公网开源,因此相关数据并不涉及敏感信息; 2、当前公司的算力资源较为紧张,且微调方案的调试时间成本偏高; 我最终决定选择embedding...方案优化 1、针对上面提到两点影响因素,第一个方案可以通过优化 chunkSize 和 topK 的参数进行微调试错,但是总的来说当查询维度提升,所需的上下文信息也会相应增多,但这可能受到 LLM 的上下文长度限制的约束...(体验 AST: https://astexplorer.net/ ) 抽象语法树展示: 可以看到在抽象语法树中,如果处理的是 JSON 对象,无论是 key 还是 value 都是能定位到他的字面量字符串的索引区间

    2.6K51
    领券