https://www.dong-blog.fun/post/360#Docker
之前没打镜像,后悔!搞了半天,记录下来。
这里有Dockerfile:
bash展开代码FROM registry.us-west-1.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.7.1-py38-torch2.0.1-tf1.15.5-1.8.1
RUN apt-get update && apt-get install -y libjemalloc-dev && rm -rf /var/lib/apt/lists/*
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
WORKDIR $HOME
RUN chmod 777 $HOME
RUN mkdir $HOME/modelscope_cache
ENV MODELSCOPE_CACHE=$HOME/modelscope_cache
ENV GRADIO_SERVER_NAME=0.0.0.0
EXPOSE 7860
RUN echo 'cloning facechain:hf_space_fact'
RUN git clone -b feat/hf_space_fact https://github.com/modelscope/facechain.git
WORKDIR $HOME/facechain
RUN pip install -r requirements.txt
ENV LD_PRELOAD=/lib/x86_64-linux-gnu/libjemalloc.so
ENV PYTHONPATH=.
CMD ["python", "app.py"]
不以root运行。进去后还需要适配一些代码。
启动
bash展开代码docker run -it --net host --gpus all kevinchina/deeplearning:fact_face_swapev1 /bin/bash
cd facechain
$ GRADIO_SERVER_PORT=9872 python3 app.py
创建key后调用:
python展开代码import requests
# 设置你的 OpenRouter API 密钥
api_key = "sk-or-v1-44855ead77789aba720551ad07a8f7434b935104ef0248cedd6d20f527e5dc"
# OpenRouter API 端点
url = "https://openrouter.ai/api/v1/chat/completions"
# 请求头
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
# 请求体
data = {
"model": "openai/gpt-oss-120b", # 指定要使用的模型
"messages": [
{"role": "user", "content": "你好!请介绍一下你自己。"}
],
"temperature": 0.7
}
# 发送 POST 请求
response = requests.post(url, headers=headers, json=data)
# 检查响应
if response.status_code == 200:
result = response.json()
print(result["choices"][0]["message"]["content"])
else:
print(f"请求失败,状态码: {response.status_code}")
print(response.text)
使用官方安装脚本(Linux)
bash展开代码curl -fsSL https://ollama.com/install.sh | sh
默认路径:
~/.ollama/modelsC:\Users\<用户名>\.ollama\models自定义路径:
bash展开代码export OLLAMA_MODELS="/mnt/jfs6/model" # Linux/Mac
$env:OLLAMA_MODELS="C:\your\custom\path" # Windows
https://github.com/humanlayer/12-factor-agents/tree/main
核心:将用户的自然语言请求转换为结构化的工具调用。
例子:用户说“给Terri创建一个750美元的付款链接,用于2月AI聚会赞助”,转换为:
json展开代码{
"function": "create_payment_link",
"parameters": {
"amount": 750,
"customer": "cust_xxx",
"memo": "..."
}
}
然后由确定性代码执行。这是代理的基础能力。
核心:不要依赖框架的黑盒提示词,要自己编写和控制。
原因:
做法:把提示词当作代码来管理,可以测试、迭代、版本控制。就像写函数一样写提示词。
bash展开代码# 使用vLLM启动
python -m vllm.entrypoints.openai.api_server \
--model /mnt/jfs6/model/Qwen3-235B-A22B-Instruct-2507-FP8 \
--served-model-name gpt \
--host 0.0.0.0 \
--port 8000 \
--max-model-len 8192 \
--tensor-parallel-size 4 \
--api-key "123"
常见任务与损失函数对照表
| 任务类型 | 典型场景 | 推荐损失函数 | 数据格式 | |---
这是我的命令:
bash展开代码python run_mobileagentv3.py --adb_path "D:\platform-tools\adb.exe" --api_key "123" --base_url "http://10.142.18.204:8006/v1" --model "owl32b" --instruction "帮我整理所有与'黄金第4天'相关的微博动态" --add_info "整理某东西的微博动态的操作如下,全程不需要滚动操作:1. 微博应用图标不在可见范围内, 使用 open_app 微博 动作直接打开微博应用(无需滑动)。 2. 点击发现 icon。 3. 输入搜索词,但不要打开智搜开关。 4. 点击橙色的搜索按钮。 5. 在搜索结果里再去点击上方Tab里出现的智搜按钮,进入到智搜的结果页面。 6. 点击左下角的 继续问智搜 ,点击一次即可,再次出现就不要点击。 7. 关闭可能会弹出来的弹窗,然后点击右下方出现的'⬇'的 icon 按钮到内容的最底部,而不要使用滚动操作去滚动到最底部。 8. 点击屏幕最左边的下方的复制按钮,点击复制按钮的动作描述(Action description)要写成 点击复制按钮,之后就退出agent。"
构建一点微调数据训练这个模型:https://huggingface.co/mPLUG/GUI-Owl-32B
这个模型其实就是来源于:https://huggingface.co/Qwen/Qwen2.5-VL-32B-Instruct
理想上,GUI-Owl-32B会变成微博操作的一个专家。事实上又会如何呢?
让我帮你搜索一下 Qwen 这些不同系列模型的最新信息和区别。好的!让我给你详细解释一下 Qwen 家族这几个系列的区别:
这是 Qwen 的核心通用语言模型系列,包含从 0.6B 到 235B 参数的密集和混合专家(MoE)模型。是最全面的基础模型,不断迭代更新。
倾向:通用型,追求全面的语言理解和生成能力