V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  keakon  ›  全部回复第 2 页 / 共 56 页
回复总数  1102
1  2  3  4  5  6  7  8  9  10 ... 56  
180 天前
回复了 julyclyde 创建的主题 Python functools.partial 和 partialmethod 的困惑
@julyclyde 你先看看 descriptor 的作用吧。简单来说,如果一个类( Client )的属性( getMe )是 descriptor ,那么在访问这个类的实例( c )的同名属性( getMe )时,访问的实际是这个 descriptor 的 __get__() 方法。
getMe = functools.partialmethod(callAPI, "getMe") 正是给类定义了一个 descriptor ,而它的 __get__() 方法里返回了一个 callable 。
而 return functools.partialmethod(self.callAPI, APIname) 这个实现虽然返了 descriptor ,但它不是类的属性,因此访问时并不会调用 __get__()。
181 天前
回复了 julyclyde 创建的主题 Python functools.partial 和 partialmethod 的困惑
partial 实现很简单,它的 __call__() 方法将新老参数合并在一起调用原函数。
因此 c.getMe() -> c. __getattr__('getMe') -> functools.partial(self.callAPI, 'getMe') -> self.callAPI('getMe')

partialmethod 是一个没有定义 __call__() 方法的 descriptor ,而它的 __get__ 方法主要实现是调用 partial()。
因此 functools.partialmethod(self.callAPI, APIname) 返回的是一个不能调用的 partialmethod 对象。
而 getMe = functools.partialmethod(callAPI, "getMe") 是给 Client 类定义了一个叫 'getMe' 的 descriptor 。此时,c.getMe() -> functools.partialmethod(callAPI, "getMe").__get__(c, Client) -> Client.callAPI(c, "getMe")。
193 天前
回复了 andforce 创建的主题 程序员 约 192GB 短信样本如何标记分类?
先用 LLM 标注一部分,比如 1 万条,人工校对一下。然后用 bert 类的模型,例如 roberta 加几层预测标签来训练。

这玩意是个体力活,有多少人工,就有多少智能
不看进程不看 sy/wa 之类的,咋分析啊
255 天前
回复了 cowcomic 创建的主题 程序员 LLama3.1 的申请被拒了
@kenvix 算错了,800 GB 。
zap 挺慢的,基本没啥奇技淫巧
https://github.com/keakon/golog/?tab=readme-ov-file#result
255 天前
回复了 cowcomic 创建的主题 程序员 LLama3.1 的申请被拒了
@afxcn 正常的机器跑不起来,半精度 405B 需要超过 8TB 显存,100 多张 A100 80G ,大概 1 千万人民币吧。
@DIMOJANG numpy 是有的
单纯是因为 cv2 没有写 docstring ,只是转发到 c 的接口而已。
双 4090 用 vllm 部署 qwen2:72b-int4 ,最低大概要 42GB 显存。占满 48GB 显存的情况下,32 并发下大概每秒 300 tokens 。
用 ollama 部署,大概要 40GB 显存。2 并发大概每秒 30 tokens ,再增加并发性能反而下降。
但是具体到单个请求,只有 15 tokens/s 的样子,大概是 gpt-4o 的 1/4 。
友情提醒,最好换个框架,不然每秒几十个订单可能就扛不住了。

然后通知是什么场景呢?用户刷卡时,pos 机发到 server 端,处理完通知么?这个不是秒级就完成了么,还需要轮询?
277 天前
回复了 yodhcn 创建的主题 程序员 有 CORS 还需要 CSRF token 吗?
这 2 者作用不一样啊,CORS 是跨域的安全设置,你没跨域使用 xhr 、fetch 时不受影响。
计算挺奇怪的,60 万用户全在一分钟内访问,这是主动发起的,还是定时任务啊?

平时还能有 1000 qps ,他们是有多闲,每 10 分钟都会查询一次…

说实话你这问题靠扩容没法解决,比如 8:59 时还是 1000 qps ,假设 1 台机器刚好。9:00 突然到 1 万 qps ,立刻再起 9 台机器,启动要半分钟,同步数据几分钟,然后发现 qps 回到 1000 了,它们又可以下线了。
就是问 3 个模型,然后让一个模型根据 3 个回答来汇总成一个回答
https://github.com/win4r/MoA/blob/main/utils.py#L154
如果你除了结果,还关注状态或异常等信息,以及返回时机的控制,可以用 asyncio.wait 取代 asyncio.gather 。
asyncio.to_thread 可以把同步调用转成异步。
asyncio.Queue 可以实现并发控制,比如预先分配 10 个资源,那么只有 10 个协程能 get 资源,其他的会被阻塞,直到用完资源的协程把资源放回队列。
我是用 black ,ruff 也是用 black-compatible 的格式

不过我不喜欢用双引号,所以 fork 了一个 white: https://github.com/keakon/white
不是政治要求的话,那些国际通用的加密算法才是安全的。
国密基本上是把这些算法拿来,将其中随机的参数设置成一个预设的常量,不但降低了安全性,还可能藏有后门。

关于破解可以说没有任何安全的防御手段,前公司破解了大量竞争对手(网络安全行业)的产品来研究。

关键是算法和数据才是有价值的,保护接口有啥意义?你看 OpenAI 不也开放了 API ,那么多开源模型都抄它的 API ,但是最终比的不是模型的质量么?
291 天前
回复了 axin2023 创建的主题 Python 求助一些关于 Python 开发的面试题
@lolizeppelin json schema 校验完,你拿到的是一个没有任何类型信息的 dict ,后续需要使用到它的字段时,你需要手写 key ,编辑器也无法判断 value 的类型信息。你愿意花 10 分钟了解一下的话,可能就不会喜欢这种远古的 Python 代码了。

鉴于这帖的沟通比较费劲,后续信息我就不再回复了。
292 天前
回复了 axin2023 创建的主题 Python 求助一些关于 Python 开发的面试题
@LeeReamond
@noahlias
@InkStone
统一回复吧:

面试者不是没接触过就不能答,比如「虽然我没用过 Tornado ,但是如果是我来设计,我可能会这么这么实现」。
面试官也不是纠结标准答案,可以根据反馈引导面试者或者降低难度。你心目中知道你出这个题涉及到哪些知识,你围绕着把相关知识点问出来就行了,比如「 generator 是如何模拟实现 coroutine 的,它们的差异是啥?」、「协程是怎么调度的?」。
我没见过哪个面试是拿一份考题依次往下问,面试者依次说「没用过,不知道」的。

有没看过源码正好是筛选候选人的重要标准。不过涉及的一般是他自己的简历里提到的库或者重要的官方库。如果既不懂原理,又不看源码,那和只会 CURD 的调包侠有什么区别?

面试官并不需要确保面试者回答正确,而是考查他了解到了哪一步。
比如面试者回答了「 Model 应该需要元类来实现,但我想不起具体细节了」,我还会引导去问问「设置类或对象的属性值时为啥会触发校验」来判断是否了解 descriptor 。

FastAPI 有用 Pydantic 来做参数校验,它也有 BaseModel ,这就是挺常见的一种 ORM 之外的场景。这个场景下,你还能问 「 Pydantic 是怎么识别出这些属性的 type annotation 的?」、「 BaseModel 会不会引入一些坑和限制?」
还有单例之类的场景也会需要用到元类。如果面试者有用过的话,可以问问和其他单例模式的实现有啥区别。或者更进阶一点,当需要让一个抽象类的所有子类都实现单例模式时,应该如何正确声明 __call__ 方法的参数和返回值类型呢?
1  2  3  4  5  6  7  8  9  10 ... 56  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2290 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 04:41 · PVG 12:41 · LAX 21:41 · JFK 00:41
Developed with CodeLauncher
♥ Do have faith in what you're doing.