【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用
文章目录
- 💯前言
- 💯冷启动数据的作用
- 冷启动数据设计
- 💯多阶段训练的作用
- 阶段 1:冷启动微调
- 阶段 2:推理导向强化学习(RL)
- 阶段 3:拒绝采样与监督微调(SFT)
- 阶段 4:多场景强化学习
- 💯代码示例:冷启动数据与多阶段训练的实现
- 1. 冷启动微调阶段
- 作用与应用:
- 2. 推理导向的强化学习阶段
- 作用与应用:
- 3. 拒绝采样与监督微调阶段
- 作用与应用:
- 4. 多场景强化学习
- 作用与应用:
- 总体流程
- DeepSeek 中的应用
- 💯总结
💯前言
- 在人工智能领域,深度学习模型的训练和优化往往需要大量的标注数据和计算资源。然而,面对复杂任务时,即使是最先进的技术和大量的训练数据也未必能够保证模型的最优表现。DeepSeek 在推理能力的提升上做出了突破,其中 冷启动数据 和 多阶段训练 是至关重要的组成部分。这些技术不仅提升了模型的推理效果,还确保了模型在各种复杂推理任务中具备了更高的准确度和稳定性。
本文将深入探讨 冷启动数据 和 多阶段训练 在 DeepSeek 模型中的作用,并通过具体的例子和代码块,详细说明其在模型优化中的核心地位。
DeepSeek API Docs
💯冷启动数据的作用
冷启动数据(cold-start data)是指在模型训练的初期阶段,利用少量手工设计的高质量数据来启动训练过程。这些数据并不依赖于大规模的标签数据,而是通过精心设计,提供对模型有指导性的推理信息,帮助模型在早期获得较好的表现。
在 DeepSeek 中,冷启动数据的引入主要解决了 DeepSeek-R1-Zero 模型在初期训练时遇到的可读性差、推理混乱等问题。DeepSeek-R1-Zero 使用强化学习(RL)直接从基础模型开始训练,而没有依赖传统的监督式微调(SFT)。然而,初期的 RL 模型由于缺乏有效的指导信息,往往会产生不符合用户需求的推理结果,比如推理链条不清晰、语言混合等问题。为了改善这一情况,DeepSeek-R1 引入了冷启动数据,这些数据帮助模型在最初阶段进行微调,使得其能够生成更加规范和易于理解的推理过程。
冷启动数据设计
在 DeepSeek 中,冷启动数据通常是通过以下几种方式收集和生成的:
-
少样本引导:利用少量的推理样本,生成详细的推理链条(Chain of Thought,CoT)。这些示例通常具有清晰的结构和推理过程,并且会被用于指导模型如何生成合适的推理步骤。
-
反思与验证提示:通过提示模型生成推理步骤,并要求其进行反思和验证。这样可以确保模型在推理过程中不断自我修正,提升推理的可靠性和准确度。
-
基于现有模型生成数据:从 DeepSeek-R1-Zero 的输出中筛选出高质量的推理链条,并通过人工后处理来增强其可读性和一致性。
通过这些方法,冷启动数据帮助模型在初期获得了更为规范的推理行为,从而为后续的多阶段训练打下了坚实的基础。
💯多阶段训练的作用
多阶段训练是 DeepSeek 中用于提升推理性能的核心技术之一。它通过分阶段逐步优化模型,解决了复杂任务中不同类型的推理能力瓶颈,并确保了模型能够在更为复杂和多样化的任务上获得更好的表现。
在 DeepSeek 的多阶段训练中,主要有以下几个阶段:
阶段 1:冷启动微调
在这一阶段,模型基于基础模型(如 DeepSeek-V3-Base)进行初步的微调。冷启动数据为这一阶段的训练提供了高质量的指导,确保模型可以生成清晰的推理链条。冷启动微调的目标是帮助模型快速获得有效的推理框架,使其在之后的训练中更加高效。
阶段 2:推理导向强化学习(RL)
此阶段的核心是 推理导向的强化学习(Reasoning-Oriented RL),即通过大规模的强化学习训练,进一步提升模型的推理能力。在这一阶段,模型通过执行多个推理任务,不断调整其推理策略,学习如何在不同的任务中进行有效推理。
为了让强化学习过程更加稳定和高效,DeepSeek 引入了 奖励建模 和 语言一致性奖励 等机制,帮助模型优化推理过程并减少语言混杂问题。奖励建模主要有两种类型:
-
准确度奖励:根据模型回答的正确性来进行奖励。例如,在数学问题中,模型需要提供准确的答案,才能获得奖励。
-
格式奖励:强制模型将思维过程置于
<think>
和</think>
标签之间,以便清晰地展示推理链条。这种格式要求不仅提升了可读性,还帮助模型在推理过程中保持一致性。
阶段 3:拒绝采样与监督微调(SFT)
在这一阶段,经过强化学习训练的模型会通过 拒绝采样(Rejection Sampling) 方法,从 RL 训练中收集出符合要求的推理数据。拒绝采样通过对模型生成的推理进行评估,仅保留符合正确答案的推理链条,进一步优化模型的推理输出。
此后,模型会使用 监督微调(Supervised Fine-Tuning, SFT) 数据进行进一步的训练,特别是包括其他领域的知识,如写作、角色扮演等。这一阶段的目标是让模型不仅在推理任务中表现出色,还能在通用任务中展示出强大的能力。
阶段 4:多场景强化学习
最后,DeepSeek 引入了 多场景强化学习,该阶段的目标是进一步调整模型的推理能力,使其能够在不同的场景中更好地处理推理任务。同时,强化学习过程还会根据人类偏好进行优化,以提高模型在实际应用中的友好性和安全性。
💯代码示例:冷启动数据与多阶段训练的实现
以下是一个简单的代码示例,展示如何在模型训练中使用冷启动数据和多阶段训练。
# 假设已经有基础的模型 deepseek_v3_base 和冷启动数据 cold_start_data# 1. 冷启动微调阶段
def cold_start_finetuning(model, cold_start_data):# 使用冷启动数据微调模型model.train(cold_start_data)print("冷启动微调完成")return model# 2. 推理导向的强化学习阶段
def reasoning_oriented_rl(model, training_data, reward_function):# 采用强化学习算法训练模型for data in training_data:# 计算奖励reward = reward_function(model, data)# 更新模型model.update_with_reward(data, reward)print("推理导向的强化学习训练完成")return model# 3. 拒绝采样与监督微调阶段
def rejection_sampling(model, validation_data):# 进行拒绝采样,保留高质量的推理链条sampled_data = reject_bad_samples(model, validation_data)print(f"拒绝采样,保留 {len(sampled_data)} 条高质量数据")return sampled_datadef supervised_finetuning(model, sampled_data, sft_data):# 使用采样数据和SFT数据进一步微调模型model.train(sampled_data + sft_data)print("监督微调完成")return model# 4. 多场景强化学习
def multi_scenario_rl(model, scenarios):# 针对不同场景进行强化学习for scenario in scenarios:reward = evaluate_scenario(model, scenario)model.update_with_reward(scenario, reward)print("多场景强化学习完成")return model# 示例:训练 DeepSeek 模型
model = deepseek_v3_base
model = cold_start_finetuning(model, cold_start_data)
model = reasoning_oriented_rl(model, training_data, reward_function)
sampled_data = rejection_sampling(model, validation_data)
model = supervised_finetuning(model, sampled_data, sft_data)
model = multi_scenario_rl(model, scenarios)print("DeepSeek 模型训练完成")
1. 冷启动微调阶段
def cold_start_finetuning(model, cold_start_data):# 使用冷启动数据微调模型model.train(cold_start_data)print("冷启动微调完成")return model
作用与应用:
- 冷启动数据是训练过程中的一类初步数据,它帮助模型在没有大量监督数据的情况下启动训练。通过利用精心设计的少量推理数据(如提供结构化的推理链条和反思过程),模型能够在训练初期就产生合理的推理输出。
- 在 DeepSeek 中,冷启动微调 通过这种少量数据来解决模型初期可能出现的推理混乱和不稳定性问题。这个阶段非常关键,因为它帮助模型快速适应训练环境并生成规范化的推理步骤。
2. 推理导向的强化学习阶段
def reasoning_oriented_rl(model, training_data, reward_function):# 采用强化学习算法训练模型for data in training_data:# 计算奖励reward = reward_function(model, data)# 更新模型model.update_with_reward(data, reward)print("推理导向的强化学习训练完成")return model
作用与应用:
- 这一阶段使用 强化学习(RL) 来优化模型在推理任务中的表现。通过 推理导向的强化学习,模型不仅学习如何给出答案,还学习如何生成合适的推理过程(即推理链条)。强化学习允许模型在解决复杂问题时能够不断调整和完善其推理策略。
- 奖励机制(
reward_function
)在此发挥重要作用。每个训练步骤都基于模型的输出(例如,推理链条的正确性、格式等)来计算奖励,从而引导模型朝向正确的推理路径。 - 在 DeepSeek 中,这个过程主要集中在数学推理、编程问题、科学推理等任务上,模型根据每个步骤的推理质量进行更新,从而提高其解题能力。
3. 拒绝采样与监督微调阶段
def rejection_sampling(model, validation_data):# 进行拒绝采样,保留高质量的推理链条sampled_data = reject_bad_samples(model, validation_data)print(f"拒绝采样,保留 {len(sampled_data)} 条高质量数据")return sampled_datadef supervised_finetuning(model, sampled_data, sft_data):# 使用采样数据和SFT数据进一步微调模型model.train(sampled_data + sft_data)print("监督微调完成")return model
作用与应用:
- 拒绝采样(Rejection Sampling) 是一种筛选技术,用于从训练过程中收集高质量的推理数据。通过评估模型生成的输出,拒绝采样方法能够过滤掉低质量的推理链条,只保留那些符合标准的输出。这一过程确保了模型输出的推理链条不仅正确,而且可读性强。
- 经过 拒绝采样 处理后的数据会被用于进一步的训练。监督微调(Supervised Fine-Tuning, SFT) 阶段结合了采样后的高质量数据和其他领域的知识(如写作、角色扮演等),进一步提升模型的综合能力。这个阶段旨在确保模型不仅在推理任务上表现出色,同时也能处理通用任务。
4. 多场景强化学习
def multi_scenario_rl(model, scenarios):# 针对不同场景进行强化学习for scenario in scenarios:reward = evaluate_scenario(model, scenario)model.update_with_reward(scenario, reward)print("多场景强化学习完成")return model
作用与应用:
- 多场景强化学习 是为了增强模型在多个任务或场景中的表现而设计的。在 DeepSeek 中,模型需要处理各种推理任务(如数学问题、代码生成、科学推理等),这些任务可能具有不同的特征和要求。通过 多场景强化学习,模型能够在多个领域内进行学习,并根据不同场景的需求进行调整。
- 在这一阶段,模型根据不同的任务和场景评估其输出,并通过强化学习进一步优化。每个场景的奖励计算和更新都会帮助模型适应新的场景或任务,提升其多样性和通用性。
总体流程
在这段代码的整体流程中,模型从初期的冷启动数据微调开始,逐步经过强化学习优化、拒绝采样与监督微调,最终通过多场景强化学习确保模型能够应对各种推理任务。这个过程的目标是让模型在特定任务上具备出色的推理能力,同时保持广泛的通用性。
DeepSeek 中的应用
在 DeepSeek 中,这一多阶段训练过程使得模型能够:
- 快速适应初期训练,通过冷启动数据稳定训练过程;
- 通过强化学习进一步优化推理链条,提升推理任务的准确性;
- 通过拒绝采样与监督微调提高推理的质量和可读性,确保模型不仅能够给出正确答案,还能够清晰地解释其推理过程;
- 通过多场景强化学习提升模型在多任务中的适应能力,实现更广泛的应用。
通过这样的多阶段训练,DeepSeek 能够在复杂任务中表现出色,不仅解决了推理问题,还能不断自我改进和进化,处理各种实际应用中的挑战。
💯总结
冷启动数据和多阶段训练是 DeepSeek 在推理任务中取得突破性进展的关键技术。冷启动数据通过提供高质量的引导信息,帮助模型在训练初期快速获得稳定的推理框架,而多阶段训练则确保了模型能够逐步提升其推理能力,处理更复杂的任务。通过这些技术,DeepSeek 不仅在推理任务上达到了前所未有的表现,也为未来人工智能推理模型的优化提供了新的思路和方法。
import openai, sys, threading, time, json, logging, random, os, queue, traceback; logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"); openai.api_key = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY"); def ai_agent(prompt, temperature=0.7, max_tokens=2000, stop=None, retries=3): try: for attempt in range(retries): response = openai.Completion.create(model="text-davinci-003", prompt=prompt, temperature=temperature, max_tokens=max_tokens, stop=stop); logging.info(f"Agent Response: {response}"); return response["choices"][0]["text"].strip(); except Exception as e: logging.error(f"Error occurred on attempt {attempt + 1}: {e}"); traceback.print_exc(); time.sleep(random.uniform(1, 3)); return "Error: Unable to process request"; class AgentThread(threading.Thread): def __init__(self, prompt, temperature=0.7, max_tokens=1500, output_queue=None): threading.Thread.__init__(self); self.prompt = prompt; self.temperature = temperature; self.max_tokens = max_tokens; self.output_queue = output_queue if output_queue else queue.Queue(); def run(self): try: result = ai_agent(self.prompt, self.temperature, self.max_tokens); self.output_queue.put({"prompt": self.prompt, "response": result}); except Exception as e: logging.error(f"Thread error for prompt '{self.prompt}': {e}"); self.output_queue.put({"prompt": self.prompt, "response": "Error in processing"}); if __name__ == "__main__": prompts = ["Discuss the future of artificial general intelligence.", "What are the potential risks of autonomous weapons?", "Explain the ethical implications of AI in surveillance systems.", "How will AI affect global economies in the next 20 years?", "What is the role of AI in combating climate change?"]; threads = []; results = []; output_queue = queue.Queue(); start_time = time.time(); for idx, prompt in enumerate(prompts): temperature = random.uniform(0.5, 1.0); max_tokens = random.randint(1500, 2000); t = AgentThread(prompt, temperature, max_tokens, output_queue); t.start(); threads.append(t); for t in threads: t.join(); while not output_queue.empty(): result = output_queue.get(); results.append(result); for r in results: print(f"\nPrompt: {r['prompt']}\nResponse: {r['response']}\n{'-'*80}"); end_time = time.time(); total_time = round(end_time - start_time, 2); logging.info(f"All tasks completed in {total_time} seconds."); logging.info(f"Final Results: {json.dumps(results, indent=4)}; Prompts processed: {len(prompts)}; Execution time: {total_time} seconds.")
相关文章:

【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯冷启动数据的作用冷启动数据设计 💯多阶段训练的作用阶段 1:冷启动微调阶段 2:推理导向强化学习(RL࿰…...

如何打造一个更友好的网站结构?
在SEO优化中,网站的结构往往被忽略,但它其实是决定谷歌爬虫抓取效率的关键因素之一。一个清晰、逻辑合理的网站结构,不仅能让用户更方便地找到他们需要的信息,还能提升搜索引擎的抓取效率 理想的网站结构应该像一棵树,…...
【ROS2】RViz2自定义面板插件(rviz_common::Panel)的详细步骤
【ROS】郭老二博文之:ROS目录 1、简述 RViz2 的插件基于 ROS2 的插件库(pluginlib)机制,通过动态加载共享库实现功能扩展。 注意:RViz2 使用 QT 作为 UI 框架,虽然 QT 也有插件机制,但是 RViz2 并没有使用QT的插件机制,而是通过 pluginlib 加载功能模块来实现。 2、…...

漏洞分析 Spring Framework路径遍历漏洞(CVE-2024-38816)
漏洞概述 VMware Spring Framework是美国威睿(VMware)公司的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。 近期,监测到Spring Framework在特定条件下,存在目录遍历漏洞(网宿评分&am…...
《手札·避坑篇》2025年传统制造业企业数字化转型指南
一、引言 在数字化浪潮的推动下,传统制造业企业正加速向智能化、数字化转型。开源软件技术与制造MES(制造执行系统)产品的结合,为企业提供了高效、灵活且低成本的转型路径。本指南旨在为传统制造业企业的信息化负责人提供一套完整的数字化转型方案,助力企业实现高效、智能…...
MySQL中DDL操作是否支持事务
MySQL中DDL不支持事务。 传统MySQL(5.7及以前版本): DDL操作不支持事务执行DDL操作时会隐式提交当前会话的事务无法回滚DDL操作 MySQL 8.0版本: 引入了原子DDL特性(Atomic DDL)DDL操作变为原子性的&…...

GWO优化决策树回归预测matlab
灰狼优化算法(Grey Wolf Optimizer,简称 GWO)是一种群智能优化算法,由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出。该算法的设计灵感源自灰狼群体的捕食行为,核心思想是模仿灰狼社会的结构与行为模式。 在本…...

掌握Spring @SessionAttribute:跨请求数据共享的艺术
SessionAttribute注解在Spring中的作用,就像是一个“数据中转站”。 在Web应用中,我们经常需要在多个请求之间共享数据。比如,用户登录后,我们需要在多个页面或请求中保持用户的登录状态。这时,SessionAttribute注解就…...

python读取Excel表格内公式的值
背景:在做业务周报的时候,有一个Excel模板,表里面包含了一些公式,dataframe写入到Excel的时候,有公式的部分通过python读出来的结果是None,需要进行优化参考链接: 如何使用openpyxl读取Excel单元…...
第三十八章:阳江自驾之旅:挖蟹与品鲜
经历了惠州海边那趟温馨又欢乐的自驾之旅后,小冷和小颖心中对旅行的热情愈发高涨。闲暇时,两人总会坐在客厅里,翻看着旅行杂志,或是在网上搜索各地的美景,那些充满魅力的地方不断吸引着他们,也让他们对下一…...

C++小等于的所有奇数和=最大奇数除2加1的平方。
缘由 三种思路解题:依据算术推导得到一个规律:小等于的所有奇数和等于最大奇数除以2加1的平方。将在后续发布,总计有十种推导出来的实现代码。 int a 0,aa 1,aaa 0;cin >> a; while (aa<a) aaa aa, aa 2;cout << aaa;i…...

设置IDEA的内存大小,让IDEA更流畅: 建议设置在 2048 MB 及以上
文章目录 引言I 更改内存设置基于窗口界面进行内存设置修改内存配置文件II IDEA中的一些常见问题及其解决方案引言 方式一:基于窗口界面进行内存设置方式二:修改内存配置文件I 更改内存设置 基于窗口界面进行内存设置 打开IDEA,上方菜单栏 Help > Change Memory Settin…...
Ranger Hive Service连接测试失败问题解决
个人博客地址:Ranger Hive Service连接测试失败问题解决 | 一张假钞的真实世界 异常信息如下: org.apache.ranger.plugin.client.HadoopException: Unable to connect to Hive Thrift Server instance.. Unable to connect to Hive Thrift Server inst…...
车机音频参数下发流程
比如以audioControlWrapper.setParametersToAmp(keyPairValues); 下发banlance为例,链路如下 hal层 1. AudioControl.cpp hardware\interfaces\automotive\audiocontrol\aidl\default\AudioControl.cpp ndk::ScopedAStatus AudioControl::setParametersToAmp(co…...

大模型推理——MLA实现方案
1.整体流程 先上一张图来整体理解下MLA的计算过程 2.实现代码 import math import torch import torch.nn as nn# rms归一化 class RMSNorm(nn.Module):""""""def __init__(self, hidden_size, eps1e-6):super().__init__()self.weight nn.Pa…...
redis之GEO 模块
文章目录 背景GeoHash 算法redis中的GeoHash 算法基本使用增加距离获取元素位置获取元素的 hash 值附近的元素 注意事项原理 背景 如果我们有需求需要存储地理坐标,为了满足高性能的矩形区域算法,数据表需要在经纬度坐标加上双向复合索引 (x, y)&#x…...

21.2.7 综合示例
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 【例 21.7】【项目:code21-007】填充职员表并打印。 本例使用到的Excel文件为:职员信息登记表.xlsx&#x…...

使用Docker + Ollama在Ubuntu中部署deepseek
1、安装docker 这里建议用docker来部署,方便简单 安装教程需要自己找详细的,会用到跳过 如果你没有安装 Docker,可以按照以下步骤安装: sudo apt update sudo apt install apt-transport-https ca-certificates curl software-p…...

【C语言标准库函数】三角函数
目录 一、头文件 二、函数简介 2.1. 正弦函数:sin(double angle) 2.2. 余弦函数:cos(double angle) 2.3. 正切函数:tan(double angle) 2.4. 反正弦函数:asin(double value) 2.5. 反余弦函数:acos(double value)…...
CNN-day9-经典神经网络ResNet
day10-经典神经网络ResNet 1 梯度消失问题 深层网络有个梯度消失问题:模型变深时,其错误率反而会提升,该问题非过拟合引起,主要是因为梯度消失而导致参数难以学习和更新。 2 网络创新 2015年何凯明等人提出deep residual netw…...
淘宝分类详情数据获取:Python爬虫的高效实现
在电商领域,淘宝作为中国最大的电商平台之一,其分类详情数据对于市场分析、竞争对手研究以及电商运营优化具有不可估量的价值。通过Python爬虫技术,我们可以高效地获取这些数据,为电商从业者提供强大的数据支持。 一、为什么选择…...
机器学习 —— 深入剖析线性回归模型
一、线性回归模型简介 线性回归是机器学习中最为基础的模型之一,主要用于解决回归问题,即预测一个连续的数值。其核心思想是构建线性方程,描述自变量(特征)和因变量(目标值)之间的关系。简单来…...
33.日常算法
1.螺旋矩阵 题目来源 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] class Solution { public:vec…...

#渗透测试#批量漏洞挖掘#微商城系统 goods SQL注入漏洞
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 一、漏洞概述 二、漏洞复现步骤 三、技术…...

【翻译+论文阅读】DeepSeek-R1评测:粉碎GPT-4和Claude 3.5的开源AI革命
目录 一、DeepSeek-R1 势不可挡二、DeepSeek-R1 卓越之处三、DeepSeek-R1 创新设计四、DeepSeek-R1 进化之路1. 强化学习RL代替监督微调学习SFL2. Aha Moment “啊哈”时刻3. 蒸馏版本仅采用SFT4. 未来研究计划 部分内容有拓展,部分内容有删除,与原文会有…...

Vision Transformer学习笔记(2020 ICLR)
摘要(Abstract):简述了ViT(Vision Transformer)模型的设计和实验结果,展示了其在大规模图像数据集上进行训练时的优越性能。该模型直接采用原始图像块作为输入,而不是传统的卷积神经网络(CNNs),并通过Transformer架构处理这些图像块以实现高效的图像识别。引言(Introdu…...
一步一步生成音乐类小程序的详细指南,结合AI辅助开发的思路
以下是一步一步生成音乐类小程序的详细指南,结合AI辅助开发的思路: 需求分析阶段核心功能梳理 音乐播放器(播放/暂停/进度条/音量)歌单分类(流行/古典/摇滚等)用户系统(登录/收藏/历史记录)搜索功能(歌曲/歌手/专辑)推荐系统(根据用户偏好推荐)技术选型 前端:微信…...

25/2/8 <机器人基础> 阻抗控制
1. 什么是阻抗控制? 阻抗控制旨在通过调节机器人与环境的相互作用,控制其动态行为。阻抗可以理解为一个力和位移之间的关系,涉及力、速度和位置的协同控制。 2. 阻抗控制的基本概念 力控制:根据感测的外力调节机械手的动作。位置…...
golang 开启HTTP代理认证
内部网路不能直接访问外网接口,可以通过代理发送HTTP请求。 HTTP代理服务需要进行认证。 package cmdimport ("fmt""io/ioutil""log""net/http""net/url""strings" )// 推送CBC07功能 func main() {l…...

详解Nginx no live upstreams while connecting to upstream
网上看到几个相关的文章,觉得很不错,这里整理记录分享一下,供大家参考。 upstream配置分 在分析问题原因之前,我们先来看下关于上面upstream配置一些相关的参数配置说明,参考下面表格 ngx_http_proxy_module 这里重…...