owl说:撸毛的高阶玩法-之AI 辅助篇(适合所有撸友,可坐等入tg群白嫖)

撸毛的高阶玩法-之AI 辅助篇(适合所有撸友,可坐等入tg群白嫖)

都2025年了,ai 就只能生成点代码?ai就不能帮我们撸毛吗? 从chatgpt国际爆火,到deepseek国内爆火,卷毛们也素质越来越高,太卷太难了. ai虽不能直接帮我们撸,但是时候让ai为我们撸友多做点事了,起码协助人工多节省点休息时间,有效避免猝死。为此现在就打造一个身边的超级撸毛顾问。

下面文章可以走马观花,知道大致实现的原理是什么能否有效解决需求就可以了. (待我采购到4090显卡就会对外免费tg推送,具体时间不做保证,所以暂时也不公布群,避免画大饼),所以要做的也只需入个tg群白嫖,就可能实现新人秒变资深撸王.

废话说完,就谈本篇文章的主题需求:

  1. 我们经常在tw上搜索信息,看一些项目方官网,了解最新的诸如空投信息、链游信息、代币利好信息、项目融资信息、项目热度、tge时间、注册申领空投时间、限时mint nft、限时任务之类等等,没及时关注就错过了时间等等. 这都需要我们大量的时间分析整理,毕竟这里面都知道选择不对,努力白费。
  2. 有了第1点的简单描述,那现在让ai来帮我们分析整理,最后汇总发到tg,wx,邮箱等,进行日报,周报等,岂不是就可以省心省事省力。
    另外我们自己可以随时问我们自己的ai,比如提示词1: “myshell融资多少,什么时候tge? 请列出提到的kol,简短的总结他的推文,注明时间及原推文地址”, 比如提示词2:“请给出monad 的详细教程,从kol 粉丝大于1000”,推文长度超过200,并总结领水是否有多种方式,有什么优缺点,同时总结对于monad,各大kol防止女巫有什么看法,以及如何去防范。
    再有我最近只关心某些趋势,币种的利好或者利空,最近哪些币上新,或者比如只关心movement上主网时间这类问题,我需要每天来问还是很麻烦,怎么办? 简单啊,临时增加一个定时提示词问答推送不就好了(api增加一个定向推送,指定提示词,指定推送时间,星期一到星期天再到每天时间段)

题外吐槽: 有人可能说我们早就做了外面也有…,那恭喜你快人一步,那就看看“做了”跟”做了”之间的区别吧。
所以这类人在我说正在弄某个脚本,他就会说网上都有开源的了没必要弄了,一次我觉得你是好意,多次我就都不想回答,那你用就可以了,我又不帮你代撸。真实情况是他在这行业这么多年了,都这么资深了,他能拉了跑起来吗?开源了好像就看懂了也能用了一样? 不禁要问:连你都不能,那你凭什么觉得这么简单大家都能跑? 真正懂的长期做撸毛的谁没有自己的方式,别人的最多也只是参考下或极少情况才会用吧。

3.原理简介:
1.)24时自动不间断每3-5秒采集tw(可以多来源,比如融资信息,交易所,定向监控指定的几千个kol)信息, 包括但不限于搜索关键字诸如 “空投”、 “web3″、”链游”、”即将发币”等等,将采集的数据入库,注明出处(原推文链接),注明命中关键字,注明类型(链游,空投,发币)等,具体小细节就不过多描述,可自行定义,比如推文的作者需要做什么限制,避免噪点过多,信息是否可靠,最后如何筛选信息等。

2.) 每日自动采集tw数据某些特定的,可人工审核,比如某些重要信息有一百条待审核的,就人工确认,再入到知识库(某些重要信息人为再扫一眼重要信息,避免误导)。

3.) 人工自动提交知识库,通过api接口 临时搜一些关键字比如从推文搜索提取,确认后入库。

4.) 每日将知识库清洗增量训练模型,让我们的ai每天增加海量的撸毛相关的信息。

5.) 后台程序每天定时汇总一些重要信息推送tg,对标准级别最高的实时推送。

6.) 管理员(或有权限)人工调用api推送一些当前在做的项目相关讯息推送tg。

7.) 每日增量训练,每周全量检查点保存一次,每半月进行模型蒸馏压缩。

8.) 还可给定一些知识库,白皮书等,这样保证确切的一些问题的精度,避免ai幻觉。

接下来直接来最终极简部署AI方案(新手友好版):
一、硬件与系统准备
基础硬件要求(因为我有这些东西,只需要加显卡,也很合适…)
cpu i9-14900kf
内存 64G 6800
显卡 rtx4090 24GB
M2硬盘 pci4 2tb

基础软件选择
deepseek v3-7b,为什么? (如deepseek r1的模型主要是代码跟数理逻辑强,意义不是那么大,太大硬件条件太高),因为硬件给到这样已经都能满足使用场景,这就够了。。。

系统选择ubuntu,为什么?(如win有cuda损失,ntfs对大量小文件的读写性能较差,因为我们还要用docker 一键部署,长期运行的稳定性不够等,如果win+wsl,也是同理,不是很适合长期部署)

数据库选择mongodb,为什么?(读写能力强,原生文本索引多语言分词,写入高速,再也因为这里用python,全都是json,字典, 操作简单, 可弹性扩展 .实际我也同时用了mysql存储做另外的分析)
Elasticsearch:可选,可先不用, 提供高级搜索
Redis:可选,可先不用,缓存查询

安装Ubuntu 22.04 LTS (也不选24.04了,太新怕坑多)
下载镜像:访问Ubuntu官网下载ISO
制作启动U盘:使用Rufus工具(Windows下)
安装步骤:启动时按F12选择U盘,分区建议:
/根目录:200GB
/home:剩余空间
交换分区:32GB(内存大小)
如果弄好:执行下面三行命令得查看3个结果是否符合预期。
ubuntu@u-001:~$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu–vg-ubuntu–lv 197G 43G 145G 23% /
ubuntu@u-001:~$ df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu–vg-home 1.7T 28K 1.6T 1% /home
ubuntu@u-001:~$ sudo swapon –show
NAME TYPE SIZE USED PRIO
/swapfile file 32G 0B -2

安装NVIDIA驱动

终端执行

sudo apt update
sudo ubuntu-drivers autoinstall

需要重启下才能看到显卡驱动验证完成

sudo reboot

验证安装

nvidia-smi # 应显示RTX 4090信息

二、基础环境配置
安装Docker与Docker Compose

Docker安装

sudo apt install docker

Docker Compose安装

sudo apt install docker-compose
创建项目目录

接下来,我们创建对应的目录了。

mkdir -p ~/web3-ai/{data/mongo,scripts,models,api}
cd ~/web3-ai

三、数据采集与处理 (参考使用,x官方api,也可以使用其他三方)
示例采集脚本scripts/scrape.py (我实际不用官方及三方api, 用打meme时候架构的自建tw池)
import snscrape.modules.twitter as sntwitter
from pymongo import MongoClient
import jieba
import re
from datetime import datetime

client = MongoClient(“mongodb://localhost:27017/”)
db = client.twitter
KEYWORDS = [“空投”, “web3”, “链游”, “即将发币”]

for keyword in KEYWORDS:
query = f”{keyword} lang:zh since:{http://datetime.today().strftime(‘%Y-%m-%d’)}”
for i, tweet in enumerate(sntwitter.TwitterSearchScraper(query).get_items()):
if i >= 3000: # 每个关键词最多3000条
break
clean_text = re.sub(r”http\S+|@\w+|[^\u4e00-\u9fa5a-zA-Z0-9\s]”, “”, tweet.content)
db.tweets.update_one(
{“id”: http://tweet.id},
{“$setOnInsert”: {
“id”: http://tweet.id,
“content”: clean_text,
“author”: tweet.user.username,
“url”: tweet.url,
“created_at”: http://tweet.date,
“tokens”: list(jieba.cut(clean_text)),
“keyword”: keyword,
“type”: “空投” # 根据内容自动分类
}},
upsert=True
)
定时任务配置
crontab -e

添加以下内容(每5分钟执行一次)

*/5 * * * * /home/你的用户名/venv/bin/python /home/你的用户名/web3-ai/scripts/scrape.py >> /home/你的用户名/web3-ai/logs/scrape.log 2>&1

四、模型训练与部署 (按实际选择情况进行增量训练模型)
训练脚本scripts/train.py
from transformers import AutoModelForCausalLM, TrainingArguments, Trainer
from peft import LoraConfig
import torch

model = AutoModelForCausalLM.from_pretrained(
“deepseek-ai/deepseek-v3-7b”,
device_map=”auto”,
torch_dtype=torch.bfloat16
)

lora_config = LoraConfig(
r=32,
lora_alpha=64,
target_modules=[“q_proj”, “v_proj”],
task_type=”CAUSAL_LM”
)

training_args = TrainingArguments(
output_dir=”./models/daily”,
per_device_train_batch_size=2,
gradient_accumulation_steps=8,
learning_rate=2e-5,
num_train_epochs=1,
fp16=True,
logging_steps=10
)

trainer = Trainer(
model=model,
args=training_args,
train_dataset=load_data_from_mongo(), # 自定义数据加载函数
data_collator=DataCollatorForLanguageModeling(tokenizer, mlm=False)
)
trainer.train()
Docker Compose配置 ~/web3-ai/docker-compose.yaml
version: ‘3.8’
services:
ollama:
image: ollama/ollama:0.1.34
ports:
– “11434:11434”
volumes:
– ./models:/root/.ollama
environment: # 新增环境变量
– NVIDIA_VISIBLE_DEVICES=all
– NVIDIA_DRIVER_CAPABILITIES=compute,utility
– OLLAMA_GPU_LAYERS=45 # 4090可跑满GPU层数
– OLLAMA_KEEP_ALIVE=72h
deploy:
resources:
reservations:
devices:
– driver: nvidia
count: 1
limits: # 新增资源限制
cpus: ‘8.00’
memory: 24G
mongo: #数据库
image: mongo:6.0
ports:
– “27017:27017”
volumes:
– ./data/mongo:/data/db
trainer:
image: pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime
volumes:
– ./scripts:/app
– ./models:/models
command: bash -c “pip install transformers peft && python /app/train.py”
deploy:
resources:
reservations:
devices:
– driver: nvidia
count: 1

五、API服务与推送
API服务api/main.py
from fastapi import FastAPI
from pymongo import MongoClient
import requests

app = FastAPI()
client = MongoClient(“mongodb://mongo:27017/”)
db = client.twitter

@app
.get(“/ask”)
async def ask(question: str):
# 调用DeepSeek模型
response = http://requests.post(
“http://ollama:11434/api/generate”,
json={
“model”: “deepseek-v3:7b”,
“prompt”: f”基于以下知识库回答:{question}”,
“stream”: False
}
)
return {“answer”: response.json()[“response”]}
Telegram推送脚本scripts/send_tg.py
import requests
from pymongo import MongoClient

client = MongoClient(“mongodb://localhost:27017/”)
db = client.twitter
TELEGRAM_BOT_TOKEN = “你的Bot Token”
TELEGRAM_CHAT_ID = “你的Chat ID”

def send_message(text):
url = f”https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage”
params = {“chat_id”: TELEGRAM_CHAT_ID, “text”: text}
http://requests.post(url, json=params)

每日汇总推送

results = db.tweets.find({“type”: “空投”}).limit(10)
message = “今日空投信息汇总:\n” + “\n”.join([t[“content”] for t in results])
send_message(message)

六、启动与验证
一键启动所有服务
docker compose up -d
验证服务状态
docker ps # 应显示所有容器运行中
curl “http://localhost:8000/ask?question=如何获取最新空投信息”

七、维护命令速查

停止所有服务
docker compose down

更新采集脚本
修改scripts/scrape.py后无需重启

查看GPU利用率
watch -n 1 nvidia-smi

备份数据库
docker exec mongo mongodump -o /data/backup

停止所有服务
docker compose down

更新采集脚本
修改scripts/scrape.py后无需重启

查看GPU利用率
watch -n 1 nvidia-smi

备份数据库
docker exec mongo mongodump -o /data/backup
遇到问题可优先检查Docker日志,90%的常见错误可通过docker compose restart解决。

每日新增数据约10万条时,测算硬件资源的大致利用率(其实也一直在变化,显卡还没换成4090):
CPU占用:约40%
GPU显存:训练时约20-22GB,推理时约8-10GB
内存占用:日常约48GB(含缓存)

最后:
这个圈子这种腊味文章还能看到这里来的不容易…
我等做小事的是细节决定成败,而尔等大佬们成大事本无需在意细节。看似没几下跑起来,实际是深陷无穷尽的问题解决,调优迭代中…

只能说届时效果能过我自己的关,定诚邀入群!

分享给他人

你也许会喜欢

+ There are no comments

Add yours