结构之法 算法之道 -

代码生成的原理解析:从Codex、GitHub copliot到codeLlama、codegeex

我们在这篇文章《》中的2.5节有提到,“2021 年7月,OpenAI发布Codex的论文《》,其中初始的Codex是根据120亿参数的GPT-3变体进行微调的,且通过对159GB的Python代码进行代码训练,后来这个120 亿参数的模型演变成OpenAI API中的code-cushman-001,具备较强的代码/推理能力”接下来,我们来看下Codex背后的原理到底是怎样的,即其是如何一步一步训练出来的。

AI生成摘要 本文介绍了代码生成的发展史和技术原理。首先介绍了GitHub copilot的起源,即Codex,以及其评估效果。然后详细解释了pass@k度量的计算逻辑。接着介绍了Codex的训练全流程,包括通过159G的Python代码微调GPT3和训练方法。最后介绍了微软GitHub copilot和Code Llama,包括Code Llama的训练流程、工作原理和性能。

相关推荐 去reddit讨论

蓝点网 -

谷歌对标GPT-4的人工智能产品Gemini发布时间推迟 似乎是出现性能问题

上图是 Bard 发布会图片 PS 的 Gemini 是谷歌计划推出的下一代人工智能模型,外界传闻是可以对标 […]

AI生成摘要 谷歌计划推出的人工智能模型Gemini因性能问题推迟发布,对谷歌来说是小打击。Gemini相较于现有的Bard提供更多功能,包括内容创建、辅助编程开发、创建图像等。发布会被悄悄延迟,具体原因未知。

相关推荐 去reddit讨论

苹果fans博客 -

Apple新闻之苹果把 iPhone 卫星紧急联络服务免费延长一年

苹果在去年的 iPhone 14 上引入了紧急情况下可以通过卫星发送求助信息的服务(坏消息是,它还没覆盖中国)。前不久,苹果在官网宣布,这一服务免费延长一年。苹果官网新闻稿 https://www.apple.com/newsroom/2023/11/apple-extends-emergency-sos-via-satellite-for-an-additional-free-year/苹果中国官网对卫星服务的详细介绍 https://support.apple.com/zh-cn/HT213426题外话,我觉得,使用这项服务的人并不多,对苹果这个体量的公司来说,完全可以一直免费下去。既能作为一个 iPhone 卖点,又能在救助人命后引爆新闻宣传。现在「每年宣布免费服务再续一年」的方式更稳妥,更可控 …… 发现去年卫星服务的开销可以接受,就继续官宣免费 +1 年即可。Tags - 卫星

AI生成摘要 苹果宣布将免费延长一年紧急情况下通过卫星发送求助信息的服务。这项服务在 iPhone 14 上推出,但尚未覆盖中国。苹果认为这是一个卖点,并能在救助人命后引爆新闻宣传。

相关推荐 去reddit讨论

蓝点网 -

国外科技网站讨论谷歌浏览器MV3问题 严重打击广告拦截工具

前段时间蓝点网提过 Google Chrome 浏览器将在明年某个时候退役 Manifest v2 版,也就是 […]

AI生成摘要 Google Chrome浏览器将在明年退役Manifest v2版,广告拦截工具受影响。YouTube与广告拦截器对抗,每周更新代码,但Manifest v2退役后广告拦截器无法快速更新。其他浏览器如Firefox、Vivaldi、Brave、Opera不受影响,开发者可从外部URL调用规格实现快速更新。Chrome用户需等待谷歌审核开发者提交的规则。

相关推荐 去reddit讨论

蓝点网 -

僵尸网络Trickbot的俄罗斯开发者被捕后引渡至美国 将面临35年刑期

Trickbot 是一个非常知名的恶意软件,该恶意软件主要会通过多种攻击手段收集数据并将被感染的设备变成肉鸡加 […]

AI生成摘要 Trickbot是一种恶意软件,通过攻击手段收集数据并将设备变成肉鸡加入僵尸网络。2021年,两名嫌疑人被捕,其中一人是Trickbot的主要开发者。Trickbot感染设备后会窃取敏感信息并进行勒索,勒索金额超过1.8亿美元。被捕对Trickbot影响不大,因为团队成员只在网络上认识。另一款勒索软件Conti成功控制了Trickbot,并分裂成多个新的勒索软件团伙。

相关推荐 去reddit讨论

Raz1ner -

Whisper Transcription 限时免费

Whisper Transcription 是一款语音转文字的工具,支持 100 多种语言。

AI生成摘要 Whisper Transcription是一款语音转文字的工具,支持100多种语言。该软件限时免费,仅支持macOS系统,所有功能在本地运行,不上传服务器,保护隐私。下载后点击Lifetime可免费购买终身订阅包。

相关推荐 去reddit讨论

Allen Hua 的网络博客 -

Android 13+ 通过 Shizuku + Language Selector 给特定应用设置独立语言

正文最近5年我一直在使用 iPhone,从 iPhone 6 到 iPhone XR,再到买 iPhone 12 首发,到昨天也算是把 iPhone 12 用了三年整(还要多一个多月)。这 iP...

AI生成摘要 作者在文章中分享了自己使用 iPhone 12 的经历,表示手机卡顿且运行缓慢,决定购买 redmi k70。文章还介绍了在 Android 系统下如何给指定应用设置语言,以及通过 Shizuku + Language Selector 实现给特定应用设置独立语言的方法。作者提到,改变系统语言可以避免一些应用的问题,并分享了一些设置的步骤和应用的包名。最后,作者解释了为什么要将部分应用改成简体中文,并提到了字体在不同语言下的差异。

相关推荐 去reddit讨论

WordPress 果酱 -

WordPress 使用 CDN 之后,整个页面乱了,是什么问题呢?

这是 #WPJAM Basic# 插件用户使用「CDN 加速」功能碰到的最多问题之一,其实这个就是对「CDN加速」功能背后的原理:对象存储的「镜像回源」不理解造成的。 如果碰到问题的时候,建议先看看使用说明: …

AI生成摘要 WPJAM Basic插件用户使用CDN加速功能时可能遇到的问题是对象存储的镜像回源不理解造成的。解决方法有三种:不镜像CSS文件、删除对象存储上的CSS文件、使用WPJAM静态文件插件。

相关推荐 去reddit讨论

晓空blog -

近况/12月 抱枕,墙贴,音箱,驾照

又一个月过去啦,步入12月,这也意味着2023快要和我们说再见了 我们学校校历1月18号放假,emmn,也就一个多月了,12月中旬又是英语四级 英语四级这玩意....上次出师不利,差了30分,听力全没涂 希望这次能一次顺利通过吧 不过又话说回来,英语四级完了又差不多是期末考试了,感觉最近一直 不是在考试就是在考试的路上.... 太草了 其……

AI生成摘要 12月即将结束,作者提到了学校放假日期和英语四级考试。他还分享了自己购买的等身抱枕和墙贴的经历。此外,他介绍了自己购买的小爱音箱和驾照考试的经历。最后,他提到了自己在群里当吉祥物的经历,并表示需要调整作息时间。

相关推荐 去reddit讨论

Rust.cc -

【Rust与AI】概览和方向

本系列主要介绍Rust与AI的那些天作之合(开源项目),我们会以开源项目代码阅读的方式推进,以Rust为主,同时科普AI相关知识,目的是让更多非算法、非Rust的程序员进一步学习Rust和AI相关知识。当然,很显然地,我们也希望Rust程序员和AI算法工程师能从中有所收获。前者可以关注AI算法的设计和优化,后者可以关注Rust如何助力AI算法。 本篇是系列第一篇,主要介绍Rust和AI各自的特点与发展近况,以及它俩的遇见会碰撞出怎样的火花。我们热爱AI,我们喜欢Rust语言,仅此而已。 当前发展 AI与LLM 随着ChatGPT的发展浪潮,AI又一次迎来了发展良机,很多应用、服务都在基于大模型重新设计。同时,由于大模型的超能力,应用的开发门槛进一步下降,一些新的创意产品在不断涌现。总的来说,在AI应用领域呈现出了一片欣欣向荣、百家争鸣的景象。 这一切的背后是ChatGPT为代表的大语言模型(后面以LLM代替),LLM以序列方式根据给定上下文生成文本,它对上下文的精准理解能力和基于此的生成能力都令人赞叹。作为一名从业多年的自然语言处理(后面以NLP代替)工程师,可以负责任地说,LLM的能力确实远超此前的语言模型,尤其是理解方面。 LLM的最大特点是大,这里的大是指参数量非常多。也就是说,无论是加载还是运行这样一个模型,都需要消耗比较多的资源。要想让模型执行的快,性能就成了绕不开的坎。 参数其实就是很多很多的数字,一般来说都是FP32的浮点数,但浮点数可以通过量化降低到FP16、BF16或Int,量化后内存的占用明显是降低了的,一般也会同时带来执行速度的提升。 抛开语言、模型架构和量化先不谈,要加速执行很多数字的运算,一般我们可以想到的最容易的解决方案大概就是并行。没错,并行是当前LLM甚至深度学习最通用的方案,典型代表就是使用类似GPU、TPU这样的专用设备来加速。当然,即使没有这些设备,普通CPU甚至移动端的CPU都可以利用数据级并行、指令级并行、线程级并行等方案来加速。除了并行,还可以优化存储层次和传输,进一步提升性能。 上面提到这些优化方案都和计算机底层有关,一般来说都需要用到C语言或C++编程,现在我们有了新的选择——Rust。其实,这个“现在”应该可以再提前个几年,毕竟Rust在AI领域默默发力已经有些时日了。C语言和C++都是非常强大的语言,不过相较而言,Rust在某些方面表现的更好。 Rust Rust的来龙去脉我们就不赘述了,就凭“在StackOverflow年度开发者调查报告中连续几年获得最受欢迎编程语言”这一点就值得我们去认真学习一下。关于Rust语言的“好”这里也不多赘述,仅从个人角度谈几点自己的感觉。 首先,Rust代码只要编译通过,运行一般不会出问题。虽然一开始与编译器作斗争这件事可能让人抓狂,但比起用gdb去分析dump应该要好上很多吧。而且,编译器的提示越来越友好,作斗争的过程其实是个不断学习相关知识的过程,这种所见所得的及时反馈应该也是极其理想的学习方式吧。 其次,语法更加清晰。个人比较倾向于在编程时显式地指定数据类型和范围,比如i8表示8位有符号整数,这样一方面强迫自己理解代码(而不是默认一个int64),另一方面也方便日后自己或他人阅读。这点可能是之前从Python开始入门编程项目导致的。另外,它对错误的处理方式个人比较认同和喜欢,这都是代码清晰的表现。 第三,设计更加合理。Struct和Trait以及其相关的设计深得个人喜爱,还有生命周期。和很多人不一样的是,个人比较喜欢生命周期的设计思想,可能也是源于喜欢“显式”吧。 第四,代码更加优雅。控制分支中的match是个人最爱,还有模板、函数式编程、闭包,以及链式调用,代码看起来让人赏心悦目。 …… 此外还有优雅的并发操作,测试的组织,文档的集成,等等都让人欲罢不能。唯一要吐槽的可能是智能指针相关的内容,的确有些复杂。不过瑕不掩瑜,总的来说,Rust值得任何一个热爱编程的程序员去尝试。 双剑合璧 其实用到C++的地方都可以用Rust再写一遍,简单来说,和底层相关的代码都可以Rust掉,AI方面也不例外。接下来,我们就谈谈Rust和AI可以合璧的地方。 推理 首先是推理。这个方向是最自然、最值得关注的方向,尤其是端侧。Server端由于GPU的广泛应用,导致现在CUDA+C/CPP几乎成了垄断。不过随着Rust加入Linux内核,以及Huggingface的大量使用,当然也有Rust自己在GPU领域的不断推动,我们相信Rust在Server端也会有一席之地。 端侧,尤其是以RISC-V为基础架构的智能终端是Rust一直以来深耕的领域。更令人振奋的是前不久Vivo发布的用Rust全新构建的BlueOS,主打的就是新一代AI操作系统。我们相信Rust在智能终端有着非常广阔的前景。 前面已经提到了LLM时代的特点是模型很大,推理很慢,需要性能提升。而且随着LLM的进一步发展,性能必定会变得更加重要,Rust由于其优秀的语言特性,正好接到这一棒。我们笃信Rust+AI大模型是最适合的搭档组合。 中间件 再下来是中间件。准确来说是和AI大模型相关的中间件,首当其冲的是向量检索相关库,这就不得不提大名鼎鼎的Qdrant了,性能优秀,而且非常容易使用。顺带提一下对标全文检索框架ElasticSearch的melisearch,经过多年的发展已经是比较成熟的框架了,这个领域还有很多其他框架,比如tantivy、Toshi、lnx、websurfx等。 另外值得一提的是将全文检索、语义检索融合到SQL搜索的paradedb,这个项目的设计思路可以给我们很多启发。此外还有处理表格的polars、可视化pipeline的vector、文档图数据库surrealdb、时序数据库ceresdb等等。当下火热的Agent也不是没有,比如smartgpt。 这块范围其实是非常广泛的,除了基础组件,可以想象的内容还很多,比如记忆模块、任务调度、资源池、任务定义、流程设计等等。这些组件几乎都是围绕着LLM使用的,我们相信LLM带来的远不止这些,而且随着应用层的不断丰富和发展,还会衍生出更多的需求。 训练 最后说一下训练。Rust开始做推理,自然有人把它放到训练侧,不过目前看起来这块还处于尝试和起步阶段。我们比较看好它在相对稳定的工程领域使用,但不看好在算法领域的普及。 对于前者,无论哪种语言,一般都会提供简单易用的API或命令行,使用者大多数时候只需要根据要求准备好数据即可进行训练。但对于后者,经常需要涉及底层算法架构的调整和修改,甚至需要新加入或去掉一些模块,这方面Python实在是具备绝对优势,而且平心而论,PyTorch做这些操作相对是比较方便的。Torch一开始也是lua写的,不温不火,后面加了Python后,慢慢打败了Caffe、TensorFlow,现在稳坐第一把交椅。Rust要向当年的Torch一样吗,可是这样在Python侧的区别在哪里?接口上大概率还是和现在的PyTorch接近,就像transformers库流行后,PaddleNLP、ModelScope的接口不能说和其很像,大概只能说一样了。对使用者来说,迁移是没必要的,除非不得不这样做,比如在端侧训练,也许对Rust来说是一个不错的方向。 其他 前面说的是正向的,这里简单谈一下可能面临的冲击。 首先依然是C和C++,它们当下是主流,谁能说未来不能继续是主流呢,而且对使用者来说,反正上面是方便的Python,谁会管下面怎么实现的。 再就是其他新语言,比如专为AI而生的Mojo,它的定位是Python的易用性+C语言的性能。虽然Mojo目前还处于极其早期阶段,但这至少是个苗头:在AI主导的未来,指不定会有更AI的语言设计出来。那会不会有专门为大模型设计的语言呢? 不过,总的来说,我们先关注Rust吧。 开源项目 下面我们列举一些Rust相关的AI项目,囿于笔者知识范围,所列内容不一定全面,如果读者有更好的开源项目推荐,尤其是大模型相关的,欢迎随时推荐。这些资源也是系列后续阅读的项目。 LLM推理 rustformers/llm: An ecosystem of Rust libraries for working with large language models Noeda/rllama: Rust+OpenCL+AVX2 implementation of LLaMA inference code srush/llama2.rs: A fast llama2 decoder in pure Rust. leo-du/llama2.rs: Inference Llama 2 in one file of zero-dependency, zero-unsafe Rust gaxler/llama2.rs: Inference Llama 2 in one file of pure Rust 🦀 huggingface/text-generation-inference: Large Language Model Text Generation Inference Agent Cormanz/smartgpt: A program that provides LLMs with the ability to complete complex tasks using plugins. NLP huggingface/tokenizers: 💥 Fast State-of-the-Art Tokenizers optimized for Research and Production guillaume-be/rust-bert: Rust native ready-to-use NLP pipelines and transformer-based models (BERT, DistilBERT, GPT2,...) 图像 LaurentMazare/diffusers-rs: An implementation of the diffusers api in Rust twistedfall/opencv-rust: Rust bindings for OpenCV 3 & 4 Code huggingface/llm-ls: LSP server leveraging LLMs for code completion (and more?) Framework huggingface/candle: Minimalist ML framework for Rust coreylowman/dfdx: Deep learning in Rust, with shape checked tensors and neural networks tracel-ai/burn: Burn is a new comprehensive dynamic Deep Learning Framework built using Rust with extreme flexibility, compute efficiency and portability as its primary goals. spearow/juice: The Hacker's Machine Learning Engine rust-ml/linfa: A Rust machine learning framework. tensorflow/rust: Rust language bindings for TensorFlow sonos/tract: Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference smartcorelib/smartcore: A comprehensive library for machine learning and numerical computing. The library provides a set of tools for linear algebra, numerical computing, optimization, and enables a generic, powerful yet still efficient approach to machine learning. neuronika/neuronika: Tensors and dynamic neural networks in pure Rust.

AI生成摘要 本文介绍了Rust与AI的结合,以及它们各自的特点和发展。Rust在AI领域有广阔的前景,可以用于推理、中间件和训练等方面。文章列举了一些与Rust相关的开源项目。

相关推荐 去reddit讨论

...
eolink
...
观测云
...
Dify.AI
...
ShowMeBug
...
LigaAI
...
天勤数据
...
白鲸技术栈
推荐或自荐