跳到主要内容

通读笔记 — prompt-engineering-generative-ai

原书真结构(epub 拆乱,Chapter N. 头定位):

  • Ch1 = 04(Five Principles)
  • Ch2 = 05(Introduction to LLMs for Text Generation)
  • Ch3 = 06-23(Standard Practices for Text Generation with ChatGPT)
  • Ch4 = 24-36(Advanced Techniques with LangChain)
  • Ch5 = 37(Vector Databases FAISS/Pinecone)
  • Ch6 = 38-60(Autonomous Agents w/ Memory & Tools)
  • Ch7 = 61(Introduction to Diffusion Models / DALL-E)
  • Ch8 = 62(Midjourney 标准做法)
  • Ch9 = 63(Stable Diffusion 进阶)
  • Ch10 = 64(Building AI-Powered Applications)
  • 导航章:01/02/65/66/67 跳过不引

前言(03-fm-preface.txt)

  • L5:arXiv 论文指数增长;SD 史上增长最快开源项目之一;MJ Discord 数千万会员;ChatGPT 两个月 1 亿用户,史上最快消费应用。
  • L7:提示工程定义 = 提升可靠性/效率/准确性的一组最佳实践;李彦宏「十年后一半工作是提示工程」;作者判断:提示会像 Excel 一样是技能而非职位。非确定性;成本与延迟重新成为真问题;幻觉。
  • L9:作者自 2020 GPT-3 beta 起做这行;早期 trick 失效,沉淀出五条跨模型原则;Sam Altman:「不是往末尾加魔法词,而是想法的质量与对自己想要什么的理解」。
  • L60:示例默认 GPT-4,简及 Claude 3 / Llama 3 / Gemini;图像:MJ v6、SD 1.5(扩展兼容性)、SDXL。
  • L64:Ch4 用 LangChain;Ch5 FAISS(开源)+Pinecone(付费);Ch9 用 AUTOMATIC1111 SD Web UI。
  • L98:全书例子都会标注对应哪一条原则。

Ch1 五原则(04,62k chars)

  • L5:定义「prompt engineering is the process of discovering prompts that reliably yield useful or desired results」。
  • L7:prompt 定义;文本 LLM + 图像扩散模型通用。
  • L29-51:朴素提示(给鞋起名)五个毛病:Vague direction / Unformatted output / Missing examples / Limited evaluation / No task division → 一一映射五原则。
  • L53:LLM 不断预测下一个 token(约 3/4 个词),temperature 控制随机;图 1-1:AnyFit 后接 shoes 概率 0.88% vs Athletic 72.35%。
  • L57:模型读遍互联网再微调;「Average prompts will return average responses」;按 token 计费。
  • L59-86:改造后的提示(Steve Jobs 风格 + 逗号分隔格式 + 3 个例子)→ iFitFoot 等。
  • L92-110:五原则名与一句话定义:Give Direction / Specify Format / Provide Examples / Evaluate Quality / Divide Labor。
  • L112:2022-07 首发于博客「Prompt Engineering: From Words to Art and Copy」;一年后 OpenAI 官方指南与之高度重合;模型无关。
  • L114:作者有 Udemy 课(7 万+学员)——利益相关点。
  • L120-146:图像例子:stock photo + 底图 URL + 相机型号;朴素版偏黑暗幻想风——L144 解释:早期用户来自数字艺术圈,社区反馈(放大选择被用来训练)把模型偏置到幻想美学。
  • L148:原则要 future-proof;GPT-5/MJ v7 出来也应有用。
  • Give Direction(L150-311):角色扮演(Steve Jobs vs Elon Musk,L162-184:Musk 风格出 ShoeX/MarsFit/The Shoe Company);prewarming/internal retrieval(L186,Liu et al. 2021:先问建议再让它照自己建议做);插入外部专家规则(Brandwatch 5 条,L254);图像方向:换细节(篝火 L289)、画家名(Van Gogh L299);L309 方向太多会冲突,训练数据里没足够样本→取舍;L311 太少方向比太多更常见。
  • Specify Format(L313-372):AI 是「universal translators」(L315);JSON 便于解析+出错可触发重试(L353);YAML 也是流行选择;「You are a helpful assistant that only responds in JSON」系统消息;Llama 叫 grammars;图像格式:stock photo/油画/Minecraft(L359-368);格式与风格冲突时丢次要那个(L372);Direction vs Format 的区别(L372):format=输出类型,style=风格。
  • Provide Examples(L374-428):zero/one/few-shot 定义(L376);GPT-3 论文「Language Models are Few-Shot Learners」加一个例子准确率 10%→近 50%(L376);提示长度上限:MJ 约 6000 字符、ChatGPT 免费版约 32000 字符(L380);3-5 个例子之后可靠性升、创造力降(L382);例子全换动物名→输出只剩动物名(L384-407);Hsieh et al. 2023:direction 可能优于 examples,先试 direction(L409);图像侧例子=底图 img2img(L411);L426 版权警告。
  • Evaluate Quality(L430-809):blind prompting 定义(L432);evals 定义(L434);Vicuna-13B 用 GPT-4 评(L436);thumbs-up/down 最小评测环(代码 L468-717:两次提示各跑 5 遍存 CSV→打乱盲评→A 0.2 / B 0.6);L717:不到 10 次跑就能暴露偏差;L719:迭代能大幅缩短提示→降成本降延迟;程序化评测动机清单 L721-765(cost/latency/calls/performance/classification/reasoning/hallucinations/safety/refusals/adversarial/similarity BLEU/ROUGE/向量距离);L767:反馈数据可反哺微调,几千例子后微调胜过提示工程(图 1-13);Elo/Chatbot Arena(L771);图像评测=permutation prompting(L773-781:{stock photo, oil painting, illustration}×{four, eight}=6 提示);L803:模型数数不行但意图对;随机种子固定可复现(L809)。
  • Divide Labor(L811-975):任务分解(L815);自评:让模型给名字打分(L819-850);L850 关键机制:LLM 预测下一个 token,写的时候不知道整体好不好,但拿到完整输出后更容易判断好坏;「Let's think step by step」(L854);OpenAI 叫「giving the model time to think」;meta prompting 定义(L894, Zhou 2022「LLMs are human-level prompt engineers」);链式:名字→描述→图像提示→DALL-E/MJ(L894-963);L963:看图比凭空想象更容易形成意见;LangChain 串链(L969);progressive summarization;AI chaining;ReAct/BabyAGI/AgentGPT/AutoGen(L971);L973 上下文窗口军备竞赛:Claude 2 100k vs GPT-4 8192→128k,Gemini 1.5 1M;哈利波特一本约 18.5 万 token。
  • L975:提示跨模型 rarely 可比,但五原则稳定有效。

Ch2 大模型导论(05,27k)

  • L11:token 是基本单位,100 token≈75 词;BPE/WordPiece/SentencePiece;BPE 机制(apple→a,p,p,l,e→appl)。
  • L21:预训练+微调两阶段。
  • L25-45:向量/嵌入:词→多维数字,意思相近距离近(virtue/moral、walked/walking)。
  • L49-71:Transformer:每个词转向量,self-attention 让每个词看所有其他词(「casting votes」);BERT 编码器 vs GPT 解码器(图2-2)。
  • L75-95:argmax 概率生成,重复。
  • L103-109:「Attention Is All You Need」Google Brain;attention 让远词直接相关,不用穿过整个模型;Andrew Ng:早期 NLP 研究受美军事情报机构资助。
  • L113:GPT-4 估计 1.7 万亿参数=3 万块足球场大的 Excel;训练成本约 $63M;训练数据≈650 公里书架。
  • L117-125:GPU 热,NVIDIA H100 Tensor Core;Google TPU。
  • L129-135:GPT 史:GPT-2 先不敢发,后开源;GPT-3 起转闭源付费。
  • L139-157:微软 2019 投 $1B→$13B 换 49%;ChatGPT 为收人类反馈而生;RLHF 三步:演示数据→监督微调→比较数据+奖励模型+PPO;更 helpful/honest/safe。
  • L161:UBS:2023-01 ChatGPT 1 亿月活,史上最快。
  • L165-169:GPT-4 律师考试 298/400,90 百分位;MoE;2024-05-13 GPT-4o 文本+音频+视觉单网络。
  • L173-181:Google Bard 2023-03-21;Bard 幻觉 James Webb(图2-5);PaLM API;AWS Bedrock/Titan;2024-02 Bard→Gemini 1.5 接近 GPT-4。
  • L185-193:Meta Llama 1/2/3 开源;7B/8B/70B;双刃剑。
  • L197-199:量化+LoRA 让消费级硬件微调可行。
  • L203:Mistral 7B(7.3B 参数)sliding window attention,Apache 许可;Zephyr 7B;Mixtral 8x7b MoE≈GPT-3.5。
  • L209-213:Claude 2(2023-07-11)Constitutional AI(规则清单训练),100k 上下文;Opus 首个比肩 GPT-4;Haiku $0.25/百万 token(当时 GPT-3.5 一半)。
  • L217:GPT-4V 2023-09-23 多模态。
  • L221-260:OpenAI 主导;GPT-4 指令遵循明显更强(同一提示只有 GPT-4 全对格式)。
  • L266:数据隐私警告。

Ch3 文本生成标准做法(06-23)

  • 列表(06):朴素「Disney 角色」四个毛病(编号列表/带 commentary/长度不受控/带片名括号)→优化提示固定 5 个、bullet、只要名字、给例子→Woody/Buzz…;层级列表:关键词 hierarchical + incredibly detailed(L119-127);L131 警告:要 10 个标题可能只给 8 个,代码要校验;正则解析(Example 3-1/3-2)及其繁琐→JSON。
  • JSON(06 后段):「Only return valid JSON」「Never include backtick」「will be parsed with json.loads()」三条原则(L341-344);常见错误:三反引号包裹、夹带文字(L323-331)。
  • YAML(07):相比 JSON:不用转义、可读、支持注释;LLM 当控制流引擎(图3-1):用户查询按 schema 过滤 YAML,不匹配返回 "No Items";六个自定义异常做验证(L123-198)。
  • 其他格式(07 末):Mermaid 流程图。
  • Mock CSV(08):生成测试数据;「Explain It like I'm Five」(癌症摘要);万能翻译(简单→复杂→西语简单→回英文,意义有损但大意保留;资源少的语言效果差;代码同理:新语言/新包差);Ask for Context(MongoDB vs PostgreSQL:先要决策所需信息清单→给上下文→得到 PostgreSQL 推荐;图3-3;关键句「If you need more context, please specify…」;AutoGPT actor-critic 自评)。
  • Text Style Unbundling(08):提取语气/长度/词汇/结构→风格指南→仿写;实体提取;摘要(法律文本);上下文窗口超限时 chunk→分块摘要→合并摘要(图3-4);按受众定制摘要 A/B/C。
  • 分块(08 末-11):chunking 定义;好处(09:塞上下文、省钱、快、灵活);何时切何时不切(10);坏例子:按词切碎丢上下文;按句切;六种策略表(Table 3-1:句/段/主题/复杂度/长度/tokenizer);spaCy 句界检测;200 字符硬切的问题;好分块三性质(11-L199-205:保留整词整句、跨页句子、token 数合适);滑动窗口(window 5 step 1 vs window 4 step 2,重叠保上下文);tiktoken(BPE,cl100k_base/p50k_base/r50k_base 对应模型表)。
  • token 化(12):token 可含空格;OpenAI Tokenizer 工具;每条消息 +3 token、回复 +3 的计数规则;chat API 的 system/user/assistant 角色与 example_user/example_assistant few-shot 结构。
  • 情感分析(12-14):朴素提示得到「mixed tone」的毛病→三类例子+只许回一个单词→neutral;预处理(去特殊字符/小写/拼写);局限:讽刺反语、领域特定。
  • Least to Most(15-19):链式提示逐层细化;Flask Hello World:先架构→再单函数→再测试;好处(渐进探索/灵活/易懂/协作);挑战:依赖前序质量、上下文窗口遗忘。
  • Role prompting(19):技术评论员角色评 MongoDB;好处/挑战(刻板印象、角色漂移);放 system message。
  • 幻觉对策(20):reference text 三引号包裹+「找不到就答 I could not find an answer」;带引用格式 {"citation": …} 可自动校验。
  • Thinking time(21):先自己解再评判(苹果题);inner monologue(22):三引号藏推理,只给用户 Hint(52 张牌概率题,用户漏了两种顺序)。
  • 自评(23):生成 Hello World→再请求改进(类型提示+默认参数);可反复 critique 直到无改进。
  • 分类(23):zero/few-shot;Compliment/Complaint/Neutral;majority vote 三次取多数(降方差,代价是时间和钱);LLM 当评判:GPT-3.5 生成 concise/verbose,GPT-4 打分 1/0 全对;评判器本身要用假阳性/假阴性评测;LLM 评判比人便宜一个数量级、几分钟 vs 几天;能程序化就别调 LLM(如量长度)。
  • Meta prompting(23):提示生成提示;童书→图像提示;「Act as a GPT Prompt Engineer」生成风格指南;ChatGPT 联网读 URL 改进提示。

Ch4 LangChain 进阶(24-36)

  • 24:何时需要框架(整书摘要/多步组合/复杂推理);LangChain 两支柱:数据感知 + agency;六模块:Model I/O、Retrieval、Chains、Agents、Memory、Callbacks。
  • 25:消息类型 SystemMessage/HumanMessage/AIMessage;.invoke;streaming(chat.stream 逐块);.batch 并行 + max_concurrency;async(a 前缀);提示模板 vs f-string(校验/组合/选择器/存取);LCEL 管道符 |(像 Unix pipe,顺序敏感);Output Parsers 八种(list/datetime/enum/auto-fixing/Pydantic/retry/structured/XML);.get_format_instructions() 把格式说明注入提示;Pydantic 校验;chain = prompt | model | parser;LangSmith/Weights & Biases;evals:GPT-4 生成 ground truth→评 GPT-3.5/Mistral(mistral-small 77.5% 准确率);labeled_pairwise_string 两两比较(含 reasoning);Levenshtein 字符串距离 vs 嵌入距离;function calling:JSON schema 定义函数,模型决定调用并生成参数;tool_choice auto/none/指定;并行函数调用;LangChain 里 convert_to_openai_tool + bind_tools + PydanticToolsParser;create_extraction_chain_pydantic;query planning(Query 带 dependencies 列表→查询图)。
  • 26-28:few-shot 模板(FewShotChatMessagePromptTemplate);LengthBasedExampleSelector(按 token 数动态增减例子,max_length=1000);few-shot 局限:过拟合例子、token 上限取舍;提示存 JSON/YAML 文件。
  • 数据连接(28 后段):document loaders(PyPDF/Docx2txt/CSV)、transformers、嵌入模型、vector stores、retrievers;非结构化 vs 结构化数据;LlamaIndex/LlamaHub;text splitters:Character/Token/Recursive(默认 \n\n,\n,空格,"" 递归);chunk_overlap 例子(50 token/0 vs 48 overlap:3 块→6 块);《Principles of Marketing》497 页→776 文档。
  • 任务分解+提示链(28 末-30):电影公司例子(角色→情节→场景);itemgetter 提取字典键;RunnablePassthrough/RunnableLambda/RunnableParallel;master_chain 三层管道;场景循环生成+前场景摘要(buffer memory 雏形);顺序链慢,适合服务端;不同步骤用不同模型(贵的构思、便宜的生成)。
  • 31:LCEL 第一节必须是 runnable;32-36:文档链四种:Stuff(全塞)/Refine(循环迭代)/Map Reduce(映射+归并,可递归压缩)/Map Re-rank(带置信度选最高);Table 4-1 优缺点;load_summarize_chain(chain_type=...)。

Ch5 向量数据库 FAISS/Pinecone(37,73k)

  • L7:向量数据库 = 按相似度/语义查询;降幻觉;读文档/推荐/记对话。
  • L9-22:向量=数字列表≈坐标;ada-002 的 mouse=1536 个数;Cartoon/Hygiene 两参数比喻(mouse→mickey mouse↑Cartoon,→rat↓Hygiene);latent space 定义;千维难图示;k 最近邻:k=3 时 mouse→mickey/cheese/trap,rat 排第四;关系型数据库 substring 查不到 cheese/trap。
  • L42:gpt-4-1106 128k token 但每 token 比 gpt-3.5-turbo 贵 10 倍;只放最相关记录→RAG。
  • L44-79:RAG 定义;也可用传统搜索/浏览;Mike 的名字例子(3000 条消息前说的);RAG 四步:切块→入库→向量搜→塞进提示;嵌入模型决定搜索质量。
  • L83-131:嵌入=预训练模型给的向量;ada-002 1536 维;2D 分猫狗,300D 分品种;API 取嵌入;$0.0004/1k token,KJ 圣经 80 万词≈400 万 token≈$1.60;Sentence Transformers(all-MiniLM-L6-v2,384 维,小 BERT)。
  • L199-201:同文同向量;跨模型不可比;上下文 vs 静态嵌入(bank);稠密 vs 稀疏(10 万+ 维多为 0,关键词搜索);混合搜索兴起。
  • L203-207:嵌入模型偏见/知识截止(ada-002 到 2020-08);领域词(如 QAnon 暗语)要自训;word2vec/GloVe/Common Crawl/Gensim;玩具语料 word2vec cake→lie 0.234(种子挑出来的,去掉种子很少成功);语料要几千万词。
  • L298-379:TF-IDF(小文档更稳)+ 余弦相似度(→1 近,→0 远);cake-lie 0.89 vs cake-sing 0.01;嵌入什么:块太大→回归均值丢语义,太小→断句丢意思;「art is in chunking」。
  • L387-389:8192 token 预算分配(3000 给提示+回答,5 块×1000 token);朴素切会断句;RecursiveCharacterTextSplitter。
  • L466:分块策略权衡。
  • FAISS(L468-625):IndexFlatL2 暴力逐条 L2 距离;unicorn rides 查询命中福利段;search_and_chat 全链路(系统消息「只用上下文,不知道就说不知道」);write_index/read_index 持久化;merge 索引 reconstruct_n(ID 不保留);LangChain 版:FAISS.from_texts→as_retriever→{"context": retriever, "question": RunnablePassthrough()}|prompt|model|StrOutputParser();「What is the president」→I don't know。
  • Pinecone(L695-968):托管优点(维护/扩展/可靠/性能/支持/安全)vs 成本/超支/锁定/隐私;create_index(dimension=1536, metric="cosine", ServerlessSpec);upsert 批量+重试;query top_k include_metadata;元数据类型(字符串/数/布尔/字符串列表);filter={"batch": {"$eq": 1}};元数据策略=分块策略同级重要。
  • Self-Querying(L970-1162):LLM 从查询里抽出元数据过滤器;AttributeInfo(schema);两层检索(语义+过滤);enable_limit;temperature=0 求稳。
  • 替代检索器(L1164-1188):MultiQuery(多视角)/ContextualCompression/Ensemble(混合)/ParentDocument/TimeWeighted;权衡;微调一次性成本 vs RAG 持续成本;静态例子有时就够;动态按相似度拉上下文没有替代品。

Ch6 自主智能体(38-60)

  • CoT(38):营销计划朴素 vs 详细($20k 预算、step-by-step);「step-by-step」是关键短语。
  • Agents(38):act/perceive/decide;伪代码循环 get_action 到 AgentFinish;三组件:Inputs/Goal or reward/Available actions;自驾例子(Tesla 用无干预里程当奖励);LLM 版:文本化一切输入、提示定目标、工具扩动作空间;+Memory/规划执行策略/Retrieval。
  • ReAct(39):CoT 改进版;observation→thought→action→action_input 循环到 "I've found the answer";提示模板全文;不许猜工具结果。
  • 实现(40):正则提取 action/action_input(取最后一个);stop=["tool_result:"] 防幻觉;Jason Derulo 走查:observe→thought→search_on_google→tool_result→final answer。
  • 工具(41):三来源(自建/现成/Toolkit);Tool.from_function(name+description 给 LLM 选路);hub.pull("hwchase17/react");AgentExecutor;supercalifragilistic 34 字符走查;OpenAI Functions vs ReAct 对照表(Table 6-1 agent 类型:OpenAI Functions(已弃→Tools)/Tools/XML/JSON Chat/Structured Chat/ReAct/Self-Ask);Calculator+google_search 两工具:先搜年龄 31 再平方 961;工具太多会困惑;推荐工具(Google/文件/Requests/Twilio);OpenAI functions vs ReAct 表 6-2(并行调用 vs 顺序多循环)。
  • CSV Agent / SQL Agent(43):920 行心脏病数据、相关矩阵;SQL agent 先看 schema 再写 INSERT;prefix/suffix 定制;max_iterations=15 防死循环;LCEL 自建 agent(MessagesPlaceholder agent_scratchpad;bind_tools;OpenAIToolsAgentOutputParser)。
  • 记忆(44-53):LTM(向量库/自我反思/自定义检索)vs STM(对话历史/防重复);Eva 客服例子;LangChain 记忆两步:执行前读+完成后写;存 MongoDBChatMessageHistory(session_id);查询策略三档(最近消息/摘要/实体);四种 Memory:Buffer(全存)/BufferWindow(只留 k 条)/Summary(摘要)/SummaryBuffer(混合,token 上限)/TokenBuffer(token 上限冲刷);LCEL 链里 MessagesPlaceholder(history);默认存内存,生产要数据库;docstring 当工具描述;args_schema Pydantic 校验。
  • Plan-and-Execute(54):规划与执行分两个 LLM;BabyAGI 三 agent 循环(execution→task_creation→prioritization)+向量库;AutoGPT;LangChain 里有但实验性。
  • Tree of Thoughts(55):超越线性 CoT;思想=连贯文本块;探索多路径+自评+回溯;24 点游戏 CoT 4%→ToT 74%;数独例子。
  • Callbacks(56-59):BaseCallbackHandler 事件(on_llm_start/new_token/end/error、chain、tool、agent_action…);constructor vs request 级;tags;verbose=ConsoleCallbackHandler;各自适用场景。
  • Token 计数(60):get_openai_callback;total_tokens/total_cost/prompt/completion;并发也累计。

Ch7 扩散模型导论(61)

  • L8:2015 引入;DALL-E 2(2022)飞跃;SD 开源、MJ 紧随。
  • L10:训练=加噪再学去噪,以文字描述为条件;物理扩散借名。
  • L16-18:数十亿网络图片+版权争议;不是「拼贴工具」:几 GB 装不下训练集;Carlini et al. 2023:35 万张训练图只复现出 109 张。
  • L20-32:潜空间=所有可能图像的地图;提示编码成向量=地址;插值(狗→水果碗,中间图仍连贯);提示工程=在潜空间导航;图像领域比 LLM 更多元(不被 OpenAI 一家独大)。
  • DALL-E 史(L36-50):2021-01 基于 GPT-3 改造;名字=Dali+WALL-E;DALL-E Mini→Craiyon;DALL-E 2(2022-04)百万排队; astronaut riding a horse;限人/敏感词;给 doctor 提示塞 black/female 纠偏笨拙;2022-08 inpainting/outpainting;烂字、畸形手;Imagen 不公开放;DALL-E 3 入 ChatGPT。
  • Midjourney(L52-75):2022-07 v3 公测,时机绝佳;幻想美学;Théâtre d'Opéra Spatial 获奖;订阅制+付费拥有版权(vs OpenAI 保留);Discord 社区(2022-07 近百万→一年 1300 万);upscale 选择疑似当 RLHF 训练数据;v4(2022-11)/v5(2023-03)/v6(2023-12);11 名员工(2023-03)、2022-08 已盈利;负提示/加权词/describe;无 API 只靠 Discord。
  • Stable Diffusion(L77-89):LMU Munich CompVis+Runway,Stability AI 捐算力;2022-08 开源,8GB VRAM 可跑;90 天 33.6k GitHub stars;NSFW 争议;全参数开放(CFG/Denoising/Seed);PhotoAI/InteriorAI($10 万+/月)、Headshot Pro;ControlNet/SAM(2023-04);AUTOMATIC1111;v1.5(2022-10)至今仍用;v2.0 过滤 NSFW 被抱怨性能降;DeepFloyd 文字强;SDXL 1.0:66 亿参数 vs v1.5 9.8 亿。
  • Gemini(L93):2023-12 入局,diversity 争议;Ideogram(ex-Google,2023-08)。
  • 视频(L97):AnimateDiff、RunwayML Gen-2、Stable Video Diffusion(2023-11)、SD Turbo 实时、Sora(2024-02);图像提示技巧通用。
  • 模型对比(L101):DALL-E 3 构图强+ChatGPT 方便;MJ 美学最佳;SD 最灵活可扩展。

Ch8 Midjourney 标准做法(62)

  • 格式修饰符:stock photo/油画/埃及壁画;格式会带动内容(油画里没有电脑);impasto 术语(厚涂);Google 艺术家清单。
  • 艺术风格:Van Gogh/Dali/Picasso=后印象/超现实/立体;Greg Rutkowski 争议;建议只用去世一年以上艺术家(作者建议,非法律意见);风格名=潜空间捷径。
  • Reverse engineering:/describe 四条候选;CLIP Interrogator 开源替代但弱。
  • Quality boosters:4k/very beautiful/trending on artstation;原理:训练数据里 ArtStation 关联高质量;副作用(太空鲸像飞船因为 ArtStation 多飞船);模型不主动追求高质量,得要。
  • 负提示:油画带框→--no frame, wall;不可靠(概念太纠缠);Karen Gillan 减红发;Homer --no cartoon 恐怖效果;旧模型修手( nsfw/too many digits);v5/SDXL 后基本不需要。
  • 加权:默认权重 1,词靠前影响大;::语法;Van Gogh::0.8 Dali::0.2;网格搜索 0.2 步进;--no = ::-0.5 简写;负权重+放大(Van Gogh::-1 Dali::5)。
  • 图像提示:Discord 传图取链;img2img;/blend;--iw;视频也常用(Runway/Pika)。
  • Inpainting:DALL-E pioneered;抹掉裙子→梵高裙;建议:提示只写要改的区域(作者经验,与官方建议相反);DALL-E 3 暂无 inpainting(只能在 ChatGPT/API)。
  • Outpainting:Midjourney Zoom Out/Custom Zoom;换宽高比。
  • 一致角色:2:1 双图→放大→蒙半边→换角度重绘→裁切;可攒 20 张训 DreamBooth。
  • Prompt rewriting:用户不会写提示→ChatGPT 改写(问 Banksy 媒介→street art);垃圾进垃圾出;元提示;专门训的提示模型只能到平均水平。
  • Meme unbundling:Bakz T. Future 造词;让 GPT-4 描述《记忆的永恒》风格(不许提名字)→缩写→加主体→remix;更原创、可能更道德;只对名作有效。
  • Meme mapping:Lexica.art 搜提示找规律;「as a Soviet factory worker」;可爬虫+GPT-4V 标注。
  • Prompt analysis:/shorten 给出 token 权重(homer simpson 1.00,beautiful 0.00);每词都在扰动模型;删词和加词一样有效。

Ch9 Stable Diffusion 进阶(63)

  • 运行:本地 GPU/Apple Silicon/Colab;diffusers 管线(StableDiffusionPipeline.from_pretrained,float16,cuda);seed 固定可复现;num_inference_steps=50;guidance_scale=7(高了颗粒感、少多样)。
  • DreamStudio API:1000 credits=$10≈5000 张;托管的代价:功能可能下线,v1.5 被弃坑了一批人。
  • AUTOMATIC1111:功能全+扩展;ComfyUI 更灵活但复杂;Civitai/HF 千种模型;.safetensors 比 .ckpt 安全(不执行代码);SDXL base+refiner。
  • 采样器:Euler 最简单;DDIM 首个扩散专用;带 a=ancestral 注噪不收敛;DPM++ 2M Karras/UniPC 20-30 步稳;DPM++ SDE Karras/DDIM 10-15 步质高慢。
  • CFG Scale 表:1 基本无视提示/3 自由/7 平衡/15 遵守/30 严格。
  • 高分辨率修复/脸部修复(Codeformer)/Tiling;PNG Info 存元数据。
  • 权重语法:(pirate)=1.1、((pirate))=1.21、(pirate:1.5);[pirate]=0.9;负提示框也能加权。
  • Prompt editing:[from:to:when],扩散早期定形后期填细节→[Emma Watson:Amber Heard:0.5];交替 [A|B];黑魔法,作者用得少。
  • Img2Img:denoising strength 0=原图 1=全换;建议 Euler 50 步 CFG 20-30;X/Y/Z plot 扫参数。
  • Upscale:SD Upscale 切块放缝再填;R-ESRGAN 4x+ 默认(有时卡通化);别用原提示(每块都画一遍全图);150-200+ 步、CFG 8-15、denoise 0.1-0.2;M2 Air 10-30 分钟。
  • Interrogate CLIP:反推提示。
  • SD inpainting:专用模型;Whole picture vs Only masked;带 Seed;改主体词(castle→statue);denoise 0.2-0.4 小改、0.8 换元素但 >0.4 易全局不一致;Mask Blur 默认 4;一次修一个问题。
  • Outpainting:Poor man's outpainting 脚本;易幻觉;等价于先 PS 加白边再 inpaint。
  • ControlNet:论文 Zhang/Rao/Agrawala 2023;条件控制;预处理+模型必须配套;Canny(高对比描边,细节多,默认首选;纽约→吉卜力);Depth(深度图,白近黑远);Normal(3D 凹凸 RGB);OpenPose(骨架,多人可拼);M-LSD(直线,建筑);SoftEdge/HED(平滑轮廓,脸更自由);Segmentation(分区);Scribble(涂鸦→童书金鱼);Control Weight/起止步(0-1,去掉尾部 20% 留创造力)/Preprocessor Resolution/Control Mode;1.5 因为 SDXL 配套不全。
  • SAM:Meta,1100 万图 11 亿掩码;点 1-3 个点出掩码;三个候选;导出到 inpaint/ControlNet。
  • DreamBooth:SD 初训 $60 万/15 万 GPU 时;DreamBooth 单 GPU 45 分钟-1 小时;Ruiz et al. 2022;改权重出 2GB 新模型;Inkpunk 触发词 nvinkpunk;5-30 张图(推荐 20-30);instance prompt 用无意义词(ukj/zwx);class prompt 正则化(photo of a person);prior preservation;Shivam Shrirao 仓库;先训单概念再合并;Textual Inversion 更老更差(只找 token 位置);LoRA(Hu et al. 2021,加层只训新层);Hypernetworks;后两者 Civitai 占比 <10%。
  • SDXL refiner:base 定构图、refiner 加细节;Switch at 0.6/30 步(作者经验);OpenClip ViT-G/14 + CLIP ViT-L 双文本编码器;v2 只用 OpenClip 导致提示不兼容;多尺寸训练,非方形更好。

Ch10 端到端应用(64)

  • 博客写作服务(Saxifrage 博客首发):naive「Write a blog post on {topic}」→通用没观点;复杂提示(1000 词/9 节)五原则体检:像 AI 腔、数学指令会被无视、无例子、blind prompting、一把梭。
  • 管线:Topic research(SerpAPI 搜 Google 前 3 条→抓网页→切块→逐篇摘要)→Expert interview(LLM 当 SEO 研究员,基于摘要出 5 个开放式问题,追求信息增量;人回答)→Outline(Pydantic BlogOutline:title+sub_headings)→逐节写作(嵌入检索相关网页段落塞上下文;OnlyStoreAIMemory 只存 AI 消息防膨胀;k=5 递减重试;提示里「never copy...plagiarism」「必须含访谈洞见」)→风格改写(最难,唯一需要 GPT-4 的环节)→标题优化(A/B + 拇指评分)→配图(GPT-4 出图像创意→Stability API,Corporate Memphis 风格)→Gradio UI(share=True 公网链接)。
  • 风格实验:四种提示策略(A 对照/B 一段样本/C 三段改写对/D 三段成品)×3 案例×10+ 次跑,嵌入距离(ada-002 余弦)当指标;GPT-4 生成 ground truth 再人工改写当参照;GitHub Copilot 团队评测也是「haphazard and messy」;DSPy 自动优化提示;微调(OpenAI 建议 ≥50 样本)。
  • Corporate Memphis:B2B 流行风,原是公司炫耀「请得起设计师」的信号。
  • Gradio:HF 收购,AUTOMATIC1111 就是它做的;Spaces 免费托管。

作者(66)

  • Mike Taylor:Ladder 营销代理联合创始人(50 人);40 万+ 学员(LinkedIn Learning/Udemy/Vexpower)。
  • James Phoenix:营销数据管道;General Assembly 60+ 期数据科学训练营。
  • 两人 2020 GPT-3 beta 起玩提示工程;Udemy 课 7 万+ 学员(利益相关:书与课同源)。