prompthero官网,prompt生成器
终极管理员 知识笔记 561阅读
小华有23个苹果。他们午餐用了20个苹果,又买了6个。那么有多少苹果机型输出的例子很好的激发了大机型的潜力呢?对于提示技巧是否无能为力的问题,答案是肯定的,对部分实时模型训练过程中缺乏的一些语料库知识没有帮助。什么是prompt
p>网页搜索结果:{web_results}当前日期:{current_date}指令: 用给定的网络搜索结果总结回复用户query用户Query: {query}回复语言: {reply_language}
私有化知识库嵌入式向量检索LLM

▐ ReAct框架
大模型Agent功能大模型会自己分析问题选择合适的工具最终解决问题。

ReAct方式的作用就是协调LLM模型和外部的信息获取与其他功能交互。如果说LLM模型是大脑那ReAct框架就是这个大脑的手脚和五官。
关键概念描述Thought由LLM模型生成是LLM产生行为和依据ActAct是指LLM判断本次需要执行的具体行为ObsLLM框架对于外界输入的获取。尽可能回答以下问题可以使用工具{工具名和描述}使用以下格式回答问题你必须回答的问题思考你应该一致保持思考思考要怎么解决问题动作{工具名}。每次动作只选择一个工具工具列表{工具名和描述}输入{调用工具时需要传入的参数}观察{第三方工具返回的结果}【思考-动作-输入-观察】循环N次思考最后输出最终结果最终结果针对原始问题输出最终结果
开始问题上海最高楼是多少它楼层高度的平方是多少思考我需要知道上海最高楼然后进行计算。动作搜索API观察632米思考我需要计算上海最高楼高度的平方然后得到结果。动作计算器输入632^2观察399424思考最终结果上海最高楼632米它的高度平方是399424
大模型SFTsupervised fine tuning
▐ 预训练 VS 微调预训练模型以一种无监督的方式去训练学习根据前文生成下一个单词。在海量数据下进行让大模型具备语言理解和生成能力。
指令微调有监督的方式进行学习包括任务描述输入等去预测答案。目标是如何跟人类指令对齐让模型更加适应专业化领域场景
业务数据从哪来
人工标注
种子数据 self-instructgpt 3.5构造
▐ P-tuning
动机Fine-tuning需要微调整个预训练语言模型且额外添加了新的参数而Prompting则可以将整个预训练语言模型的参数保持固定而只需要添加prompt来预测结果即可
P-tuning将Prompt转换为可以学习的Embedding层并用MLPLSTM的方式来对Prompt Embedding进行一层处理。
P-tuning V2每一层都加入可训练的prompts只对Prompt部分的参数进行训练而语言模型的参数固定不变。
▐ LoRA
Low-rank Adaption of LLM利用低秩适配low-rank adaptation的方法可以在使用大模型适配下游任务时只需要训练少量的参数即可达到一个很好的效果。在计算资源受限的情况下的弥补方案。
对于不同的下游任务只需要在预训练模型基础上重新训练AB就可以了这样也能加快大模型的训练节奏。
▐ LoRA VS 全参数微调lora的优点在于轻量化低资源。但缺点很明显参与训练的模型参数量不多在百万到千万级别的参数量实验来看效果比全量微调差一些。
▐ C-Eval评估C-Eval由上海交通大学清华大学爱丁堡大学共同完成是构造了一个覆盖人文社科理工其他专业四个大方向52 个学科微积分线代 …从中学到大学研究生以及职业考试一共 13948 道题目的中文知识和推理型测试集。
C-Eval认为一个模型要强首先需要广泛的知识然后在知识的基础上做推理这样才能代表一个模型可以做复杂且困难的事情。
此外还有一些公开评测集用于评估模型在学科综合、语言能力、推理能力等。
手机天猫AI导购助理项目落地应用
▐ 项目背景“AI形象”作为个人专属导购员在交互式对话中进行用户理解、导购商品。
定位交互式搜索导购产品
▐ 算法框架 ▐ 语料收集
电商种子问题收集端内会话日志、小红书sug收集电商领域种子问题
问题泛化明确场景问题定义通过手猫核心query、种子问题等设计prompt通过gpt补充收集问题
人工标注: 标注高质量语料
self-instruction通过prompt(few-shot)方法根据已有人工标注扩充新的instruction。通过gpt获取更多训练语料解决标注人效瓶颈。
▐ 模型训练base模型选型
中文评测
数学评测
训练平台AOP//PAI
基于达摩院模型基座qwen-14B针对产品新增电商领域的训练数据增强模型的电商领域知识、安全、导购等能力。
params--stage sft \--model_name_or_path /data/oss_bucket_0/Qwen_14B_Chat_ms_v100/ \--do_train \--dataset_dir data \--dataset xuanji \--template chatml \--finetuning_type full \--output_dir file_path \--overwrite_cache \--per_device_train_batch_size 2 \--gradient_accumulation_steps 4 \--lr_scheduler_type cosine \--logging_steps 5 \--save_strategy epoch \--save_steps 10000 \--learning_rate 2e-6 \--num_train_epochs 3.0 \--warmup_ratio 0.15 \--warmup_steps 0 \--weight_decay 0.1 \--fp16 ${fp16} \--bf16 ${bf16} \--deepspeed ds_config.json \--max_source_length 4096 \--max_target_length 4096 \--use_fast_tokenizer False \--is_shuffle True \--val_size 0.0 \
pai -name pytorch112z-project algo_platform_dev-Dscript${job_path} -DentryFile-m torch.distributed.launch --nnodes${workerCount} --nproc_per_node${node} ${entry_file}-DuserDefinedParameters\${params}\-DworkerCount${workerCount}-Dcluster${resource_param_config}-Dbuckets${oss_info}${end_point}
训练中间过程
▐ 模型部署&调用 达摩院千问模型基于allspark做量化加速部署在dashscope平台机器为双卡A10。
# For prerequisites running the following sampleimport dashscopefrom dashscope import Generationfrom http import HTTPStatusdashscope.api_key your-dashscope-api-keyresponse_generator Generation.call( modelmodel_name, promptbuild_prompt([ {role:system,content:content_info}, {role:user, content:query} ]), streamTrue, use_raw_promptTrue, seedrandom_num)for resp in response_generator: # when stream, you need to get the result through iteration if resp.status_code HTTPStatus.OK: print(resp.output) else: print(Failed request_id: %s, status_code: %s, \ code: %s, message:%s % (resp.request_id, resp.status_code, resp.code, resp.message))# Result: # {text: 汝亦来, finish_reason: null}# {text: 汝亦来哉幸会。\n\n汝可, finish_reason: null}# {text: 汝亦来哉幸会。\n\n汝可唤我一声「, finish_reason: null}# {text: 汝亦来哉幸会。\n\n汝可唤我一声「」不知可否, finish_reason: null}# {text: 汝亦来哉幸会。\n\n汝可唤我一声「」不知可否, finish_reason: stop}
Whale私有化 部署发布
模型管理
from whale import TextGenerationimport json# 设置apiKey# 预发或线上请勿指定base_urlTextGeneration.set_api_key(api_key, base_urlapi_url)# 设置模型生成结果过程中的参数config {pad_token_id: 0, bos_token_id: 1, eos_token_id: 2, user_token_id: 0, assistant_token_id: 0, max_new_tokens: 2048, temperature: 0.95, top_k: 5, top_p: 0.7, repetition_penalty: 1.1, do_sample: False, transformers_version: 4.29.2}prompt [ { role: user, content: content_info }]# 请求模型response TextGeneration.call( modelmodel_name, promptjson.dumps(prompt), timeout120, streamingTrue, generate_configconfig)# 处理流式结果for event in response: if event.status_code 200: print(event.finished) if event.finished is False: print(event.output[response], end) else: print(error_code: [%d], error_message: [%s] % (event.status_code, event.status_message))
EAS
借助EAS将代码和模型文件分离进行LLM服务部署基于http协议提供流式输出。模型存储在oss上。
▐ 模型评测基础能力评测在公开评测集上评估模型中英文、推理、知识问答能力表现。
业务评测以业务人工评测为主每个大模型任务150个评测问题。
体验问题埋点日志获取定期review。
参考链接
1.
2.
3.
4.
5.
6.
7.
8.
9.
团队介绍
我们是淘天集团下FC技术部智能策略团队主要负责手机天猫的推荐和广告算法的研发与优化工作为用户提供更精准的推荐服务提高用户体验和满意度。此外团队还致力于AI技术的创新应用如智能导购等领域并积极探索创新性的业务实践。
¤ 拓展阅读 ¤
3DXR技术 | 终端技术 | 音视频技术
服务端技术 | 技术质量 | 数据算法