Python潮流周刊#9:如何在本地部署开源大语言模型?

简介: Python潮流周刊#9:如何在本地部署开源大语言模型?

你好,我是猫哥。这里每周分享优质的 Python 及通用技术内容,部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)

首发于我的博客:pythoncat.top/posts/2023-…

周刊的投稿通道已开放,请在 Github 项目中提交 issue:github.com/chinesehuaz…

🦄文章&教程

一篇步骤清晰的教程,它使用 LangChain 及 Facebook 开源的 LLaMA 大语言模型搭建了一个基于文档的问答助手,另外使用 Streamlit 构建出一个美观的用户界面。(附一篇中文的翻译文

image.png

一个 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 等等。文章解释了相关的概念和工具。

image.png

APScheduler 是一个调度和自动化任务工具,它的 AsyncIOScheduler 支持调度异步函数和协程,文章介绍了它的功能、优点以及如何优化异步任务调度需求。

GPT 和其它大语言模型可以快速生成大量代码,但这也可能导致很多的混乱代码。文章探讨了如何改进这些工具生成的代码,并将其融入到项目中的几种方法,包括采用专家角色、提供示例、遵循最佳实践、遵循标准和明确指南以及代码放置的恰当位置等。

在不考虑并行处理的情况下,如何提升 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 期,访问下方链接,即可查看全部内容:pythoncat.top/tags/weekly

🐿️项目&资源

一个在 Jupyter Notebook 环境中运行的可视化探索式分析工具,仅一条命令即可生成一个可交互的图形界面,以类似 Tableau/PowerBI 的方式,通过拖拽字段进行数据分析。(star 6.5K)

image.png

用 Julia 为 Python 写高性能的 C 扩展,提速约 200x。(@xgdgsc 投稿)

JupyterLab 官方提供的生成式 AI 扩展,主要提供了:%%ai 指令、原生的聊天 UI 页面、支持大量平台的大语言模型(AI21、Anthropic、Cohere、Hugging Face、OpenAI、SageMaker 等)。

一个发布订阅者框架,支持同步异步调度、定时任务、主题管理、发布订阅者回调等功能。(@Zeeland 投稿)

一个基于磁盘缓存的 ORM 框架,可对基本数据类型及自定义的数据通过 ORM 进行增删改查,支持多种序列化操作和数据压缩方式。(@Zeeland 投稿)

如何测试机器学习模型、要涵盖哪些问题、如何实施测试?这个框架可扫描数十种漏洞(性能偏差、数据泄漏、不鲁棒性、虚假关联、过度自信、信心不足、不道德问题等),并基于结果生成特定领域的测试套件。(star 1K)

image.png

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

除了类似 shell 的语法和方便的快捷方式外,这个库还提供了本地和远程命令执行(通过 SSH)、本地和远程文件系统路径、简单的目录和环境操作、以及一个可编程的 CLI 工具包。(star 2.6K)

支持用文本提示、单个图像和少量镜头图像创建 3D 内容。支持多种模型,如 ProlificDreamer、DreamFusion、Magic3D、Score Jacobian Chaining,等等。(star 1.8K)

支持删除图像的背景,支持多种使用方式(cli、库、docker)和多种强大的功能。(star 10.5K)

image.png

🐼关于周刊

Python 潮流周刊,由豌豆花下猫主理,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。

内容创作要花费大量的时间和精力,如果你觉得有帮助,请随意赞赏买杯咖啡或在爱发电进行支持!如果你喜欢本周刊,请转发分享给其他需要的同学,让更多人可以从中受益~

订阅方式:Python猫 (可加群)| 邮件 | Github | Telegram | Twitter

目录
相关文章
|
18天前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
48 3
|
24天前
|
数据处理 Apache 数据库
将 Python UDF 部署到 Apache IoTDB 的详细步骤与注意事项
【10月更文挑战第21天】将 Python UDF 部署到 Apache IoTDB 中需要一系列的步骤和注意事项。通过仔细的准备、正确的部署和测试,你可以成功地将自定义的 Python UDF 应用到 Apache IoTDB 中,为数据处理和分析提供更灵活和强大的支持。在实际操作过程中,要根据具体情况进行调整和优化,以确保实现最佳的效果。还可以结合具体的代码示例和实际部署经验,进一步深入了解和掌握这一过程。
21 2
|
26天前
|
机器人 Shell Linux
【Azure Bot Service】部署Python ChatBot代码到App Service中
本文介绍了使用Python编写的ChatBot在部署到Azure App Service时遇到的问题及解决方案。主要问题是应用启动失败,错误信息为“Failed to find attribute 'app' in 'app'”。解决步骤包括:1) 修改`app.py`文件,添加`init_func`函数;2) 配置`config.py`,添加与Azure Bot Service认证相关的配置项;3) 设置App Service的启动命令为`python3 -m aiohttp.web -H 0.0.0.0 -P 8000 app:init_func`。
|
1月前
|
Linux Python
【Azure Function】Python Function部署到Azure后报错No module named '_cffi_backend'
ERROR: Error: No module named '_cffi_backend', Cannot find module. Please check the requirements.txt file for the missing module.
|
2月前
|
Linux Android开发 iOS开发
开源的Python库,用于开发多点触控应用程序
Kivy是一款开源Python库,专为开发多点触控应用设计,支持Android、iOS、Linux、OS X和Windows等平台。本文将指导你使用Kivy创建“Hello World”应用并打包成Android APK。首先通过`pip install kivy`安装Kivy,然后创建并运行一个简单的Python脚本。接着,安装Buildozer并通过`buildozer init`生成配置文件,修改相关设置后,运行`buildozer -v android debug`命令打包应用。完成构建后,你将在`./bin/`目录下找到类似`your-app-debug.apk`的文件。
66 2
|
2月前
|
Linux Python
linux之部署python环境&创建虚拟环境
linux之部署python环境&创建虚拟环境
|
3月前
|
存储 Python 容器
python中的h5py开源库的使用
python中的h5py开源库的使用
24 1
|
3月前
|
算法 数据处理 数据安全/隐私保护
|
3月前
|
Python
【Azure 应用服务】Python Function App重新部署后,出现 Azure Functions runtime is unreachable 错误
【Azure 应用服务】Python Function App重新部署后,出现 Azure Functions runtime is unreachable 错误
|
3月前
|
存储 Linux 开发工具
【Azure App Service】本地Git部署Python Flask应用上云(Azure App Service For Linux)关键错误
【Azure App Service】本地Git部署Python Flask应用上云(Azure App Service For Linux)关键错误