web thinker 学习

1、下载web thinker程序

2、学习resoning论文

推理和演绎,目前的都是推理,没有演绎

inductive reasoning benchmarks

evaluation metric

评估指标

3、test-time

偏好对其

特定分布数据下面,满足人类偏好,。

文本梯度,test-time preference optimizaiton(TPO):

文本梯度

123

文本梯度是一种通过自然语言反馈优化大模型系统的新方法。它利用大型语言模型(LLMs)提供的文本反馈,反向传播到各个组件中,从而实现系统的自我优化12

核心概念

文本梯度的核心思想是将LLMs的反馈视为梯度,用于指导系统的优化过程。具体来说,LLMs提供的自然语言反馈描述了如何修改变量,以改进系统的性能。这种方法类似于传统的自动微分,但使用的是自然语言而非数值梯度13

主要组件

  • 变量:计算图中的节点,包含非结构化数据(如文本)。

  • 函数:变量转换(如LLM调用、模拟器)。

  • 梯度:LLM提供的自然语言反馈,描述如何修改变量。

  • 文本梯度下降(TGD):一种优化器,基于当前值和文本梯度更新变量12

应用示例

文本梯度在多个领域展示了其通用性和有效性。例如:

  • 代码优化:通过优化代码片段,提高处理难题的能力。

  • 问题解决:通过优化问题解决方案,提高LLM解决复杂任务的能力。

  • 推理能力:通过优化提示,提高大模型推理能力。

  • 化学结构设计:在药物研发中优化化学结构设计。

  • 治疗计划:优化治疗计划,改进患者的治疗效果12

实现示例

以下是使用TextGrad进行解决方案优化的示例代码:

import TextGrad as tg

from TextGrad.tasks import load_task

import numpy as np

import random

def set_seed(seed):

np.random.seed(seed)

random.seed(seed)

def eval_sample(item, eval_fn, model):

x, y = item

x = tg.Variable(x, requires_grad=False, role_description="查询语言模型")

y = tg.Variable(y, requires_grad=False, role_description="查询的正确答案")

response = model(x)

eval_output_variable = eval_fn(inputs=dict(prediction=response, ground_truth_answer=y))

return int(eval_output_variable.value)

def eval_dataset(test_set, eval_fn, model, max_samples=None):

if max_samples is None:

max_samples = len(test_set)

accuracy_list = []

for sample in test_set[:max_samples]:

acc_item = eval_sample(sample, eval_fn, model)

accuracy_list.append(acc_item)

return accuracy_list

set_seed(12)

llm_api_eval = tg.get_engine(engine_name="gpt-4o")

llm_api_test = tg.get_engine(engine_name="gpt-3.5-turbo-0125")

tg.set_backward_engine(llm_api_eval, override=True)

train_set, val_set, test_set, eval_fn = load_task("BBH_object_counting", evaluation_api=llm_api_eval)

system_prompt = tg.Variable(train_set.get_task_description(), requires_grad=True, role_description="系统提示语言模型")

model = tg.BlackboxLLM(llm_api_test, system_prompt)

optimizer = tg.TextualGradientDescent(engine=llm_api_eval, parameters=[system_prompt])

results = {"test_acc": [], "prompt": [], "validation_acc": []}

results["test_acc"].append(eval_dataset(test_set, eval_fn, model))

results["validation_acc"].append(eval_dataset(val_set, eval_fn, model))

results["prompt"].append(system_prompt.get_value())

for epoch in range(3):

for steps, (batch_x, batch_y) in enumerate(train_set):

optimizer.zero_grad()

losses = []

for (x, y) in zip(batch_x, batch_y):

x = tg.Variable(x, requires_grad=False, role_description="查询语言模型")

y = tg.Variable(y, requires_grad=False, role_description="查询的正确答案")

response = model(x)

eval_output_variable = eval_fn(inputs=dict(prediction=response, ground_truth_answer=y))

losses.append(eval_output_variable)

total_loss = tg.sum(losses)

total_loss.backward()

optimizer.step()

results["test_acc"].append(eval_dataset(test_set, eval_fn, model))

results["prompt"].append(system_prompt.get_value())

该代码展示了如何使用TextGrad库对语言模型的系统提示进行基于梯度的优化,从而提高在特定问答任务上的性能12

结论

文本梯度是一种通过自然语言反馈反向传播优化大模型系统的新范式。它结合了LLMs的表达能力和反向传播的效率,为AI系统的优化提供了一个通用框架13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值