V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  shuimugan  ›  全部回复第 3 页 / 共 24 页
回复总数  479
1  2  3  4  5  6  7  8  9  10 ... 24  
231 天前
回复了 javak 创建的主题 Java Java hello world 确实就要占用 30M
@haython 任何的重构肯定能降低资源,因为已经熟悉了原来的业务逻辑。但是用 java8 重构肯定不能节省 3/4 ,因为 java8 的并发模型就摆在那里。
这个视频是我打游戏的时候挂着听的,有几个重点指标:
1.资源占用少,原来那个 java 服务冷启动 100 秒,能吃满一个核,高峰期 java8 服务挂掉后重启那一刻猛猛吃 cpu ,在 k8s 里属于自己搞死自己;
2.碰到了那种等慢 sql 结果搞到线程池满的 case ,就会死,迁移到.net 的异步 IO 真香。这点其实非常的重要,现实的业务逻辑到处都是等待 IO ,java8 那个线程模型就是不行;
3.分布式事务也有很好的支持;
4.迁移成本很低,几乎 0 感,这个在带团队上非常重要;
231 天前
回复了 javak 创建的主题 Java Java hello world 确实就要占用 30M
内存便宜是作为个人设备而言的,到了生产环境内存就很昂贵了,特别是一个业务群一年下来的费用。
大家都说性能瓶颈不在语言而是在数据库层,既然这样,那应用层的配置从 8c 32g 砍到 8c 16g 行不行? 4c 8g 呢? 2c 4g 呢?真正做过资源分配和预算决策就懂了。

https://www.bilibili.com/video/BV1Qe411k7H6 .NET Conf China 2023 的分享,从 Java8 到 .NET8 ,团队升级工作汇报 》可以看下别人的历程,迁移完了服务器资源降低了 3/4 。等自己到了带团队做决策分配预算的位置,就会自然而然做出类似的决定,毕竟省下来的钱自己人分掉不香吗。
@huangcjmail GitHub Copilot 也有 embedding 的逻辑,很显然的例子就是一段你删除了的代码,还可以补全出来,就是已经入库了做了向量化,在输入的时候做了相似搜索做上下文补全。

我 5 月份开始在 VSCode 禁用 GitHub Copilot 改用 Continue 来适应完全本地化 AI ,体验上来说很接近了,细节在于一些 if 语句判断还是 Copilot 严谨一些。但是大模型每个月都有新成果,在 14B 以下的尺寸卷疯了,这个尺寸很适合新出的 CPU 里那 NPU 和游戏显卡这种家用 24G 以下显存的设备推理。
@beginor 快和慢取决于带宽和算力,我测试 2080ti 22g / 7900xtx / m2 ultra 都很快,7B 模型 4bit 量化都超过 70token/s ,打开项目之后等几分钟插件做 embedding 入库就好了。
还可以配置个 embedding 模型,把代码向量化到本地,方便 RAG 和补全出相似逻辑。向量化和代码片段数据保存在~/.continue/index/index.sqlite

附一份我本地的配置
```json
{
"models": [
{
"title": "Ollama",
"provider": "ollama",
"model": "codestral:22b-v0.1-q8_0",
"apiBase": "http://10.6.6.240:11435/"
}
],
"customCommands": [
{
"name": "test",
"prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.",
"description": "Write unit tests for highlighted code"
}
],
"allowAnonymousTelemetry": false,
"tabAutocompleteModel": {
"title": "deepseek-coder-v2:16b-lite-base-q8_0",
"apiBase": "http://10.6.6.240:11435",
"provider": "ollama",
"model": "deepseek-coder-v2:16b-lite-base-q8_0"
},
"embeddingsProvider": {
"provider": "ollama",
"apiBase": "http://10.6.6.240:11435",
"model": "mxbai-embed-large:latest"
}
}
```
其实性价比最高的定时器,应该是各个云厂商的 serverless ,配个触发器,然后选个 curl 镜像,里面扔个 curl 命令请求你的系统,请求头搞个 token 做鉴权就够了。
优先赛博菩萨 cloudflare
https://developers.cloudflare.com/workers/examples/multiple-cron-triggers/


其次国内云
https://help.aliyun.com/zh/functioncompute/user-guide/time-triggers
https://cloud.tencent.com/document/product/583/9708


人家云服务的后台有账户管理、日志记录、失败可以重试、有告警,以前的那种额度够你免费用一年,现在一年也就十几二十块,比你自己搭建部署整天修漏洞打补丁还要搞多节点做高可用靠谱多了。

你还要做性价比高的延时任务?计算好触发时间,动态创建/修改/删除函数,把触发器时间设定为触发时间就行了,反正小系统也没多少条任务吧。
236 天前
回复了 LeviMarvin 创建的主题 程序员 现在有没有可以阅读完整项目的 AI
现在大模型支持的上下文也就百万 token ( Llama-3-8B-Instruct-Gradient-1048k 、glm-4-9b-chat-1m 、internlm2_5-7b-chat-1m )到 4 百万 token(Llama-3-8B-Instruct-Gradient-4194k),想在对话里塞进中小型项目可能够用,如果不够用那只能用 RAG 或者 GraphRAG 的形式。

付一个简单的 RAG 例子,不到 20 行就可以和代码仓库对话
```python
from llama_index.core import SimpleDirectoryReader
from llama_index.embeddings.ollama import OllamaEmbedding
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.llms.ollama import Ollama

ollama_embedding = OllamaEmbedding(
model_name="mxbai-embed-large:latest",
base_url="http://10.6.6.240:11435",
)
llm = Ollama(model="deepseek-coder-v2:16b-lite-instruct-fp16", request_timeout=240.0, base_url='http://10.6.6.18:9090',
context_window=32000,
system_prompt="你是一个专业的架构师,接下来的问题请以架构师的角度回答,如果涉及到代码输出,则代码要充分利用异步非阻塞特性,注释丰富,多打印日志,容错性好,对外部输入进行充分校验。")
Settings.llm = llm
Settings.embed_model = ollama_embedding

documents = SimpleDirectoryReader(input_dir="代码目录", recursive=True, required_exts=['.扩展名']).load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query(
"这个项目都有什么功能?")

print(response)

```
RAG 说白了就是在你问的问题之前,用相似搜索来把 [和问题关键字近似的代码片段] 追加到你问题后面,在提示词里 [加几句话让模型参考追加的内容] ,前置步骤切分代码片段创建向量这个步骤容易切碎导致丢失代码。更有碰到宏观问题就歇逼的现象,比如上面例子的“这个项目”,近似搜索压根不知道你指的是哪些代码。

GraphRAG ( https://github.com/microsoft/graphrag )和 https://docs.llamaindex.ai/en/stable/examples/index_structs/knowledge_graph/Neo4jKGIndexDemo/ 又进了一步,用知识图谱的方式来找代码追加到上下文,在应对相对宏观的问题上有优势。比如“这个项目都有什么功能?”这种问题,对于“这些代码”可能给你找全一点,比如“下单流程有哪些步骤”可能把什么优惠券、会员积分、秒杀啥的都找出来,而不是仅仅搜索 order 相关的代码。
Win10 也有类似的 bug ,128G 内存,长时间不关机就出现。虚拟机都关完了,Chrome 关剩下几个窗口,还搁着占用 75G ,找来找去都找不出是谁,只能重启
@cinlen 2080ti 22g 我手头有 2 张,分别 24 小时开机 1 年和 1 年半,没啥问题。不建议买水冷版,单张的话建议买 2~3 风扇的。
涡轮卡适合挤多张但是噪音大,把功耗限制在 70%左右,风扇拉一下可以得到很好的噪音/性能表现,跑 AI 性能下降在 10%左右。买了一张就会买第二张,迟早走上 4 卡/8 卡的道路。
@Champa9ne P40 太老了,带宽小,算力差,朋友拿 10 张去跑 Command R Plus 104B 8bit 推理,速度不到 2 token/s ,拿 M2 Ultra 192GB 跑起码还有 5.x token/s ,各种意义上的电子垃圾。
251 天前
回复了 WhiskerSpark 创建的主题 Google 谷歌发布了新的大模型 Gemma 2
测试了下 27B 的,废话巨多,写代码能力差,还很敏感,等微调吧。
@lrigi 好久没跑 7B 这么小的模型了,刚刚又跑了一次来弄点数据,量化方式都是 GGUF ,推理后端都是 llama.cpp 。
Codeqwen-1_5-7b-chat 模型,q4_k_m 量化,单张 2080ti 22g 下推理速度是 70.54 token/s ,在 M2 Ultra 上速度是 75.34 token/s 。
Mistral-7B-Instruct-v0.1 模型,q8 量化,单张 2080ti 22g 下推理速度是 51.72 token/s ,在 M2 Ultra 上速度是 61.24 token/s 。
@lrigi 我测过啊,我有 2 张 2080ti 22g ,1 张 7900xtx ,1 个 Mac Studio M2 ultra 76 核 192G 内存。
你发的那个已经是 10 个月前的数据了,也不知道怎么测的,最近编码能力很牛的 Codestral 22B 6bit 量化在 2080ti 22g 都能跑 22 token/s 。而且 10 个月前海外还买不到 22g 的魔改 2080ti
跑大模型推理吃的是内存带宽和核心数,连频率都不怎么吃,显卡降低 30%的功耗也就少个 10%左右的速度。Max 那个带宽才 400GB/s ,只有 Ultra 一半, [用来跑大模型就是个垃圾] 。

买 Mac 跑大模型,优势是比买超大显存(指的是单张 48G 和以上显存)的显卡方便。你这才 64G 的配置,无论是二手魔改 2080TI 22G X3 的价格,还是全新 7900XTX 24G x3 的价格,加上其它硬件的费用,除了电费和体积没优势,推理速度和扩展性都能把 Max 按在地上摩擦。

具体被摩擦到什么程度呢? Ultra 推理速度是 Max 的 2 倍,而多张 2080TI 22G 的速度是 Ultra 的 2~3 倍,这个波动是随着模型占用越大优势越小,毕竟多卡之间走 pcie 通讯也是有点损耗的。
255 天前
回复了 lucasj 创建的主题 PHP [不懂就问] PHP 的开发效率具体快在哪里?
要看历史发展的,十年前接的项目大部分是各种商城、CMS 、论坛,很多开源项目可以利用,套个模板加个插件改一改就上线了。
上线部署也很粗糙,大部分是 FTP 上传后刷新,版本控制都少。给客户演示时还能当场上服务器改代码,保存立马生效。
大部分人都不会断点调试,就在代码里 var_dump 变量然后 exit 结束脚本,然后回浏览器按一下 F5 看输出结果然后继续写。
密码加密不是 md5 就是 sha1 ,这些都是内置函数。
写 Java 的还在纠结 json 库用哪个,选了 Fastjson 就有福了,一部分人整天在升级版本修漏洞,另一部分连自己系统被干了都不知道,而 JSON 处理在 PHP 里也是内置函数。
写 Java 的还在头疼日期和时间戳之间的处理,PHP 一个万能 date 函数就解决 99%的场景了。
写 Java 的还在头疼 url 参数编解码、特殊字符转义,PHP 内置函数又搞定了。
写的代码运行出错,一行配置或者代码前面加个 @ 就能抑制错误继续跑,try/catch 都不用,要是写 Java 还在挠头哪来的空指针。
前后端没分离的项目,还在纠结模板引擎选什么,写 PHP 的在包含 HTML 文本 PHP 的代码中改得飞快。
写 Python 的还在吵 Django 和 Flask 到底要用哪个,吵完了发现怎么上线还要套 Gunicorn 之类好麻烦。
写 Ruby 的表示 Ruby on Rails 非常牛逼,就是语言小众招不到人。
写 Node.js 的还在回调地狱里出不来。

在那个年代写 PHP ,你就说快不快吧。
289 天前
回复了 shineshane 创建的主题 程序员 自定义域名邮箱服务
300 天前
回复了 bomjack 创建的主题 程序员 怎么防止 windows 客户端 被破解
大概是 2008 年那会,对于 VMP 和 TMD 这种搞不定的壳,等程序完全加载到内存之后动态调试 + 内存补丁就通杀了,也不算难
307 天前
回复了 CoffeeLeak 创建的主题 Local LLM 折腾 Llama3 跑在 NAS...结果确实一言难尽
CPU 跑大模型推理瓶颈就是在内存带宽,按 ddr4 双通道内存带宽为 30GB/s 的速度来算,7B 规格的 8bit 量化,也就 4 token/s 左右的速度,4bit 量化就速度 x2 ,14B 规格就速度除以 2 ,偏差不会太大。
330 天前
回复了 random1221 创建的主题 宽带症候群 2024 年内网穿透的最佳方案是什么?
先考虑一下把公司电脑的远程桌面端口暴露到公网,被弱口令爆破或者 0day 打穿之后,蔓延到公司内网中毒时,你需要负什么责任吧...

动手能力好就 tailscale 加自建 derby ,动手能力差就 WireGuard 傻瓜脚本 https://github.com/angristan/wireguard-install
我觉得我的 5900x + 128GB 内存 + 2080ti 22g 跑 Windows 10 LTSC 很好用,打开软件速度很快,不用像 Mac 那样图标弹弹弹弹弹弹弹弹才蹦出界面。
当然跑 Debian + KDE 更好用。

-- 发送自睾贵的 192GB M2 Ultra ( 24 核 cpu + 76 核 gpu 版) Mac Studio 带 AppleCare 国行非海南免税店版
1  2  3  4  5  6  7  8  9  10 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   991 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 22:04 · PVG 06:04 · LAX 14:04 · JFK 17:04
Developed with CodeLauncher
♥ Do have faith in what you're doing.