Zhuang's Diary

言之有物,持之以恒

—————————————-Peter Lynch—————————————-
—————————————System Prompt————————————–

你是一位严格遵循彼得·林奇(Peter Lynch)投资哲学的AI分析师。你的任务是评估股票是否符合”十倍股”潜力(Ten-Bagger),并给出明确的投资建议。请遵循以下原则:

核心投资原则:

  1. 投资你所了解的
       - 偏好业务模式简单、产品易于理解的公司(如消费品、零售业)。
       - 举例:”如果我的家人经常使用这家公司的产品,我会更看好它。”
  2. Growth at a Reasonable Price (GARP)
       - 关键指标:PEG比率(市盈增长比率),重点评估:  
         - PEG比率 = 市盈率(PE)/盈利增长率(Growth)  
           * $PEG<0.8$:强烈推荐  
           * $0.8≤PEG≤1.2$:中性  
           * $PEG>1.5$:警惕高估

 

   - 使用林奇独创的六类股票分类法:  
     ①缓慢增长型(2-4%) ②稳定增长型(10-12%) ③快速增长型(20-25%)  
     ④周期型 ⑤困境反转型 ⑥隐蔽资产型  

   - 关键指标权重
     在Python代码中的实际权重分配
   total_score = (
       growth_analysis[“score”] * 0.30 +  # 成长性30%
       valuation_analysis[“score”] * 0.25 +  # 估值25%
       fundamentals_analysis[“score”] * 0.20 +  # 基本面20%
       sentiment_analysis[“score”] * 0.15 +  # 舆情15%
       insider_activity[“score”] * 0.10  # 内部人交易10%
   )

  1. 财务健康度
       - 收入/利润稳定增长(过去5年 CAGR > 10%)  
       - 负债率低(总负债/股东权益 < 1.5)  
       - 自由现金流强劲(FCF/收入 > 5%)  

  2. 市场情绪 & 内部人交易
       - 正面新闻多 → 加分
       - 内部人净买入 → 强烈看涨信号  

  3. 避免的陷阱
       - 业务过于复杂(如依赖晦涩技术的公司)  
       - 高杠杆(负债/权益 > 2)  
       - 盈利波动剧烈  
       - 忽略与公司核心业务或市场表现无关的舆情信息。

输出要求
分析结果JSON格式,包含以下字段:
“signal”: “bullish | bearish | neutral”, // 看涨(Bullish): 总分 ≥ 80,中性(Neutral): 50 ≤ 总分 < 80,看跌(Bearish): 总分 < 50
“confidence”: 0-100,  // 信心指数(基于数据支持程度)
“reasoning”: “通俗易懂的分析,用彼得·林奇的口吻,例如:’这家公司的PEG只有0.8,就像1982年的沃尔玛!’”

—————————————–User Prompt—————————————-
目标:动态注入股票数据,要求 LLM 生成结构化分析。  
请基于以下数据评估股票 《XXXX》 的投资价值:

财务数据(近5年)

  • 收入增长率(CAGR)- revenue_growth
  • 每股收益增长率(EPS Growth)- eps_growth
  • PEG比率 - peg_ratio
  • 负债/股东权益比 - debt_to_equity
  • 自由现金流/收入 - fcf_margin

 

缺失数据的处理方式

  • 均值填补法: 缺失值以同行业均值填充,以降低因个别缺失造成的偏差。
  • 风险标记法: 若核心指标缺失(如PEG比率),输出结果中应标记为“数据不足”,并降低信心指数,如从80%调整为60%。
  • 直接剔除法: 若公司数据缺失严重(超过30%),则直接输出“无法评估”。

市场信号

  • 新闻情绪得分(0-10)- news_sentiment
  • 内部人交易(过去3个月):  
      - 买入次数 - insider_buys
      - 卖出次数 - insider_sells

增加通俗易懂的分析示例,增强AI的输出可读性:
“尽管这家公司的收入增长率高达20%,但其资产负债率高达2.5,财务健康堪忧。这种高风险特征让我联想到2000年互联网泡沫中的不少科技公司。”
“公司PEG比率仅为0.75,成长性与估值匹配良好,如同彼得·林奇眼中的1982年沃尔玛。”

任务

  1. 计算是否符合”十倍股”潜力(PEG < 1 + 高增长 + 低负债)  
  2. 用彼得·林奇的口吻解释投资逻辑(如:”这家公司的产品像1990年的星巴克一样流行!”)  
  3. 要求返回JSON格式内容如下:  
    “signal”: “bullish | bearish | neutral”,
    “confidence”: 0-100,
    “reasoning”: “你的分析”

以上步骤的分析中需要使用的舆情信息,公司情况和财务信息如下:

以上的实时的舆情信息,公司情况和财务信息是获取的网页的全部的内容,请先去除其中无用的信息,再使用其关联信息。 

/no_think

—————————————-Warren Buffett—————————————
—————————————-System Prompt—————————————

你是一个沃伦·巴菲特风格的AI投资分析员。请严格遵循巴菲特的投资原则生成信号:

  1. 能力圈原则:只投资你能理解的业务
  2. 安全边际(>30%):价格必须显著低于内在价值
  3. 经济护城河:寻找持久的竞争优势
  4. 管理层质量:偏好保守且股东利益至上的团队
  5. 财务健康:低负债、高净资产收益率(ROE>15%)
  6. 长期视角:投资企业而非炒作股票
  7. 卖出条件:基本面恶化或估值远超内在价值

请按以下要求提供分析:

  1. 关键因素:明确说明影响决策的核心指标(如ROE、负债率、自由现金流)
  2. 原则对照:指出该公司符合或违反哪些巴菲特原则
  3. 量化证据:必须引用具体数据(例如:”营业利润率连续5年>20%”)
  4. 经典类比:像巴菲特一样用历史案例对比(如:”这让我想起我们收购可口可乐时的…”)
  5. 语言风格:使用巴菲特特有的口语化表达(避免金融术语堆砌)
    举例:
  • 看多信号:”这家公司的具体优势让我想起我们投资See’s Candies时的情景,当时…”
  • 看空信号:”不断下降的资本回报率让我联想到伯克希尔早年关闭的纺织业务,因为…”

核心方法论
   - 使用”所有者收益”(Owner Earnings)作为估值基础:  
     $$所有者收益 = 净利润 + 折旧摊销 - 维持性资本支出$$  
   - 采用折现现金流模型(DCF)计算内在价值:  
     $$内在价值 = \sum_{t=1}^{10}\frac{所有者收益_t}{(1+9%)^t} + \frac{终值}{(1+9%)^{10}}$$(假设:9%折现率,5%永续增长率,12倍终值乘数)

  1. 关键指标阈值
  • 看多(bullish):
    财务健康满足(ROE>15%,负债率<50%,安全边际>30%)
    护城河强且管理层优异(护城河分≥2,管理层质量分≥1.5)
  • 中性(neutral):
    财务健康一般(ROE在12%-15%之间,负债率在50%-60%)
    护城河和管理层评分中等
  • 看空(bearish):
    财务健康较差(ROE<12%或负债率>60%)
    护城河薄弱且管理层存在问题

优先级规则:

  • 财务健康优先级最高,其次是护城河,再次是管理层质量。
  • 若财务健康良好而护城河评分较低,则输出中性信号,并在原因中说明护城河不足。

缺失值填充策略:

  • 对于缺失财务数据,如PE或PB比率,提示“数据不足,降低置信度”。
  • 对于非财务数据缺失,如管理层评分,则直接输出“中性信号”。

看多示例:
“这家公司的品牌护城河和持续增长能力让我想起我们在1988年收购可口可乐时的信心。当时的可口可乐也是通过品牌溢价和市场垄断稳步扩张。”
看空示例:
“不断增加的负债率让我想起早年伯克希尔投资纺织业务时的困境,财务压力过大最终导致我们退出该行业。”

—————————————-User Prompt—————————————–
请基于以下数据分析《XXXX》的投资机会,并像巴菲特一样做出判断:

【财务数据】

  • 所有者收益 - owner_earnings(净利润net_income + 折旧depreciation - 维持性CAPEX maintenance_capex)
  • 估值指标:当前PE pe_ratio vs 行业平均 industry_pe | PB pb_ratio vs 历史中位数 historical_pb
  • 质量指标:ROE roe | 负债率 debt_ratio | 自由现金流 fcf

【非财务指标】

  • 护城河类型: moat_type(品牌/成本/网络效应)
  • 管理层评分: mgmt_score(基于股票回购/分红记录)

【分析要求】

  1. 必须计算安全边际:$$\frac{内在价值 - 当前市值}{当前市值}$$
  2. 对比伯克希尔历史投资案例(如:”当前指标类似1988年可口可乐的对比指标”)
  3. 用巴菲特口语化表达(例:”就像我们当年发现GEICO那样…”)
    例如:公司就像一座稳固的城堡,有护城河环绕,内部又井然有序。”
    “我更喜欢购买优秀企业的部分股权,而不是差企业的全部股权。”
    “宁愿以合理的价格买好公司,而不是以便宜的价格买差公司。”

以上步骤的分析中需要使用的舆情信息,公司情况和财务信息如下:
XXXX

请按以下JSON格式回复:
  “signal”: “bullish(看多)” | “bearish(看空)” | “neutral(中性)”,
  “confidence”: 0-100之间的置信度,
  “reasoning”: “详细分析(需包含具体数据和巴菲特原则引用)”

建议将置信度分为三档:高(>80)、中(50-80)、低(<50),并在分析中指出信心来源。

/no_think

—————————————–Technicals——————————————
——————————————–System Prompt———————————-

一、系统角色
作为机构级量化交易智能体,需执行以下核心功能:

  1. 并行运行五大交易策略(趋势跟踪/均值回归/动量分析/波动率分析/统计套利)
  2. 动态调整策略权重并生成合并信号
  3. 实施三级风控检查(数据完整性/策略逻辑/极端行情)
  4. 输出标准化JSON报告

二、策略配置与动态规则

  1. 趋势跟踪策略
    基础指标:EMA(8,21,55)+ADX(14)
    权重调整:
      - ADX>30且+DI>-DI时权重提升至35%
      - ATR/SMA>0.1时切换至EMA(21,55,144)

  2. 均值回归策略
    基础指标:Z-score+布林带(20,2)+RSI(14,28)
    触发限制:
      - |Z-score|>2时暂停策略
      - 波动率<25分位数时权重提升至25%

  3. 动量分析策略
    基础指标:1/3/6月收益率+成交量
    生效条件:
      - 成交量>max(20日均值×1.2, 30日均值×0.8)
      - 动量得分>0.05

  4. 波动率策略
    基础指标:历史波动率(21)+ATR(14)
    特殊处理:
      - VIX>40时权重降至10%
      - 启用GARCH波动聚集检测

  5. 统计套利策略
    基础指标:Hurst指数+偏度/峰度
    生效条件:
      - Hurst<0.4且偏度>1.5
      - 成交量>30日均值80%

三、分析流程

  1. 数据预处理
    缺失值>15%时使用SMA插值
    异常值处理:Winsorize(±3σ)
    流动性过滤:剔除成交量<30日均值50%的标的

  2. 动态决策引擎
    权重计算:基础权重 × 市场状态系数
      - 趋势市(ADX>25且5日收益>7%):×1.6
      - 危机市(VIX>40或单日波幅>7%):×0.5

  3. 风险控制模块
    止损逻辑:min(entry_price ± 2.5*ATR, 关键位±1%, 近3日极值×0.97/1.03)
    仓位公式:min(置信度×0.9, 1.5/ATR比率)
    熔断机制:单日亏损>5%时暂停交易24小时

四、输出JSON规范和示例
{
“symbol”: “标的代码”,
“timestamp”: “ISO8601时间戳”,
“primary_signal”: {
“direction”: “bullish/neutral/bearish”,
“confidence”: 0-100,
“trend_strength”: “weak/medium/strong”
},
“strategy_breakdown”: [
{
“name”: “趋势跟踪”,
“signal”: “bullish”,
“confidence”: 85,
“metrics”: {“ema8”:182.3, “adx”:32.1}
},
// 其他策略…
],
“risk_parameters”: {
“stop_loss”: 178.60,
“take_profit”: 195.40,
“position_size”: 0.75,
“max_drawdown”: “4.2%”
},
“data_quality”: {
“completeness”: 92.5,
“outliers”: 3.1
},
“next_review”: “下次分析时间”
}

总结指标得到结果如下…….

五、特殊场景处理

  1. 数据异常
    关键指标缺失>20%时启用简化模型
    交易所故障时使用最后有效报价+5%流动性溢价

  2. 策略冲突
    分歧度>40%时:
      - 优先执行置信度>80的策略
      - 其余策略转监控状态
      - 触发人工复核

  3. 黑天鹅事件
    自动切换至危机组合:
      - 现金比例≥70%
      - 暂停统计套利
      - 止损收紧至1.5*ATR

六、合规性约束

1.所有分析必须通过:
数据完整度检查(>85%)
策略逻辑一致性验证
波动率异常检测

  1. 输出必须包含:
    明确的置信度标注
    风险参数计算依据
    下次评估时间戳

—————————————User Prompt—————————————–
请对《XXXX》执行多策略分析,使用最近90天的价格与相关数据,当前市场波动《XXXX》。请返回标准化 JSON 格式,包括方向判断、置信度、五类策略明细、风控参数和下次评估时间。关于《XXXX》股票的相关数据如下,请做出技术分析:
XXXX
根据技术分析,给出总结报告。

项目地址:
https://github.com/zhuang-weiming/browser_use
https://github.com/browser-use/browser-use

​项目目标​​:
Browser-use 是一个开源工具,旨在通过AI代理(如LangChain等)自动化控制浏览器操作,使网站能够被AI直接访问和交互。其核心目标是简化AI与浏览器的连接,支持复杂任务的自动化执行(如购物、求职、文档处理等),同时提升网页DOM元素提取的准确性和效率。

​核心功能​​:

  1. ​浏览器自动化​​:通过Playwright实现网页操作(点击、输入、导航等)。
  2. ​多模型支持​​:兼容OpenAI、Gemini、DeepSeek等大模型,动态生成操作指令。
  3. ​低代码集成​​:提供Python库和Gradio UI示例,快速部署AI代理。
  4. ​任务示例​​:包括价格对比、简历投递、数据爬取(如Hugging Face模型筛选)等实际场景。

​未来展望​​:

  • ​技术增强​​:优化AI记忆(RAG)、规划能力及DOM状态处理,减少Token消耗。
  • ​用户体验​​:支持人工干预、提升GIF录制质量,扩展教程和行业用例(如QA测试、社交媒体管理)。
  • ​生态合作​​:组建委员会探索AI友好的UI/UX设计标准,推动软件适配“Agent时代”。
  • ​社区与商业化​​:鼓励贡献(提供免费周边),计划推出云托管服务,降低使用门槛。

​应用场景​​:
覆盖电商、招聘、数据整理等领域,最终实现“用自然语言指挥浏览器完成复杂任务”的愿景。
Demo 1 - Compare the price of gpt-4o and DeepSeek-V3

Demo 2 prompt - Compare the price of iPhone 15 Pro Max and Samsung Galaxy S23 Ultra.

随着Cloud云计算与AI编码辅助工具(如Copilot、Cursor)的广泛普及,大型企业IT部门传统的开发模式正快速转型。大量重复性工作实现自动化,工程师的工作重心逐渐向更高价值的业务交付、风险控制和创新转移。这就促使我们对超大型企业IT团队的绩效管理方法进行全新的审视与重构。
在新的绩效体系中,我们刻意削减传统的量化指标(如代码行数、任务数量),取而代之的是更能体现业务影响力和技术稳健性的指标。指标覆盖了业务价值(驱动业务增长)、风险管理(确保系统稳定与合规)、协作传播(提升团队知识协作效能)和效率创新(推动长期竞争力提升)。

超大型IT团队绩效指标体系(Cloud+AI era)

总权重分配原则:业务价值(35%) > 质量与风险(30%) > 协作与知识(20%) > 效率与创新(15%)

1. 业务价值贡献(35%)

指标名称 定义与解释 权重 数据获取方式
业务需求交付率 年度关键业务需求(如跨境支付系统升级)按时交付的百分比 15% Jira任务完成统计、PMO项目管理报告、代码行数
客户满意度(NPS) 内部/外部客户对IT服务的净推荐值(如API响应速度、系统易用性) 5% 定期用户满意度调查、SurveyMonkey报告
云成本优化率 通过云资源调度(如Spot实例、自动伸缩)节省的年度成本比例(例:降低15%) 5% 云平台计费报告(如AWS Cost Explorer)
AI工具业务渗透率 AI生成代码在核心业务系统(如风控模型)中的占比及有效性验证 5% GitHub Copilot Insights、Git Commit分析
交易系统延迟优化 高频交易系统延迟降低百分比(如从5ms降至3ms) 5% 实时监控工具(如Prometheus、Grafana、Amazon CloudWatch、GCP Monitoring、Azure OpenTelemetry)

2. 质量与风险管理(30%)

指标名称 定义与解释 权重 数据获取方式
系统可用率(SLA) 核心系统年度可用性达标率(如99.99%) 8% Prometheus/Grafana监控报表
MTTR - Time to Restore Service 平均故障修复时间 生产环境故障从发生到恢复的平均时间(例:≤30分钟) 7% Incident管理平台(如ServiceNow)报告
安全漏洞修复时效 高危漏洞从发现到修复的平均时间(如72小时内) 6% 漏洞扫描报告(如SonarQube、Qualys、Nessus)、Jira安全任务统计
合规审计通过率 通过监管审计(如SOX、GDPR)的条款覆盖率 5% 内外审计报告(Compliance部门)
技术债务清理率 年度清理技术债务(如遗留代码重构)的模块占比 4% SonarQube技术债务报告

3. 协作与知识传播(20%)

指标名称 定义与解释 权重 数据获取方式
跨团队协作贡献度 解决跨地域/部门协作问题的次数(如协调纽约与伦敦团队完成数据同步方案) 6% Jira跨团队任务数量、Confluence协作文档
知识文档复用率 Confluence文档被其他项目引用的次数(如架构设计被10+项目参考) 5% Confluence使用分析报告、Page浏览量
内部培训覆盖率 年度组织技术培训覆盖的团队成员比例(如80%参与云安全培训) 4% HR/培训部门记录(如Learning Management System)
开源社区贡献 团队向金融科技开源项目(如Apache Fineract)提交的PR/Issue数量 3% GitHub/GitLab开源项目贡献统计
新人导师效能 指导的新成员独立交付任务的周期缩短比例(如从3个月降至1.5个月) 2% 新人培训与交付统计报告(Mentorship计划跟踪)

4. 效率与创新(15%)

指标名称 定义与解释 权重 数据获取方式
CI/CD流水线成功率 代码从提交到部署的成功率(如从90%提升至98%) 4% Jenkins/GitLab CI/CD流水线报告
AI工具采纳效率 Copilot等工具节省的开发时间占比(如每日节省2小时) 3% GitHub Copilot Analytics、IDE插件使用日志
自动化测试覆盖率 单元/集成测试覆盖的代码行数比例(如从70%提升至85%) 3% SonarQube/Jacoco测试覆盖率报告
创新提案落地数 年度被采纳的技术创新方案(如区块链用于贸易金融) 3% 创新提案跟踪平台(Innovation Portal)
专利/白皮书发布 团队申请的金融科技专利数量或行业白皮书参与度 2% 法务部门专利申请记录、行业组织发布报告
在实施过程中,需关注以下几个关键挑战:
数据质量问题:定期审查和校验数据的准确性,避免因数据偏差导致绩效不公平。
AI生成代码风险管理:建立专门的审查流程,防止AI生成代码带来的安全和合规风险。
团队文化适应性:提前沟通,让团队充分理解新绩效考核方式的价值,避免出现阻力和误解。

reference link : https://dora.dev/capabilities/

使用 DORA 指标,向管理层展示交付流程的整体效率和稳定性。

一、战略层(DORA Metrics)

指标 描述 目标值
部署频率(Deployment Frequency) 每月部署到生产环境的次数 ≥ 每周一次
变更前置时间(Lead Time for Changes) 从代码提交到生产环境部署的平均时间 ≤ 1周
变更失败率(Change Failure Rate) 生产环境变更导致事故的比例 ≤ 5%
平均恢复时间(Mean Time to Restore,MTTR) 故障发生到修复完成的平均时长 ≤ 2小时

二、执行层(精细化指标体系)

(一)研发阶段(Development)

指标 描述 目标值
单元测试覆盖率 单元测试代码覆盖率 ≥80%
代码审查一次通过率 首次通过代码审查比例 ≥85%
技术债务 SonarQube技术债务评分 ≤ 技术债务比例15%
敏捷迭代按时交付率 Sprint内任务完成率 ≥90%

(二)部署阶段(Deployment)

指标 描述 目标值
首次上线成功率 一次性成功部署比例 ≥95%
部署自动化覆盖率 CI/CD管道自动化程度 ≥90%
平均部署周期 提交到上线部署的周期 ≤2天

(三)运维阶段(Operation)

指标 描述 目标值
系统可用率 系统正常运行的比例 ≥99.95%
平均故障间隔(MTBF) 系统两次事故之间的平均时间 ≥30天
自动化监控覆盖率 关键系统自动监控覆盖程度 ≥95%
服务响应延迟 应用的99%响应延迟 ≤500ms

(四)事故管理(Incident Management)

指标 描述 目标值
事故响应时间 事故发生到首次响应的平均时间 ≤15分钟
事故关闭时间(MTTR) 从事故发生到关闭的平均时间 ≤2小时
一级事故数量 严重事故(P1级)发生次数 每月≤2次
RCA完成率 重大事故根因分析完成比例 100%

(五)变更管理(Change Management)

指标 描述 目标值
变更回退率 需要回滚的变更比例 ≤5%
紧急变更比例 紧急变更占全部变更的比例 ≤10%
变更审批效率 变更申请到审批完成时间 ≤1个工作日

(六)系统淘汰管理(Demise & Decommission)

指标 描述 目标值
系统及时退役率 按计划淘汰系统的及时率 100%
淘汰成本控制 实际退役成本与计划的差异比例 ≤10%

三、实施与治理模式

0. CIO 应该参加critical级别的incident现场解决会议

1. 报告与回顾机制

  • 每季度向战略层汇报DORA指标,审视整体战略目标达成情况。
  • 每月运营回顾精细化指标,针对执行偏差提出整改。
  • 每周团队自查具体指标,持续改进。

2. 技术支撑平台

  • DevOps平台自动收集开发、测试、部署数据。
  • ITSM(如ServiceNow)跟踪事故、变更数据。
  • APM(如Prometheus/Grafana)实时监控运维指标。
  • 数据可视化平台(如Power BI)集中展现指标。

3. 组织与激励

  • 指标与团队绩效激励直接关联,优秀团队给予奖励。
  • 存在明显问题的团队,组织针对性改进辅导。

四、预期效果

  • 保持开发与运维的效率、稳定性双平衡。
  • 确保监管合规性,同时保证技术与业务的快速响应能力。
  • 促进组织持续改善,实现稳定高效的整体技术管理水平。

https://dora.dev/capabilities/

结论总结:

模型名称 SFTTrainer - Supervised Fine-Tuning Trainer - 监督式微调训练器 DPOTrainer - Direct Preference Optimization Trainer - 直接偏好优化训练器 GRPOTrainer - Generative Reward Policy Optimization Trainer - 生成式奖励策略优化训练器
训练目标 模仿训练数据 对齐人类偏好 最大化奖励函数
数据需求 输入-输出数据对。数据形式是 “指令 -> 期望输出” 的对应关系 偏好数据。”指令 -> (偏好输出, 非偏好输出)” 的成对比较 奖励信号。数据形式是一个数值奖励,用于评价模型在环境中的行为
核心算法 监督学习 (交叉熵损失) 直接偏好优化 (DPO 损失) 强化学习 (PPO 算法)
优势 简单易用, 高效, 适用多种任务 更符合人类偏好, 避免奖励函数设计难题, 训练稳定, 对奖励函数偏差更鲁棒 直接优化目标指标, 可学习复杂策略, 适用于与环境交互任务, 精细行为控制
劣势 可能放大数据偏差, 难处理复杂偏好, 可能过拟合 需要偏好数据, 对偏好数据质量敏感, 可能牺牲部分生成能力 训练复杂不稳定, 奖励函数设计困难, 计算成本高, 可能奖励函数偏移
复杂度
应用场景示例 - 内容生成: 自动生成产品描述、新闻稿、社交媒体文案等。
- 指令跟随: 简单的问答系统、文档摘要、代码生成等。
- 数据增强: 生成特定格式或风格的合成数据,例如特定风格的文本或代码。
- 对话系统: 训练客服机器人、聊天机器人,使其回复更礼貌、更人性化、更符合用户期望。
- 内容审核: 训练模型判断文本是否安全、无害、符合道德标准。
- 偏好排序: 训练模型根据用户偏好对多个选项进行排序或选择 (例如,排序新闻摘要、推荐商品)。
- 游戏 AI: 训练游戏 Bot,在游戏中获得高分或战胜对手。
- 交易策略: 训练交易机器人,使其在股票市场或加密货币市场中最大化收益。
- 机器人控制: 训练机器人完成复杂任务,例如导航、物体抓取等,最大化任务完成效率或成功率。
- 复杂对话策略: 训练对话系统进行多轮对话,最终达成用户目标 (例如,预定餐厅、解决复杂问题)。

1. 输入-输出数据对 (Input-Output Data Pairs) - SFTTrainer 使用

这种数据形式是最直接的,用于监督式微调 (SFTTrainer)。 每个数据样本都包含一个 输入 (Input) 和一个期望的 输出 (Output)。

应用场景例子:指令跟随 (Instruction Following) - 简单的问答任务
示例:

  • 问答系统: “问题 -> 答案”
  • 翻译任务: “原文 -> 译文”
  • 摘要生成: “文章 -> 摘要”
  • 样例数据格式 (JSON 格式示例):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[
{
"instruction": "法国的首都是哪里?",
"output": "法国的首都是巴黎。"
},
{
"instruction": "请写一个关于夏天的简短故事。",
"output": "阳光洒在金色的沙滩上,海风轻轻吹拂,孩子们在海边嬉戏,冰淇淋融化在甜甜的笑容里,夏天真美好。"
},
{
"instruction": "将这句话翻译成英文:你好世界。",
"output": "Hello world."
}
// ... 更多数据样本
]

解释:

  • “instruction” (输入): 代表用户给模型的指令或问题。
  • “output” (输出): 代表模型应该生成的期望回复或答案。
  • 数据目标: SFTTrainer 的目标是让模型学习将 “instruction” 映射到 “output”,模仿训练数据中的这种对应关系。

应用场景例子:内容生成 (Content Generation) - 生成产品描述

  • 样例数据格式 (JSON 格式示例):
1
2
3
4
5
6
7
8
9
10
11
[
{
"input": {
"product_name": "智能咖啡机",
"features": ["一键操作", "多种咖啡模式", "可预约", "自动清洗"],
"materials": ["不锈钢", "耐热玻璃"]
},
"output": "这款智能咖啡机让您在家也能轻松享受咖啡馆级的美味。一键操作,多种咖啡模式随心选择,更有预约功能,让您早晨醒来就能品尝到香浓咖啡。采用不锈钢和耐热玻璃材质,坚固耐用,并具备自动清洗功能,省心省力。"
},
// ... 更多数据样本
]

解释:

  • “input” (输入): 可以是更结构化的信息,例如产品的特征、材质等。
  • “output” (输出): 是基于输入信息生成的期望产品描述文本。

2. 偏好数据 (Pairwise Ranking) - DPOTrainer 使用

这种数据形式用于直接偏好优化 (DPOTrainer)。 对于同一个输入,我们提供两个模型生成的输出,并标注哪个输出更符合偏好。

应用场景例子:对话系统 (Chatbot) - 提升回复质量和偏好

  • 样例数据格式 (JSON 格式示例):
1
2
3
4
5
6
7
8
9
10
11
12
13
[
{
"instruction": "今天天气怎么样?",
"chosen": "今天天气晴朗,阳光明媚,非常适合户外活动。",
"rejected": "天气还行。"
},
{
"instruction": "请问你能推荐一家附近的意大利餐厅吗?",
"chosen": "当然,附近有一家评价很高的意大利餐厅,名叫“托斯卡纳阳光”,他们家的披萨和意面非常受欢迎,地址是… [地址信息] …,您要我帮您查询一下电话或者预定吗?",
"rejected": "我推荐一家意大利餐厅。"
},
// ... 更多数据样本
]
  • 解释:
    • “instruction” (输入): 用户的问题或指令。
    • “chosen” (偏好输出): 被认为更好或更符合偏好的回复。例如,更详细、更礼貌、更乐于助人的回复。
    • “rejected” (非偏好输出): 被认为相对较差或不太符合偏好的回复。例如,更简短、更生硬、信息量较少的回复。
    • 数据目标: DPOTrainer 学习到,对于相同的 “instruction”,模型应该倾向于生成类似 “chosen” 这样的回复,而不是 “rejected” 这样的回复。偏好可以是基于礼貌程度、信息量、是否乐于助人、是否符合特定价值观等等。

3. 奖励信号 (Reward Signal) - GRPOTrainer 使用

奖励信号是一个数值,用于评价模型在特定环境或任务中生成的输出质量。 GRPOTrainer 使用强化学习方法,目标是最大化模型获得的累积奖励。

应用场景例子:游戏 AI (Game AI) - 训练游戏 Bot 下围棋

  • 奖励函数示例 (Python 伪代码):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def reward_function(game_state, action):
"""
定义围棋游戏中的奖励函数.

Args:
game_state: 当前的棋局状态.
action: 模型采取的落子动作.

Returns:
reward: 一个数值奖励信号.
"""

if is_illegal_move(game_state, action): # 落子是否为非法
reward = -10 # 非法落子,负奖励,惩罚模型
elif is_capture_opponent_piece(game_state, action): # 是否吃掉对方棋子
reward = +5 # 吃掉对方棋子,正奖励
elif is_win(game_state): # 是否赢得游戏
reward = +100 # 赢得游戏,巨大正奖励
elif is_lose(game_state): # 是否输掉游戏
reward = -50 # 输掉游戏,负奖励
else:
reward = -0.1 # 常规落子,轻微负奖励 (鼓励尽快结束游戏,避免无意义的步骤 - 可根据实际情况调整)

return reward
  • 解释:
    • 奖励函数: reward_function 就是一个奖励函数,它根据当前的游戏状态和模型采取的动作,计算出一个数值奖励。
    • 奖励信号: 每次模型在游戏中执行一个动作后,环境 (围棋游戏) 会根据 reward_function 计算出一个奖励值,并将这个奖励值反馈给模型。
    • 数据目标: GRPOTrainer 通过不断尝试不同的动作,并根据获得的奖励信号学习,目标是找到一个策略 (即模型的参数),使得在围棋游戏中能够获得尽可能高的累积奖励 (例如,最终赢得游戏)。