Python潮流周刊#9:如何在本地部署开源大语言模型?
你好,我是猫哥。这里每周分享优质的 Python 及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)
首发于我的博客:https://pythoncat.top/posts/2023-07-01-weekly
周刊的投稿通道已开放,请在 Github 项目中提交 issue:https://github.com/chinesehuazhou/python-weekly
文章&教程
一篇步骤清晰的教程,它使用 LangChain 及 Facebook 开源的 LLaMA 大语言模型搭建了一个基于文档的问答助手,另外使用 Streamlit 构建出一个美观的用户界面。(附一篇中文的翻译文 )

一个 Python Asyncio 协程会占用有多少内存呢?文章的测试结论是约 2Kb。另外,文中还测试了以下的问题:每秒可创建多少个裸协程?每秒可处理多少个协程?使用uvloop 后,创建及处理协程任务,能有多少提升?
asyncio.Runner 是 Python 3.11 中新增的功能,支持在同一事件循环中执行多个协程。文章主要内容:如何使用 asyncio.run() 运行多个协程,如何使用包装方法运行多个协程,以及如何使用 asyncio.Runner 类在同一个事件循环中以自适应甚至有条件的方式执行协程。
- 不使用锁的并发实现 (英)
在并发编程中,通常需要使用锁,但是不应该滥用锁。这篇文章探讨了如何尽量不依赖锁来实现并发,演示的例子是生成短链接,主要的思想是“请求宽恕”而不是“提前检查”、使用 PostgreSQL 数据库提供的功能。
文章介绍了 CPython 是如何把 Python 代码跑起来的,主要过程:词法分析、语法分析、编译到字节码、执行字节码。
文章探讨了 JIT 编译的概念及其优点,并深入分析了主流的 Python JIT 编译器的优缺点(如 PyPy、Numba 和 Cython),介绍了在 Python 中使用 JIT 编译器的最佳实践和准则。
当我们说 Python 时,通常指的是官方实现的 CPython,但还有很多的“Python”,比如 Pypy、Jython、MicroPython、Brython、RustPython 等等,还有很多像是新“Python”的东西,比如 Nuitka、WinPython、Psyco、Pyjion 等等。文章解释了相关的概念和工具。

APScheduler 是一个调度和自动化任务工具,它的 AsyncIOScheduler 支持调度异步函数和协程,文章介绍了它的功能、优点以及如何优化异步任务调度需求。
- 在生成代码时避免产生技术债务 (英)
GPT 和其它大语言模型可以快速生成大量代码,但这也可能导致很多的混乱代码。文章探讨了如何改进这些工具生成的代码,并将其融入到项目中的几种方法,包括采用专家角色、提供示例、遵循最佳实践、遵循标准和明确指南以及代码放置的恰当位置等。
- 当 NumPy 太慢时 (英)
在不考虑并行处理的情况下,如何提升 Numpy 性能?NumPy 有三个固有瓶颈(急切执行、通用编译代码和向量化导致的高内存使用率)。针对这些瓶颈,文章介绍四种解决方案:手动优化代码、使用 JAX 作即时编译、使用 Numba 作即时编译,以及使用提前编译。
Numba 是一个专用的即时编译器,通过将 Python 代码编译为高效的机器代码来消除解释执行的开销,从而提升性能。文章介绍了 Numba 的功能、内部原理、主要用法和常见问题。
如何使用较少的时间和精力来提升代码的质量?文章介绍了一些提升代码质量的工具(flake8、Black、isort、mypy、bandit等),以及使用 IDE、CI 和 pre-commit 等方式自动化调用这些工具。
PandasAI 是最近火爆的库,为 Pandas 集成了 AI 对话功能,可简化数据操作。文章介绍了 PandasAI 作复杂查询与图表可视化的方法,以及介绍了它提供的十几个方便好用的函数。
- 写单元测试的最佳实践 (英)
单元测试的好处无须赘述,但是写单测却是开发者最讨厌的事情之一。文章罗列了 10 条写单元测试的最佳实践,介绍了手工写单元测试的步骤,最后介绍了使用 Codium.AI 自动化编写测试的方法。
Netflix 官方的一篇博客,介绍了在将手机 APP 安全地从 Falcor 迁移到 GraphQL 的过程中,所采用的三种测试策略:AB 测试、Replay 测试和 Sticky Canaries。AB 测试用于评估新功能对客户的影响,Replay 测试用于验证迁移的正确性,Sticky Canaries 用于验证性能和业务指标。
Python潮流周刊已免费发布了 9 期,访问下方链接,即可查看全部内容:https://pythoncat.top/tags/weekly
️项目&资源
一个在 Jupyter Notebook 环境中运行的可视化探索式分析工具,仅一条命令即可生成一个可交互的图形界面,以类似 Tableau/PowerBI 的方式,通过拖拽字段进行数据分析。(star 6.5K)

用 Julia 为 Python 写高性能的 C 扩展,提速约 200x。(@xgdgsc 投稿)
JupyterLab 官方提供的生成式 AI 扩展,主要提供了:%%ai 指令、原生的聊天 UI 页面、支持大量平台的大语言模型(AI21、Anthropic、Cohere、Hugging Face、OpenAI、SageMaker 等)。
一个发布订阅者框架,支持同步异步调度、定时任务、主题管理、发布订阅者回调等功能。(@Zeeland 投稿)
一个基于磁盘缓存的 ORM 框架,可对基本数据类型及自定义的数据通过 ORM 进行增删改查,支持多种序列化操作和数据压缩方式。(@Zeeland 投稿)
如何测试机器学习模型、要涵盖哪些问题、如何实施测试?这个框架可扫描数十种漏洞(性能偏差、数据泄漏、不鲁棒性、虚假关联、过度自信、信心不足、不道德问题等),并基于结果生成特定领域的测试套件。(star 1K)

本周最火项目,可在图像上通过拖动点的方式,生成想要的新图像,非常惊艳!(star 28K)

除了类似 shell 的语法和方便的快捷方式外,这个库还提供了本地和远程命令执行(通过 SSH)、本地和远程文件系统路径、简单的目录和环境操作、以及一个可编程的 CLI 工具包。(star 2.6K)
支持用文本提示、单个图像和少量镜头图像创建 3D 内容。支持多种模型,如 ProlificDreamer、DreamFusion、Magic3D、Score Jacobian Chaining,等等。(star 1.8K)
支持删除图像的背景,支持多种使用方式(cli、库、docker)和多种强大的功能。(star 10.5K)

关于周刊
Python 潮流周刊,由豌豆花下猫主理,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。
内容创作要花费大量的时间和精力,如果你觉得有帮助,请随意赞赏、买杯咖啡或在爱发电进行支持!如果你喜欢本周刊,请转发分享给其他需要的同学,让更多人可以从中受益~
订阅方式:Python猫 (可加群)| 邮件 | Github | Telegram | Twitter

Python潮流周刊#9:如何在本地部署开源大语言模型?的更多相关文章
- 我的第一个python web开发框架(7)——本地部署前端访问服务器
PS:本系列内容进度节奏会放的很慢,每次知识点都尽量少一点,这样大家接触的知识点少了,会更容易理解,因为少即是多.另外,对于后面代码部分,虽然尽量不用那些复杂的封装和类,但它并不表示看了就能全部记住, ...
- Kubernetes 学习笔记(二):本地部署一个 kubernetes 集群
前言 前面用到过的 minikube 只是一个单节点的 k8s 集群,这对于学习而言是不够的.我们需要有一个多节点集群,才能用到各种调度/监控功能.而且单节点只能是一个加引号的"集群&quo ...
- 本地部署 Misago Docker + 配置 HTTPS 笔记
最近答应帮朋友做个论坛网站,想借此机会捡起 Python 在 GitHub 找了一圈,打算借用以 Python+Django 开发的 Misago 这个论坛系统 由于作者在今年更新的 Misago 0 ...
- RocketMq灰皮书(二)------本地部署启动MQ
RocketMq灰皮书(二)------本地部署启动MQ Windows10本地部署RocketMQ 在上一篇文章中,我们对rocket的几个基本概念进行了介绍,也了解了业内几大消息中间件的区别.在本 ...
- Window10环境下,Stable Diffusion的本地部署与效果展示
Diffusion相关技术最近也是非常火爆,看看招聘信息,岗位名称都由AI算法工程师变成了AIGC算法工程师,本周跟大家分享一些Diffusion算法相关的内容. Window10环境下,Stable ...
- 本地部署arcgis by eclipse
首次来博客园发帖,从本地部署arcgis api开始吧: 首先还是下载arcgis的api包开始,在中国区官网下载arcgis包: 1.http://support.esrichina.com.cn/ ...
- ArcGIS server开发之API for js 本地部署
ArcGIS Server for javascript 本地部署 第一次使用arcgis server for js开发,在经验方面还有很多的不足,所以将自己在开发过程中遇到的问题写出来与大家共享. ...
- Exceptionless 本地部署
免费开源分布式系统日志收集框架 Exceptionless 前两天看到了这篇文章,亲身体会了下,确实不错,按照官方的文档试了试本地部署,折腾一番后终于成功,记下心得在此,不敢独享. 本地部署官方wik ...
- ArcGIS JavaScript API本地部署离线开发环境[转]
原文地址:http://www.cnblogs.com/brawei/archive/2012/12/28/2837660.html 1 获取ArcGIS JavaScript API API的下载地 ...
- Exceptionless 本地部署踩坑记录
仅已此文记录 Exceptionless 本地部署所遇到的问题 1.安装ElasticSearch文本 执行elasticsearch目录中的elasticsearch.bat 没有执行成功. 使用命 ...
随机推荐
- SSM整合的所有配置(配置类)
导入依赖坐标pom.xml <dependencies> <dependency> <groupId>junit</groupId> <artif ...
- PMD插件:你必须掌握的代码质量工具!
当今的软件开发需要使用许多不同的工具和技术来确保代码质量和稳定性.PMD是一个流行的静态代码分析工具,可以帮助开发者在编译代码之前发现潜在的问题.在本文中,我们将讨论如何在Gradle中使用PMD,并 ...
- Message源码分析
Message 在Android中主要是在 消息循环机制 中使用,即配合 Handler,Looper和MessageQueue来进行线程切换,线程间传递数据.Message存储了我们所有需要的东西. ...
- 使用 LoRA 和 Hugging Face 高效训练大语言模型
在本文中,我们将展示如何使用 大语言模型低秩适配 (Low-Rank Adaptation of Large Language Models,LoRA) 技术在单 GPU 上微调 110 亿参数的 F ...
- Vue上传XLS文件
data() { return { tableData:[] } }, //原生JS+XLSX包实现 xls文件上传 methods: { //上传excel表格文件 uploadHandler(da ...
- C# 打开蓝牙设置界面
蓝牙设置相关界面,以下是通过C#方式打开的几个方式,记录一下 蓝牙设置界面 1.控制面板命令bthprops.cpl 可以用控制面板 control+bthprops.cpl,也可以直接bthprop ...
- 2020-09-26:请问rust中的&和c++中的&有哪些区别?
福哥答案2020-09-26:#福大大架构师每日一题# 变量定义:c++是别名.rust是指针.取地址和按位与,c++和rust是相同的. c++测试代码如下: #include <iostre ...
- 2021-03-24:给定一个整数组成的无序数组arr,值可能正、可能负、可能0。给定一个整数值K,找到arr的所有子数组里,哪个子数组的累加和等于K,并且是长度最大的。返回其长度。
2021-03-24:给定一个整数组成的无序数组arr,值可能正.可能负.可能0.给定一个整数值K,找到arr的所有子数组里,哪个子数组的累加和等于K,并且是长度最大的.返回其长度. 福大大 答案20 ...
- Spring Cloud开发实践(五): Consul - 服务注册的另一个选择
目录 Spring Cloud开发实践(一): 简介和根模块 Spring Cloud开发实践(二): Eureka服务和接口定义 Spring Cloud开发实践(三): 接口实现和下游调用 Spr ...
- There is not enough memory to perform the requested operation
今日在写bug 时 ide 突发脑溢血,崩溃了 一.修改用户目录下的 .vmoptions 找到C:\用户\用户名.WebStorm2018.1\config\webstorm64.exe.vmopt ...