0%

1. uv是什么

uv是开发ruff的公司 Astral 前一段时间发布的高性能Python工具,用途是安装python包,以及解析包版本之间的依赖。它的最大特点是快,相比现有的的工具都能够快一大截(如下图),
![[Pasted image 20240329074004.png]]

发布uv的愿景,是希望构造类似Rust的cargo,快速、可依赖,易用的包管理工具。

通过在不同的系统进行几个常见包的测试,uv相比pip,加速比在1~13之间,因此是一个值得一试的工具。

下面我先介绍一下uv的安装和使用,然后从一个普通用户使用pip的标准流程,尝试用uv替代pip,进行Windows, Linux 和macOS上实测速度对比,最后对uv发展的现状做一个说明,以及我的一些看法。

阅读全文 »

2023年对我来说是一个惊喜的年份,因为可爱的女儿降生了。也是一个难言的年份,在零基础学带娃+长途通勤+家庭矛盾+工作压力的组合作用下,时常burnout,切身体会到人到中年的不容易。好在娃娃的每一个笑容都如此治愈,陪我度过艰难的2023。

阅读全文 »

1. 概述

talkGPT4All是基于GPT4All的一个语音聊天程序,运行在本地CPU上,支持Linux,Mac和Windows。它利用OpenAI的Whisper模型将用户输入的语音转换为文本,再调用GPT4All的语言模型得到回答文本,最后利用文本转语音(TTS)的程序将回答文本朗读出来。

今年4、5月份的时候,我发布了talkGPT4All 1.0版本和2.0版本,链接见下:

talkGPT4All: 基于GPT4All的智能语音聊天程序
talkGPT4All 2.0:现在支持8个语言模型了

大家反馈最大的问题是TTS太机械了,听着很难受(具体可以看前面两篇文章的评论区)。而最近TTS领域的进展很多,例如很受欢迎的 coqui-ai的TTS 库,提供了TTS、声音克隆和声音变换的功能。上周末尝试了一下,发现内置了一些开箱即用的TTS模型,刚好可以集成到 talkGPT4All 中,解决目前采用的 pyttsx3合成声音太机械的问题。

阅读全文 »

昨天在读龚自珍《己亥杂诗》的时候,看到一句“千秋名教吾谁愧?愧读羲之誓墓文”,怎么想都想不明白这句什么意思。

突发奇想,既然大语言模型进展突飞猛进,能否帮助我来解读这句诗是什么意思呢?

阅读全文 »

LLaVA-Plus 是LLAVA团队最近放出来的LMM工作,对LLaVA进行了改进升级,相比LLaVA对输入图像只能进行文本回答的情况,LLaVA-PLUS则包含相当丰富的功能:

  • 可以调用SD生成与输入类似的图像
  • 可以对图像进行编辑,例如调用Instruct pix2pix在图像上放置一只动物
  • 可以对图像进行物体检测,分割,Cpation,OCR,打标签等多模态处理的功能
  • 还可以调用外部知识来对未知的信息进行检索
  • 支持用户交互,如对用户点击的区域进行实例分割
  • 对图像进行美化,然后生成可以发布到社交媒体上的文案

那么LMM是怎么获得到这么多的多模态能力的呢?论文中提出了一个叫Skill Repository 的概念,就是一些AI 子任务的能力和对应的模型,利用这个Skill Repository来完成丰富的功能。也就是说LLaVA-Plus将用户输入的任务通过进行拆分,然后调用合适的子任务模型来实现,再对结果进行一定的处理返回给用户。

阅读全文 »

1. 说明

今早看到一个好玩的项目,利用Bing Image Creator 来生成每日诗词的图像,研究了一下,发现有人提供了BingImageCreator仓库来调用Bing的API在代码中生成图像,但还需要下载源码,没有提供cli,cookie怎么获取也没有讲太细。

因此我基于这个仓库,做了一些精简和封装,提供了一个可以直接pip安装的工具bing_brush, 获取cookie后可以直接命令行调用。

阅读全文 »

TL;DR:
我基于 LeptonAI 和 Beeware Python 库,利用 88 行的Python,不用写一行Java代码,在手机上做了一个 SDXL text-to-image 的Demo,效果见这里的视频。

作为一个爱折腾写Python比较多的人,我一直在想一个事情:能否将熟悉的Python技术栈的能力带到移动平台中,不用写哪些繁琐的Native开发代码,就能在移动端跑起来一个AI Demo呢?因为相比PC,移动端设备的用户数多得多,每个人都有一台手机,但并不是每个人都有一台电脑。

一次偶然的机会,我发现了 Beeware,一个目标 “Write once. Deploy everywhere.“ 的跨平台 Python 工具箱。基于 Beeware 工具箱写的 Python 程序可以在 PC,Web,Android 和 iOS 上运行,因此正是我想要的。

一切听起来很美好,但实际使用时也遇到很多问题。

阅读全文 »

1. 背景

LeptonAI是贾扬清的创业项目,正如 slogan “Build AI The Simple Way” 所表明的,LeptonAI的目标是简化AI模型的部署。

简单来说,LeptonAI 提供了 Python SDK 和云平台。Python SDK 可以让没有AI领域知识的普通开发者调用2~3行命令就能部署一个AI模型,然后用一个curl语句或几行Python代码就能完成客户端请求;而 LeptonAI 云平台提供了CPU,GPU和存储资源,开发者可以把创建的AI模型部署到这里,就能提供公开对外的AI服务。

AI模型创建支持 HuggingFace,也就是说可以将 HuggingFace 上海量的模型集成到自己的应用中。同时 LeptonAI 也支持从 GitHub 仓库创建 AI 模型,给了开发者更多的选择。

经过一段时间的体验后发现,LeptonAI Python SDK 设计的很优雅,用起来很舒服,而云平台的操作也很丝滑,有贾扬清大神亲自操刀写代码,SDK和云平台的质量绝对是信得过的。

那 LeptonAI 是否解决了一些 AI 部署中的痛点问题呢?我认为是的。根据之前的经验,跑一些 AI 开源模型成本还是挺高的。

阅读全文 »

1. 概述

这是DeepMind 最近发表的一篇论文,题目翻译成中文是“语言模型即压缩”,是一个很简单但也有分量的观点。更有趣的是,论文中作者发现,自己的预训练大模型Chinchilla 70B只在文本训练集上训练后,在ImagNet 图像Patch上压缩率能达到43.4%,优于PNG算法的压缩率58.5%,在LibrSpeech语音数据集上,压缩率达到16.4%,优于语音压缩算法FLAC30.3%的压缩率。

说实话看到这个结论我还是很震惊的。一个是文本数据上训练的模型居然也能用于图像和语音的压缩,而且压缩率还高于常用的领域特定的压缩算法。

除了震惊,还很好奇大模型是怎么被当作压缩器来压缩文本图像和语音数据的。在好奇心的驱使下,我读了几遍这篇论文。

阅读全文 »

Numpy是Python中常用的数值计算库,我们经常需要用到Numpy来打印数值,查看结果。为了能精确地控制Numpy打印的信息,Numpy提供了set_printoptions 函数,包含数个参数,能满足数值打印的需要。

这里以iPython中操作作为示例,从浅入深,一步步地探索set_printoptions提供的功能,如何来满足我们的打印需求。

阅读全文 »