diff --git a/README.md b/README.md
index fe9a9d7..f4ad4e1 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,263 @@
-# Chinese-Mixtral (Work-in-progress, WIP)
+[**🇨🇳中文**](./README.md) | [**🌐English**](./README_EN.md) | [**📖文档/Docs**](https://github.com/ymcui/Chinese-Mixtral/wiki) | [**❓提问/Issues**](https://github.com/ymcui/Chinese-Mixtral/issues) | [**💬讨论/Discussions**](https://github.com/ymcui/Chinese-Mixtral/discussions) | [**⚔️竞技场/Arena**](http://llm-arena.ymcui.com/)
-目前进度:正在训练instruct(chat)版模型,月底前完成。感兴趣的可以到`init-doc`分支围观。
+
+
+
+
+
+
+
+
+
+
+
-Thanks for your attention.
-This project is under active construction. Please check back later.
+
+本项目基于Mistral.ai发布的[Mixtral模型](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1)进行开发,该模型使用了稀疏混合专家模型(Sparse MoE)架构。本项目利用大规模中文无标注数据进行了中文增量训练,得到了**中文Mixtral**基础模型,并且进一步通过指令精调,得到了**中文Mixtral-Instruct**指令模型。该模型原生支持**32K上下文(实测可达128K)**,能够有效地处理长文本,同时在数学推理、代码生成等方面获得了显著性能提升。使用llama.cpp进行量化推理时,最低只需16G内存(或显存)。
+
+#### 本项目主要内容
+
+- 🚀 开源中文Mixtral基础模型,该模型在[Mixtral-8x7B-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1)的基础上进行了中文增量训练
+- 🚀 开源中文Mixtral-Instruct指令模型,该模型在中文Mixtral的基础上进一步进行了指令精调
+- 🚀 开源了预训练脚本、指令精调脚本,用户可根据需要进一步训练或微调模型
+- 🚀 提供了利用个人电脑CPU/GPU快速在本地进行大模型量化和部署的教程
+- 🚀 支持[🤗transformers](https://github.com/huggingface/transformers), [llama.cpp](https://github.com/ggerganov/llama.cpp), [text-generation-webui](https://github.com/oobabooga/text-generation-webui), [LangChain](https://github.com/hwchase17/langchain), [privateGPT](https://github.com/imartinez/privateGPT), [vLLM](https://github.com/vllm-project/vllm)等Mixtral生态
+
+----
+
+[中文LLaMA-2&Alpaca-2大模型](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2) | [中文LLaMA&Alpaca大模型](https://github.com/ymcui/Chinese-LLaMA-Alpaca) | [多模态中文LLaMA&Alpaca大模型](https://github.com/airaria/Visual-Chinese-LLaMA-Alpaca) | [多模态VLE](https://github.com/iflytek/VLE) | [中文MiniRBT](https://github.com/iflytek/MiniRBT) | [中文LERT](https://github.com/ymcui/LERT) | [中英文PERT](https://github.com/ymcui/PERT) | [中文MacBERT](https://github.com/ymcui/MacBERT) | [中文ELECTRA](https://github.com/ymcui/Chinese-ELECTRA) | [中文XLNet](https://github.com/ymcui/Chinese-XLNet) | [中文BERT](https://github.com/ymcui/Chinese-BERT-wwm) | [知识蒸馏工具TextBrewer](https://github.com/airaria/TextBrewer) | [模型裁剪工具TextPruner](https://github.com/airaria/TextPruner) | [蒸馏裁剪一体化GRAIN](https://github.com/airaria/GRAIN)
+
+
+## 新闻
+
+**[2024/01/29] 🚀 正式发布Chinese-Mixtral(基座模型),Chinese-Mixtral-Instruct(指令/chat模型)。详情查看:[📚v1.0版本发布日志](https://github.com/ymcui/Chinese-Mixtral/releases/tag/v1.0)**
+
+
+## 内容导引
+| 章节 | 描述 |
+| ------------------------------------- | ------------------------------------------------------------ |
+| [💁🏻♂️模型简介](#模型简介) | 简要介绍本项目相关模型的技术特点 |
+| [⏬模型下载](#模型下载) | 中文Mixtral大模型下载地址 |
+| [💻推理与部署](#推理与部署) | 介绍了如何对模型进行量化并使用个人电脑部署并体验大模型 |
+| [💯模型效果](#模型效果) | 介绍了模型在部分任务上的效果 |
+| [📝训练与精调](#训练与精调) | 介绍了如何训练和精调中文Mixtral大模型 |
+| [❓常见问题](#常见问题) | 一些常见问题的回复 |
+
+
+## 模型简介
+
+本项目开源了基于[Mixtral模型](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1)开发的中文Mixtral、中文Mixtral-Instruct模型,其主要特点如下:
+
+#### 📖 稀疏混合专家模型
+
+Mixtral是一个稀疏混合专家模型。该模型与以往的LLaMA等主流大模型结构具有显著差异,主要体现在以下几点:
+
+- 每个FFN层包含8个不同的"专家"(全连接层),根据门控值选取最优的2个进行激活
+- 输入序列中的每个token都会独立地选取专家,而不是整个序列对应一组专家
+- 实际参数量约为46.7B,在推理时激活的参数量约为13B
+
+以下是[Mixtral论文](https://arxiv.org/abs/2401.04088)中的结构示意图:
+
+
+
+
+
+
+#### 🚄 原生支持32K上下文(实测支持128K)
+
+与[Chinese-LLaMA-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)以及[Chinese-LLaMA-Alpaca-2](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2)项目不同,Mixtral模型原生支持32K上下文(实测可达128K)。用户可使用单一模型来解决不同长度的各类任务。
+
+## 模型下载
+
+### 模型选择指引
+
+以下是本项目的模型对比以及建议使用场景。**如需聊天交互,请选择Instruct版。**
+
+| 对比项 | 中文Mixtral | 中文Mixtral-Instruct |
+| :-------------------- | :----------------------------------------------------: | :----------------------------------------------------------: |
+| 模型类型 | **基座模型** | **指令/Chat模型(类ChatGPT)** |
+| 模型大小 | 8x7B(实际激活约13B) | 8x7B(实际激活约13B) |
+| 专家数量 | 8个(实际激活2个) | 8个(实际激活2个) |
+| 训练类型 | Causal-LM (CLM) | 指令精调 |
+| 训练方式 | QLoRA + 全量emb/lm-head | QLoRA + 全量emb/lm-head |
+| 基于什么模型训练 | 原版Mixtral-8x7B-v0.1 | 中文Mixtral |
+| 训练语料 | 无标注通用语料 | 有标注指令数据 |
+| 词表大小 | 原版词表,32000 | 原版词表,32000 |
+| 支持上下文长度 | 32K(实测可达128K) | 32K(实测可达128K) |
+| 输入模板 | 不需要 | 需要套用Mixtral-Instruct模板 |
+| 适用场景 | 文本续写:给定上文,让模型生成下文 | 指令理解:问答、写作、聊天、交互等 |
+| 不适用场景 | 指令理解 、多轮聊天等 | 文本无限制自由生成 |
+
+
+### 下载地址
+
+以下提供了3种不同类型的模型:
+
+- **完整版模型**:直接下载即可使用,无需其他合并步骤,推荐网络带宽充足的用户;
+- **LoRA版模型**:无法单独使用,必须与原版[Mixtral-8x7B-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1)合并才能转为完整版模型,推荐网络带宽不足且手头有原版Mixtral的用户。合并方法请参阅:[**💻 模型合并步骤**](https://github.com/ymcui/Chinese-Mixtral/wiki/model_conversion_zh)
+- **GGUF版模型**:兼容[llama.cpp](https://github.com/ggerganov/llama.cpp)等工具的GGUF量化版模型,推荐只需要做推理部署的用户下载。
+
+| 模型名称 | 类型 | 完整版(94 GB) | LoRA版(2.4 GB) | GGUF版 |
+| :------------------------ | :------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: |
+| Chinese-Mixtral | 基座模型 | [[Baidu]](https://pan.baidu.com/s/1nwJ8JkMTUrCkDEccg7C9Pw?pwd=33kb) [[🤗HF]](https://huggingface.co/hfl/chinese-mixtral) | [[Baidu]](https://pan.baidu.com/s/1XRw2-rumi-Pg0CrXqEh8ug?pwd=8gjk) [[🤗HF]](https://huggingface.co/hfl/chinese-mixtral-lora) | [[🤗HF]](https://huggingface.co/hfl/chinese-mixtral-gguf) |
+| Chinese-Mixtral-Instruct | 指令模型 | [[Baidu]](https://pan.baidu.com/s/1ogGipoWgTsojGai5cSxdoQ?pwd=dq7x) [[🤗HF]](https://huggingface.co/hfl/chinese-mixtral-instruct) | [[Baidu]](https://pan.baidu.com/s/1hX_mrYE1U1FlUEToclEOwA?pwd=h2ng) [[🤗HF]](https://huggingface.co/hfl/chinese-mixtral-instruct-lora) | [[🤗HF]](https://huggingface.co/hfl/chinese-mixtral-instruct-gguf) |
+
+> [!NOTE]
+> 若无法访问HF,可考虑一些镜像站点(如hf-mirror.com),具体方法请自行查找解决。
+
+## 推理与部署
+
+本项目中的相关模型主要支持以下量化、推理和部署方式,具体内容请参考对应教程。
+
+| 工具 | 特点 | CPU | GPU | 量化 | GUI | API | vLLM | 教程 |
+| :----------------------------------------------------------- | ---------------------------- | :--: | :--: | :--: | :--: | :--: | :--: |:--: |
+| [llama.cpp](https://github.com/ggerganov/llama.cpp) | 丰富的量化选项和高效本地推理 | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | [[link]](https://github.com/ymcui/Chinese-Mixtral/wiki/llamacpp_zh) |
+| [🤗Transformers](https://github.com/huggingface/transformers) | 原生transformers推理接口 | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | [link] |
+| [仿OpenAI API调用](https://platform.openai.com/docs/api-reference) | 仿OpenAI API接口的服务器Demo | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | [link] |
+| [text-generation-webui](https://github.com/oobabooga/text-generation-webui) | 前端Web UI界面的部署方式 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | [link] |
+| [LangChain](https://github.com/hwchase17/langchain) | 适合二次开发的大模型应用开源框架 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | [link] |
+| [privateGPT](https://github.com/imartinez/privateGPT) | 多文档本地问答框架 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | [link] |
+| [LM Studio](https://lmstudio.ai) | 多平台聊天软件(带界面) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | [[link]](https://github.com/ymcui/Chinese-Mixtral/wiki/lmstudio_zh) |
+
+
+## 模型效果
+
+为了评测相关模型的效果,本项目分别进行了生成效果评测和客观效果评测(NLU类),从不同角度对大模型进行评估。推荐用户在自己关注的任务上进行测试,选择适配相关任务的模型。
+
+### 生成效果评测
+
+- 本项目仿照[Fastchat Chatbot Arena](https://chat.lmsys.org/?arena)推出了模型在线对战平台,可浏览和评测模型回复质量。对战平台提供了胜率、Elo评分等评测指标,并且可以查看两两模型的对战胜率等结果。**⚔️ 模型竞技场:[http://llm-arena.ymcui.com](http://llm-arena.ymcui.com/)**
+- examples目录中提供了Chinese-Mixtral-Instruct与Chinese-Alpaca-2-13B的输出样例,并通过GPT-4进行了打分对比,**Chinese-Mixtral-Instruct平均得分为8.20、Chinese-Alpaca-2-13B平均得分为7.05**。**📄 输出样例对比:[examples](./examples)**
+
+
+### 客观效果评测
+
+#### C-Eval
+
+[C-Eval](https://cevalbenchmark.com)是一个全面的中文基础模型评估套件,其中验证集和测试集分别包含1.3K和12.3K个选择题,涵盖52个学科。C-Eval推理代码请参考本项目:[📖GitHub Wiki](https://github.com/ymcui/Chinese-Mixtral/wiki/ceval_zh)
+
+| Models | 类型 | Valid (0-shot) | Valid (5-shot) | Test (0-shot) | Test (5-shot) |
+| ------------------------ | :------------: | :------------: | :-----------: | :-----------: | :-----------: |
+| **Chinese-Mixtral-Instruct** | 指令 | 51.7 | 55.0 | 50.0 | 51.5 |
+| **Chinese-Mixtral** | 基座 | 45.8 | 54.2 | 43.1 | 49.1 |
+| [Mixtral-8x7B-Instruct-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1) | 指令 | 51.6 | 54.0 | - | - |
+| [Mixtral-8x7B-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1) | 基座 | 47.3 | 54.6 | - | - |
+| Chinese-Alpaca-2-13B | 指令 | 44.3 | 45.9 | 42.6 | 44.0 |
+| Chinese-LLaMA-2-13B | 基座 | 40.6 | 42.7 | 38.0 | 41.6 |
+
+
+#### CMMLU
+
+[CMMLU](https://github.com/haonan-li/CMMLU)是另一个综合性中文评测数据集,专门用于评估语言模型在中文语境下的知识和推理能力,涵盖了从基础学科到高级专业水平的67个主题,共计11.5K个选择题。CMMLU推理代码请参考本项目:[📖GitHub Wiki](https://github.com/ymcui/Chinese-Mixtral/wiki/cmmlu_zh)
+
+| Models | 类型 | Test (0-shot) | Test (5-shot) |
+| ------------------------ | :------------: | :-----------: | :-----------: |
+| **Chinese-Mixtral-Instruct** | 指令 | 50.0 | 53.0 |
+| **Chinese-Mixtral** | 基座 | 42.5 | 51.0 |
+| [Mixtral-8x7B-Instruct-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1) | 指令 | 48.2 | 51.6 |
+| [Mixtral-8x7B-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1) | 基座 | 44.3 | 51.6 |
+| Chinese-Alpaca-2-13B | 指令 | 43.2 | 45.5 |
+| Chinese-LLaMA-2-13B | 基座 | 38.9 | 42.5 |
+
+#### MMLU
+
+[MMLU](https://github.com/hendrycks/test)是一个用于评测自然语言理解能力的英文评测数据集,是当今用于评测大模型能力的主要数据集之一,其中验证集和测试集分别包含1.5K和14.1K个选择题,涵盖57个学科。MMLU推理代码请参考本项目:[📖GitHub Wiki](https://github.com/ymcui/Chinese-Mixtral/wiki/mmlu_zh)
+
+| Models | 类型 | Valid (0-shot) | Valid (5-shot) | Test (0-shot) | Test (5-shot) |
+| ------------------------ | :------------: | :------------: | :-----------: | :-----------: | :-----------: |
+| **Chinese-Mixtral-Instruct** | 指令 | 65.1 | 69.6 | 67.5 | 69.8 |
+| **Chinese-Mixtral** | 基座 | 63.2 | 67.1 | 65.5 | 68.3 |
+| [Mixtral-8x7B-Instruct-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1) | 指令 | 68.5 | 70.4 | 68.2 | 70.2 |
+| [Mixtral-8x7B-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1) | 基座 | 64.9 | 69.0 | 67.0 | 69.5 |
+| Chinese-Alpaca-2-13B | 指令 | 49.6 | 53.2 | 50.9 | 53.5 |
+| Chinese-LLaMA-2-13B | 基座 | 46.8 | 50.0 | 46.6 | 51.8 |
+
+#### LongBench
+
+[LongBench](https://github.com/THUDM/LongBench)是一个大模型长文本理解能力的评测基准,由6大类、20个不同的任务组成,多数任务的平均长度在5K-15K之间,共包含约4.75K条测试数据。以下是本项目模型在该中文任务(含代码任务)上的评测效果。LongBench推理代码请参考本项目:[📖GitHub Wiki](https://github.com/ymcui/Chinese-Mixtral/wiki/longbench_zh)
+
+| Models | 单文档QA | 多文档QA | 摘要 | FS学习 | 代码补全 | 合成任务 | 平均 |
+| ------------------------------------------------------------ | :------: | :------: | :--: | :----: | :------: | :------: | :--: |
+| **Chinese-Mixtral-Instruct** | 50.3 | 34.2 | 16.4 | 42.0 | 56.1 | 89.5 | 48.1 |
+| **Chinese-Mixtral** | 32.0 | 23.7 | 0.4 | 42.5 | 27.4 | 14.0 | 23.3 |
+| [Mixtral-8x7B-Instruct-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1) | 56.5 | 35.7 | 15.4 | 46.0 | 63.6 | 98.0 | 52.5 |
+| [Mixtral-8x7B-v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1) | 35.5 | 9.5 | 16.4 | 46.5 | 57.2 | 83.5 | 41.4 |
+| Chinese-Alpaca-2-13B-16K | 47.9 | 26.7 | 13.0 | 22.3 | 46.6 | 21.5 | 29.7 |
+| Chinese-LLaMA-2-13B-16K | 36.7 | 17.7 | 3.1 | 29.8 | 13.8 | 3.0 | 17.3 |
+| Chinese-Alpaca-2-7B-64K | 44.7 | 28.1 | 14.4 | 39.0 | 44.6 | 5.0 | 29.3 |
+| Chinese-LLaMA-2-7B-64K | 27.2 | 16.4 | 6.5 | 33.0 | 7.8 | 5.0 | 16.0 |
+
+### 量化效果评测
+
+在llama.cpp下,测试了Chinese-Mixtral量化版模型的性能,如下表所示。
+
+| | F16 | Q8_0 | Q6_K | Q5_K | Q5_0 | Q4_K | Q4_0 | Q3_K | Q2_K | IQ2_XS | IQ2_XXS |
+| ------------ | ---: | -----: | -----: | -----: | -----: | -----: | -----: | -----: | -----: | -----: | ------: |
+| Size (GB) | 87.0 | 46.2 | 35.7 | 30.0 | 30.0 | 24.6 | 24.6 | 19.0 | 16.1 | 12.7 | 11.4 |
+| BPW | 16.0 | 8.50 | 6.57 | 5.69 | 5.52 | 4.87 | 4.53 | 3.86 | 2.96 | 2.34 | 2.10 |
+| PPL | - | 4.4076 | 4.4092 | 4.4192 | 4.4224 | 4.4488 | 4.4917 | 4.5545 | 5.1846 | 6.9784 | 8.5981 |
+| M3 Max Speed | - | - | 36.0 | 36.9 | 35.7 | 31.2 | 27.8 | 37.6 | 29.1 | - | - |
+| A100 Speed | - | - | 29.9 | 22.6 | 20.5 | 21.7 | 17.1 | 21.7 | 20.3 | 23.7 | 22.5 |
+
+> [!NOTE]
+>
+> - 模型大小:单位GB
+> - BPW(Bits-Per-Weight):单位参数比特,例如Q6_K实际平均精度为6.57
+> - PPL(困惑度):以4K上下文测量,数值越低越好
+> - 生成速度:提供了Apple M3 Max(Metal)以及NVIDIA A100(40G)的生成速度(单位ms/token),数值越低越好
+
+以Chinese-Mixtral-Q4_0为例,下图展示了不同上下文长度下的PPL变化趋势,选取了2组不同的纯文本数据。实验结果表明**Mixtral模型支持的上下文长度已超过标称的32K,在64K+上下文下仍然具有较好的表现(实测可达128K)。**
+
+
+
+
+
+
+## 训练与精调
+
+### 预训练
+
+- 在原版Mixtral的基础上,利用大规模无标注数据进行增量训练,得到Chinese-Mixtral基座模型
+- 训练数据采用[Chinese-LLaMA-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)项目中与基础版模型一致的数据,其总量约20G纯文本文件
+- 训练代码及使用教程:[📖预训练脚本Wiki](https://github.com/ymcui/Chinese-Mixtral/wiki/pt_scripts_zh)
+
+### 指令精调
+
+- 在Chinese-Mixtral的基础上,利用有标注指令数据进行进一步精调,得到Chinese-Mixtral-Instruct指令模型
+- 训练数据采用了[Chinese-LLaMA-Alpaca-2](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2)项目中使用的指令数据,其总量约500万条指令数据
+- 训练代码及使用教程:[📖指令精调脚本Wiki](https://github.com/ymcui/Chinese-Mixtral/wiki/sft_scripts_zh)
+
+[指令模板](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1#instruction-format):
+
+```
+ [INST] Instruction [/INST] Model answer [INST] Follow-up instruction [/INST]
+```
+注意:``和``是表示序列开始和结束的特殊token,而`[INST]`和`[/INST]`则是普通字符串。
+
+## 常见问题
+
+请在提Issue前务必先查看FAQ中是否已存在解决方案。具体问题和解答请参考本项目 [📖GitHub Wiki](https://github.com/ymcui/Chinese-Mixtral/wiki/faq_zh)
+
+```
+问题1:后续会不会用更多数据进行训练?会不会做RLHF/DPO对齐?
+问题2:为什么本次的模型没有做中文词表扩展?
+问题3:是否支持Mixtral的下游生态?
+```
+
+
+## 引用
+
+TBA
+
+
+## 免责声明
+
+本项目基于由Mistral.ai发布的Mixtral模型进行开发,使用过程中请严格遵守Mixtral的开源许可协议。如果涉及使用第三方代码,请务必遵从相关的开源许可协议。模型生成的内容可能会因为计算方法、随机因素以及量化精度损失等影响其准确性,因此,本项目不对模型输出的准确性提供任何保证,也不会对任何因使用相关资源和输出结果产生的损失承担责任。如果将本项目的相关模型用于商业用途,开发者应遵守当地的法律法规,确保模型输出内容的合规性,本项目不对任何由此衍生的产品或服务承担责任。
+
+
+## 问题反馈
+如有疑问,请在GitHub Issue中提交。礼貌地提出问题,构建和谐的讨论社区。
+
+- 在提交问题之前,请先查看FAQ能否解决问题,同时建议查阅以往的issue是否能解决你的问题。
+- 提交问题请使用本项目设置的Issue模板,以帮助快速定位具体问题。
+- 重复以及与本项目无关的issue会被[stable-bot](https://github.com/marketplace/stale)处理,敬请谅解。
\ No newline at end of file
diff --git a/README_EN.md b/README_EN.md
new file mode 100644
index 0000000..2409cd0
--- /dev/null
+++ b/README_EN.md
@@ -0,0 +1,15 @@
+[**🇨🇳中文**](./README.md) | [**🌐English**](./README_EN.md) | [**📖文档/Docs**](https://github.com/ymcui/Chinese-Mixtral/wiki) | [**❓提问/Issues**](https://github.com/ymcui/Chinese-Mixtral/issues) | [**💬讨论/Discussions**](https://github.com/ymcui/Chinese-Mixtral/discussions) | [**⚔️竞技场/Arena**](http://llm-arena.ymcui.com/)
+
+
+
+
+
+
+
+
+
+
+
+
+English readme is under construction.
+
diff --git a/examples/mixtral-vs-alpaca-gpt4rating.md b/examples/mixtral-vs-alpaca-gpt4rating.md
new file mode 100644
index 0000000..39be57e
--- /dev/null
+++ b/examples/mixtral-vs-alpaca-gpt4rating.md
@@ -0,0 +1,86 @@
+# GPT-4 评分细节
+
+注:system1为Chinese-Mixtral-Instruct,system2为Chinese-Alpaca-2-13B。
+
+### 评分输出
+
+**No.1 Prompt:**
+
+- **System 1:** 9/10. This response is informative, well-structured, and covers multiple aspects of Emperor Li Yuan's reign and his significance in Chinese history. It details his reforms, cultural contributions, and diplomatic policies, providing a comprehensive overview.
+- **System 2:** 8/10. This response is also quite good, highlighting Li Yuan's political and military prowess and his contributions to the prosperity of the Tang Dynasty. However, it's slightly less detailed compared to System 1, particularly in terms of specific reforms and cultural achievements.
+
+**No.2 Prompt:**
+- **System 1:** 7/10. The explanation is accurate but somewhat repetitive and lacks clarity in conveying the stages of black hole formation. The description of the process leading to a black hole from a neutron star is correct but could be more concise.
+- **System 2:** 8/10. This response provides a clear and succinct explanation of black hole formation, touching upon key concepts like event horizons and singularities. It also nicely includes the observational aspects of black holes, making the explanation more comprehensive.
+
+**No.3 Prompt:**
+- **System 1:** 9/10. The translation "Drink water and think of the source" is a direct and accurate reflection of the Chinese idiom "饮水思源", capturing its essence.
+- **System 2:** 4/10. The translation "Water is the source of thought" deviates significantly from the original meaning of the idiom, which emphasizes gratitude and remembering one's origins, not a literal connection between water and thought.
+
+**No.4 Prompt:**
+- **System 1:** 8/10. The response provides a thoughtful interpretation of the relationship between Jia Baoyu and Lin Daiyu in "Dream of the Red Chamber", considering it as pure friendship and love while also reflecting on societal constraints. It could, however, delve deeper into the nuances of their relationship.
+- **System 2:** 7/10. This response acknowledges the complexity and multiple interpretations of the relationship, which is a valid approach. However, it lacks a definitive stance and detailed analysis, making it seem somewhat non-committal and less informative.
+
+**No.5 Prompt:**
+- **System 1:** 8/10. This response logically deduces that Xiao Ming's pet might not be a cat based on the given premise, while also wisely noting the limitation of this deduction. It's a cautious yet accurate conclusion.
+- **System 2:** 8/10. Similar to System 1, this response correctly deduces the possibility that Xiao Ming's pet is not a cat, based on the premise. It's clear and logical, though it doesn't acknowledge the potential exceptions as System 1 does.
+
+**No.6 Prompt:**
+- **System 1:** 8/10. This response accurately describes Fermat's Last Theorem and why it was difficult to prove. It correctly mentions the involvement of higher-dimensional integer solutions and the use of complex mathematical tools, highlighting Andrew Wiles' role in its proof. However, it could provide more detail on the specific mathematical concepts involved.
+- **System 2:** 6/10. The explanation of Fermat's Last Theorem is generally correct but contains an error in stating that the theorem involves "positive integer solutions (a, b, c) where a, b, and c are distinct prime numbers." This is not part of the theorem. The response correctly identifies the complexity and the involvement of advanced mathematical concepts in the proof but inaccurately links the theorem to the Riemann Hypothesis and other unsolved problems.
+
+**No.7 Prompt:**
+- **System 1:** 9/10. This response provides a comprehensive overview of cutting-edge AI technologies. It covers a wide range of areas such as deep learning, reinforcement learning, GANs, natural language generation, image generation, TTS, machine translation, autonomous driving, AI in healthcare, and quantum computing. Each technology is briefly but effectively described.
+- **System 2:** 8/10. This response also lists several key areas of advanced AI technologies, including deep learning, reinforcement learning, transfer learning, self-supervised learning, GANs, and quantum computing. However, it is slightly less detailed compared to System 1, especially in explaining the applications and implications of these technologies.
+
+**No.8 Prompt:**
+- **System 1:** 7/10. The response identifies several key differences in dining etiquette between Chinese and Western cultures, such as seating posture, utensil usage, drinking habits, and conversation styles. However, some of the points, like the specific way of sitting or the way of drinking water, are not universally representative of either culture.
+- **System 2:** 6/10. The response correctly identifies differences in utensil usage and mealtime etiquette between Chinese and Western cultures. However, the description of utensil order in Chinese dining and the ritualistic behaviors before eating in Western culture are not entirely accurate, leading to a lower score for accuracy.
+
+**No.9 Prompt:**
+- **System 1:** 8/10. This poetic description captures the essence of spring beautifully with vivid imagery and rhythmic structure. The use of repetition in the first and last stanzas adds a nice touch, although it might be seen as slightly redundant.
+- **System 2:** 9/10. The poem effectively describes the scenery of spring with concise and evocative language, creating a vivid image of the season. It uses a variety of imagery and maintains a consistent rhyme scheme, resulting in a more impactful and cohesive poem.
+
+**No.10 Prompt:**
+- **System 1:** 8/10. This response provides a clear and concise explanation of utilitarianism and its application in modern society. It appropriately discusses its influence on policy-making, business decisions, and moral judgments. However, the explanation could be enhanced with more examples or a deeper exploration of the challenges in applying utilitarian principles.
+- **System 2:** 7/10. The response accurately defines utilitarianism and discusses its applications in government decision-making, business, and personal behavior. However, it lacks depth in exploring the nuances and potential criticisms of utilitarianism, particularly in its application in complex real-world scenarios.
+
+**No.11 Prompt:**
+- **System 1:** 9/10. This explanation of the chi-square test for independence is clear, accurate, and well-structured. It correctly outlines the steps for performing the test, from data collection to result interpretation. The caution about the test's limitations with small sample sizes and its applicability only to categorical variables is a valuable addition.
+- **System 2:** 8/10. The response correctly describes the chi-square test, including determining categories, constructing expected frequency matrices, and calculating the chi-square statistic. However, it slightly misrepresents the need for normal distribution conformity, as the chi-square test applies to categorical data, not necessarily normal distributions. Also, the explanation is a bit less detailed than System 1 in terms of the test's application and interpretation steps.
+
+**No.12 Prompt:**
+- **System 1:** 9/10. The provided Python function correctly implements the task of summing even numbers in a list. The example and output demonstrate the function's correct usage and results. The explanation is clear and the code is well-formatted, making it easy to understand and use.
+- **System 2:** 9/10. This response also correctly provides a Python function to sum even numbers in a list. The function is accurately implemented, and the included example demonstrates its correct application. The explanation is succinct and to the point, effectively communicating the function's purpose and usage.
+
+**No.13 Prompt:**
+- **System 1:** 9/10. The response correctly applies Newton's Second Law of Motion to calculate the acceleration of an object given its mass and the force applied. The explanation is clear, and the step-by-step calculation is accurate, leading to the correct answer of 4 m/s² for the object's acceleration.
+- **System 2:** 9/10. This response also correctly calculates the acceleration of an object using Newton's Second Law, providing a straightforward and accurate explanation. The use of the formula and the calculation steps are clear and concise, leading to the correct result of 4 m/s² for acceleration.
+
+**No.14 Prompt:**
+- **System 1:** 9/10. The response accurately balances the chemical equation for the combustion of propane (C3H8). It correctly identifies the need to balance each element (carbon, hydrogen, and oxygen) and provides a clear, step-by-step process for doing so. The final balanced equation is correct and well-explained.
+- **System 2:** 5/10. This response provides an incorrect approach to balancing the chemical equation. The initial assessment of the atomic composition and the subsequent calculations are flawed, leading to an incorrect balanced equation. The response fails to accurately apply the principles of chemical balancing and stoichiometry.
+
+**No.15 Prompt:**
+- **System 1:** 6/10. This explanation of the Internal Rate of Return (IRR) has some inaccuracies. The method of calculating IRR using different discount rates and aiming for a net present value of zero is correct. However, the example provided is misleading. The example calculation seems to misunderstand the concept of discounting cash flows and incorrectly applies percentages to future cash flows. The IRR is typically found using financial calculators or software as it involves solving a polynomial equation.
+- **System 2:** 7/10. The description of IRR is generally correct, emphasizing its role in equating the net present value to zero. The basic concepts are well explained, including cash flow forecasts, discount rates, and NPV. However, the example provided is not entirely clear in demonstrating how to calculate the IRR. It simplifies the calculation process and does not accurately reflect the complexity involved in finding the IRR for a given set of cash flows.
+
+**No.16 Prompt:**
+- **System 1:** 8/10. The provided Caesar cipher text and its decryption method are correct. The decryption method described is accurate for a Caesar cipher with a shift of 3, and the explanation is clear and straightforward. However, the additional step of converting uppercase to lowercase letters is unnecessary for the decryption process itself and might lead to confusion, as the Caesar cipher traditionally does not distinguish between letter cases.
+- **System 2:** 8/10. This response also correctly explains the Caesar cipher and its decryption method. The given example demonstrates how to decrypt a text encrypted with a Caesar cipher by shifting each letter by the predetermined number of positions. The explanation is clear and directly applicable to the Caesar cipher. However, the explanation of mapping "khoor" to "e" then "h" is slightly confusing, as "k" directly maps to "h" with a backward shift of 3 positions.
+
+**No.17 Prompt:**
+- **System 1:** 7/10. The response provides an accurate explanation of the Fibonacci sequence and an appropriate algorithm to generate the first 10 numbers. The iterative approach used in the provided Python code is efficient and clear. However, the algorithm could be optimized to avoid recalculating the sequence for each number up to 10.
+- **System 2:** 5/10. The explanation of the Fibonacci sequence is correct, but the provided algorithm uses a recursive approach, which is highly inefficient for calculating the first 10 Fibonacci numbers. Recursion in this case leads to many redundant calculations, making it less suitable for larger numbers. The approach lacks optimization and is not practical for generating a simple sequence of Fibonacci numbers.
+
+**No.18 Prompt:**
+- **System 1:** 9/10. This response correctly outlines the use of the Haversine formula to calculate the great-circle distance between two points given their latitude and longitude. The provided Python code accurately implements the formula and includes the necessary mathematical functions. The explanation is clear, and the step-by-step process is well presented. The only minor issue is the lack of an explicit mention that the Haversine formula assumes a spherical Earth, which can introduce small errors for precise distance measurements.
+- **System 2:** 3/10. The formula provided by this system for calculating the great-circle distance between two points based on latitude and longitude is incorrect. The formula `distance = 2 * asin(sqrt((x1 - x2)**2 + (y1 - y2)**2))` does not correctly apply to spherical geometry and does not account for the Earth's curvature. This response fails to accurately represent the method for calculating the great-circle distance.
+
+**No.19 Prompt:**
+- **System 1:** 9/10. This response accurately explains Ohm's Law, including the relationship between voltage (V), current (I), and resistance (R). The example provided is practical and effectively demonstrates how to apply Ohm's Law to calculate the current in a circuit. The explanation is clear and accurate, making it easy to understand how to use Ohm's Law in practical scenarios.
+- **System 2:** 9/10. Similar to System 1, this response also correctly explains Ohm's Law and its application in calculating current in a circuit. The given example is relevant and demonstrates the practical application of the law. The explanation is well-structured and clear, making the concept accessible for those unfamiliar with electrical principles.
+
+**No.20 Prompt:**
+- **System 1:** 8/10. This explanation of the t-test for comparing the means of two independent samples is thorough and accurate. It correctly outlines the steps involved in conducting a t-test, including hypothesis setup, calculation of the t-statistic, and interpretation of results. The explanation of when to use the t-test is also appropriate, highlighting scenarios where it is applicable. However, a more detailed explanation of the assumptions underlying the t-test, such as the assumption of normal distribution and equal variances, could enhance the response.
+- **System 2:** 8/10. This response also provides a correct and comprehensive explanation of the t-test, including the steps involved in performing the test and interpreting its results. The formula for the t-statistic is accurately presented, and the explanation of how to use the t-test is clear. Similar to System 1, it could benefit from a more detailed discussion on the assumptions of the t-test, such as normal distribution and homogeneity of variances, which are crucial for the test's validity.
\ No newline at end of file
diff --git a/examples/mixtral-vs-alpaca.md b/examples/mixtral-vs-alpaca.md
new file mode 100644
index 0000000..f686bfe
--- /dev/null
+++ b/examples/mixtral-vs-alpaca.md
@@ -0,0 +1,52 @@
+# Chinese-Mixtral-Instruct v.s. Chinese-Alpaca-2-13B
+
+为了最大程度减少人为因素干扰,**问题和评分均由GPT-4完成**。
+
+参评模型为:Chinese-Mixtral-Instruct(Q4_0)、Chinese-Alpaca-2-13B(Q8_0)
+
+## 分数表
+
+### 第一组
+
+| | 平均 | #1 | #2 | #3 | #4 | #5 | #6 | #7 | #8 | #9 | #10 |
+| ------------------------ | :-----: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
+| Chinese-Mixtral-Instruct | **8.1** | 9 | 7 | 9 | 8 | 8 | 8 | 9 | 7 | 8 | 8 |
+| Chinese-Alpaca-2-13B | **7.0** | 8 | 8 | 4 | 7 | 8 | 6 | 7 | 6 | 9 | 7 |
+
+### 第二组
+
+| | 平均 | #11 | #12 | #13 | #14 | #15 | #16 | #17 | #18 | #19 | #20 |
+| ------------------------ | :-----: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
+| Chinese-Mixtral-Instruct | **8.3** | 9 | 9 | 9 | 9 | 6 | 8 | 7 | 9 | 9 | 8 |
+| Chinese-Alpaca-2-13B | **7.1** | 8 | 9 | 9 | 5 | 7 | 8 | 5 | 3 | 9 | 8 |
+
+### 总平均分
+
+- Chinese-Mixtral-Instruct:**8.20**
+- Chinese-Alpaca-2-13B:7.05
+- GPT-4的详细评分结果见:[💯 GPT-4打分细节](./mixtral-vs-alpaca-gpt4rating.md)
+
+## 输出结果
+
+| # | Prompt | Chinese-Mixtral-Instruct | Chinese-Alpaca-2-13B |
+| ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| 1 | 请简述唐朝的开国皇帝是谁?他为何重要? | 唐朝的开国皇帝是李渊,他于618年建立了唐朝。李渊在位期间实行了一系列改革政策,使得唐朝经济繁荣、文化昌盛,对中国历史产生了重要影响。
李渊是隋末时期的一位军事将领,他在隋末乱世中崭露头角,并与其他势力展开斗争。617年,李渊发动了起义,推翻了隋朝的统治,建立了唐朝。
李渊在位期间实施了一系列改革政策,包括减轻农民负担、废除苛刻的税收制度、加强中央集权等。这些改革政策促进了经济发展和社会稳定,使得唐朝成为一个繁荣富强的国家。
李渊还重视文化教育,他亲自主持编写《大唐律令》,规范了法律制度;他还设立了官学和书院,推动了科举制度的发展,培养了一批优秀的人才。
李渊在位期间还进行了一系列外交政策,与周边国家建立友好关系,扩大了唐朝的影响力和地缘政治地位。
总之,李渊是唐朝开国皇帝,他通过实施改革政策、重视文化教育以及进行外交政策等方面的努力,使得唐朝经济繁荣、文化昌盛,对中国历史产生了重要影响。 | 唐朝的开国皇帝是李渊,他是中国历史上著名的政治家和军事将领。他于公元618年建立了唐朝,结束了隋朝的统治,开创了一段长达280多年的繁荣时期。
李渊在统一中国的过程中扮演着重要的角色。他在战争中表现出色,并通过一系列明智的政策和改革巩固了自己的权力。他还重视文化事业的发展,推动佛教、道教等宗教信仰的传播,促进了社会的和谐与进步。此外,他积极推行科举制度,扩大了官员选拔范围,使得更多的有才能的人能够参与政治事务。
李渊对于唐朝的开国具有重要意义,他的领导才智和战略眼光使唐朝得以建立并发展壮大。他还为中国的历史留下了深远的影响,成为了中国历史上重要的人物之一。 |
+| 2 | 解释一下黑洞是如何形成的? | 黑洞是由质量极大的物体引力塌缩而成的。当一个恒星耗尽了其核心燃料,核心内部的压力无法支持它的重量时,它就会发生坍缩。如果这个恒星足够大,它的引力将变得非常强大,以至于连光也无法逃脱其引力范围。这样的区域被称为黑洞事件视界,因为从那里发出的信号永远无法到达外部观测者。
黑洞形成的过程可以分为两个主要阶段:恒星坍缩和引力塌缩。在恒星坍缩阶段,当一个恒星耗尽其核心燃料时,核心内部的压力无法支持它的重量,导致恒星开始坍缩。如果这个恒星足够大,坍缩过程会变得非常快速和强烈,形成一个极度密集的物体,称为中子星。
然而,如果恒星质量超过了一定阈值(称为托尔曼质量),它的引力将变得非常强大,以至于连光也无法逃脱其引力范围。这时,中子星会进一步坍缩成一个更小、更密集的物体,称为黑洞。
黑洞形成后,它会继续吸收周围物质,增加自身的质量和引力。当其他恒星或气体云靠近黑洞时,它们被黑洞的强大引力吸入,并最终被压缩成极小的空间区域,称为黑洞事件视界。
总之,黑洞是由质量极大的物体引力塌缩而形成的,当恒星耗尽其核心燃料时,它会发生坍缩,如果质量足够大,就会形成黑洞。 | 黑洞是由极其密集的物体(通常是一个恒星)在极端条件下坍缩而成。当一个足够大的质量集中在一个非常小的空间中时,引力会变得异常强大,以至于它能够吞噬周围的一切物质和光线。这种极度强大的引力场使得任何东西都无法逃脱,因此形成了一种“事件视界”:一旦进入这个区域内的物体,就无法再被观测到或逃离黑洞。
具体而言,当一个恒星耗尽了它的核心燃料(核聚变)时,它会逐渐失去重力支撑并开始坍缩。如果该星体的质量足够大,就会形成一个密度极高、引力极强的区域,称为“奇点”。在这个区域内,空间和时间都变得异常扭曲,甚至连光也无法逃脱。
黑洞的存在可以通过观测其周围物体的运动来证实。当物质进入黑洞的事件视界时,它会以极快的速度旋转并释放出大量的能量,形成一个被称为“吸积盘”的区域。这个吸积盘中的物质被加热到极高温度,然后发出强烈的X射线和伽马射线等电磁辐射。这些辐射可以被地球上的望远镜捕捉到,从而确定黑洞的存在。
总的来说,黑洞是由极度密集物体坍缩形成的极端引力场,它具有“事件视界”的特点,吞噬周围的一切物质和光线,并释放出强大的能量。 |
+| 3 | 怎样用英语表达“饮水思源”? | “饮水思源”可以用英文表达为“Drink water and think of the source.” | “Water is the source of thought.” |
+| 4 | 《红楼梦》中,贾宝玉和林黛玉的关系代表了什么? | 在《红楼梦》中,贾宝玉和林黛玉的关系被视为一种纯洁、深情的友谊。他们之间没有任何世俗的婚姻约束,而是相互理解、支持和依赖。这种友谊代表了人与人之间真正的情感联系,超越了家族、地位和利益等外在因素。
贾宝玉和林黛玉的关系也被视为一种纯洁的爱情。他们之间有着深厚的感情基础,相互欣赏、尊重和关心对方。然而,由于家族背景和社会规范的限制,他们无法正式地成为夫妻,只能在友谊中寻找安宁和幸福。
此外,贾宝玉和林黛玉的关系还代表了一种对传统社会价值观的质疑。他们不愿意被束缚在婚姻和家族利益之中,而是追求自由、真实和平等的爱情。这种关系反映了作者对封建社会的批判和对个人情感的尊重。
总之,贾宝玉和林黛玉的关系代表了一种纯洁、深情的友谊和爱情,同时也反映了作者对传统社会价值观的质疑和对个人情感的尊重。 | 《红楼梦》中的贾宝玉和林黛玉关系是小说中最为重要的情感线索之一。他们的关系可以被解读为爱情、友情或某种更深层次的情感联系。然而具体而言,这个问题并没有一个确定的答案,因为每个人的观点和理解都会不同。以下是一些可能的观点:
1. 爱情:许多人认为贾宝玉和林黛玉之间的感情是一种真挚的爱情。他们之间有着深厚的感情基础,并经历了许多困难和挑战。尽管他们的关系最终以悲剧收场,但它仍然被认为是小说中最为动人的情感故事之一。
2. 友情:也有人将贾宝玉和林黛玉的关系视为一种纯正而深刻的友谊。他们在一起度过了许多时光,相互扶持、关心和理解对方。他们之间的感情是基于真诚和互相尊重而非浪漫爱情的基调。这种观点认为,他们的关系超越了传统的男女情感联系,是一种纯粹的朋友关系。
3. 某种更深层次的情感联系:还有一些人将贾宝玉和林黛玉的关系解读为一种超脱于爱情和友情之外的情感连接。他们之间的感情是复杂而难以定义的,可能涉及心灵层面上的共鸣、共同经历或命运的交织等。这种观点认为他们的关系代表了人性中的某种深层内在的需求和渴望,超越了传统的社会规范和道德准则。
总之,贾宝玉与林黛玉的关系是一个充满争议的话题,不同的人会有着不同的解读和看法。 |
+| 5 | 如果所有的猫都怕水,而小明家的宠物不怕水,那么小明家的宠物可能不是猫吗? | 是的,根据你给出的条件,小明家的宠物很有可能不是猫。因为如果所有的猫都怕水,而小明家的宠物不怕水,那么它就不符合猫这个类别的特征。但是需要注意的是,这只是一个推理过程中的可能性,并不能完全确定小明家的宠物不是猫。 | 这个假设是正确的。如果所有的猫都怕水,但小明家有一只宠物不惧怕水,那么这只宠物很可能不是猫。因为根据这个前提条件,所有猫都有怕水的特征,因此只有那些不符合该特征的动物才能成为小明家的宠物。 |
+| 6 | 解释一下费马大定理是什么,并且为什么它难以证明? | 费马大定理是一个数学问题,由法国数学家皮埃尔·德·费马于17世纪提出。该定理声称:对于任何正整数n大于2,方程x^n + y^n = z^n没有正整数解。
这个问题在数学界引起了广泛的关注和研究,因为它看似简单易懂,但证明却非常困难。费马大定理的难度在于它涉及到高维空间中的整数解,而且需要使用复杂的数学工具和技术来进行证明。
直到20世纪末,英国数学家安德鲁·瓦尔斯才成功地证明了费马大定理。他使用了一种称为模形式的复杂数学方法,通过将问题转化为一个更简单的形式来解决它。
费马大定理的证明是数学史上的重要里程碑之一,因为它展示了数学家们如何运用创新的思维和技术来解决复杂问题。 | 费马大定理是一个关于整数的数学问题,由法国数学家皮埃尔·德·费马在17世纪提出。它的完整形式如下:
对于任意大于2的自然数n,当且仅当a^n + b^n = c^n成立时,都有一个正整数解(a,b,c)满足a、b和c是不同的素数(即没有公因子)。
费马大定理之所以难以证明是因为它的形式非常复杂,涉及到大量的数学概念和技巧。此外,它还涉及了复杂的代数结构和几何问题,需要深入理解数学的高级理论。因此,费马大定理在历史上被认为是一个极其困难的问题,直到1995年才由安德鲁·怀尔斯通过现代计算机技术成功证明。
虽然费马大定理已经被证明,但它的性质仍然具有重要的意义,因为它与许多其他数学问题相关联,例如黎曼猜想和数论中的其他未解之谜。因此,费马大定理的难度仍然是一个挑战性的课题,吸引了数学家的广泛兴趣和研究。 |
+| 7 | 目前最前沿的人工智能技术是什么? | 目前最前沿的人工智能技术包括以下几个方面:
1. 深度学习(Deep Learning):利用大规模神经网络进行图像、语音和自然语言处理等任务,取得了在计算机视觉、语音识别和自然语言处理领域的重要突破。
2. 强化学习(Reinforcement Learning):通过与环境交互并获得奖励信号来训练智能体,实现人工智能在复杂决策问题上的优秀表现。
3. 生成对抗网络(Generative Adversarial Networks, GANs):通过两个神经网络相互竞争来生成逼真的图像、音频和文本等内容,具有广泛的应用前景。
4. 自然语言生成(Natural Language Generation, NLG):利用深度学习模型生成高质量的文本,包括新闻报道、电子邮件和对话等。
5. 图像生成(Image Generation):通过深度学习模型生成逼真的图像,如GANs和变分自编码器(Variational Autoencoders, VAEs)等技术。
6. 语音合成(Text-to-Speech, TTS):将文本转换为自然流畅的语音,利用深度学习模型实现高质量的语音合成。
7. 机器翻译(Machine Translation):使用神经网络进行多语言翻译,如Transformer和BERT等模型取得了在翻译任务上的显著改进。
8. 自动驾驶技术(Autonomous Driving):利用深度学习和计算机视觉技术实现车辆的自主导航和决策,包括目标检测、路径规划和交通场景理解等。
9. 人工智能在医疗领域的应用:利用深度学习模型进行疾病诊断、药物发现和个性化治疗等方面的研究。
10. 量子计算(Quantum Computing):利用量子比特(qubits)进行计算,可以在某些问题上实现指数级加速,如优化、模拟和密码学等领域。
这些技术正在不断发展和创新,为人工智能的应用带来更多的潜力和机会。 | 当前最前沿的人工智能技术包括以下几个方面:
1. 深度学习和神经网络:这是人工智能领域中最热门的技术之一,通过模拟人类大脑的神经元连接方式来实现机器学习。它被广泛应用于图像识别、语音识别、自然语言处理等领域。
2. 强化学习:这是一种以奖励为导向的学习方法,通过与环境互动并根据反馈进行调整和优化决策策略。它在游戏、机器人控制等场景中得到广泛应用。
3. 迁移学习:它是一种利用已训练好的模型来加速新任务学习的方法。它可以提高模型的泛化能力和效率,减少对数据的需求。
4. 自监督学习:这是一种通过自身数据进行学习的人工智能方法,不需要人工标注的数据即可进行学习和预测。它在计算机视觉、自然语言处理等领域取得了不错的效果。
5. 对抗网络(GAN):它是一种生成模型的学习方法,可以根据输入样本生成与之相似的新样本。它的应用包括图像生成、图像修复等。
6. 量子计算:这是一项研究领域,通过利用量子力学原理来实现大规模并行处理和优化算法,有望在某些特定任务上取得更高的性能。
这些技术正在不断地发展和创新,未来还有很大的潜力和发展前景。 |
+| 8 | 中西方在餐桌礼仪上有哪些主要的不同? | 中西方在餐桌礼仪上有一些主要的不同之处,以下是一些常见的例子:
1. 坐姿:在西方,人们通常坐直,双脚并排放在地面上。而在中国,人们通常盘腰坐着,双腿交叉或者一只腿伸出来。
2. 餐具使用:在西方,刀和叉是主要的餐具,用于切割食物并将其送入口中。而在中国,人们通常使用筷子,用于夹取食物并送入口中。
3. 喝水:在西方,人们通常直接用手拿起杯子喝水。而在中国,人们通常将杯子举到嘴边,然后轻轻地倾斜杯子喝水。
4. 吃面食:在西方,面条通常被切成短段,用叉子夹起来吃。而在中国,人们通常将面条卷起来,然后用筷子夹起来吃。
5. 餐桌交谈:在西方,人们通常在用餐时会进行轻松的聊天和交流。而在中国,人们通常更注重尊重长辈和上级,不太容易主动发表意见或者提出问题。
6. 吃饭速度:在西方,人们通常会比较快地吃饭,因为他们通常有很多事情要做。而在中国,人们通常会慢慢地吃饭,享受用餐的过程。
7. 宴会礼仪:在西方,宴会上通常会有一些特定的礼仪和规矩,例如主人或者女士先开始吃饭等。而在中国,宴会上通常更注重尊重长辈和上级,主人或者长辈先开始吃饭。
这些只是一些常见的不同之处,实际上还有很多其他方面的差异。无论在哪个文化中,餐桌礼仪都是重要的社交规范和行为准则,能够展示一个人的教养和尊重。 | 中西方在餐桌礼仪上存在一些主要差异。以下是其中的一些例子:
1. 餐具使用顺序:在中国,通常按照从外到内的顺序使用餐具,即先用汤碗、接着是主菜和配菜盘子等;而在西方国家,一般按照由内而外的顺序使用餐具,如先用餐叉或刀叉,然后是勺子。
2. 吃饭的方式:在中国,人们通常将食物直接放在筷子上夹起来食用,有时也会用手抓取一些小食品;而在西方,人们则会将食物放在盘子、碗中,再使用刀叉切割和进食。
3. 餐桌上的礼仪动作:在中式餐桌上,人们通常会用筷子端起菜肴来分享给其他人,或者用勺子舀起汤汁或饮料来喝起来;而在西方餐桌上,人们则不太习惯直接将食物传递给别人,而是通过使用刀叉来切割和分食。
4. 吃饭的时间:在中国文化中,饭前通常会进行一些礼貌性的问候、致谢等礼仪动作,并等待主持人的指令后才开始进食;而在西方国家,一般没有这样的仪式性行为,人们可以直接开始用餐。
这些只是其中的一些例子,具体的差异可能因地区和个人习惯而有所不同。 |
+| 9 | 请用诗的形式描述一下春天的景色。 | 春风拂面,花开满园,
绿草如茵,鸟儿欢唱。
阳光明媚,万物复苏,
春意盎然,美景无限。
桃李红润,杏梅香甜,
花海如画,色彩斑斓。
蝴蝶飞舞,蜜蜂采蜜,
春天的景色,美不胜收。
溪水潺潺,山峦起伏,
绿树成荫,鸟儿欢歌。
春雨润物,生机勃发,
春天的景色,美丽如画。
春风拂面,花开满园,
绿草如茵,鸟儿欢唱。
阳光明媚,万物复苏,
春意盎然,美景无限。 | 春日花开满山坡,阳光温暖照大地。
蝴蝶飞舞翩翩起,鸟语啁啾乐无边。
绿草如茵绵延远,春风拂面心舒畅。
万物复苏生机旺,春天美景在眼前。 |
+| 10 | 什么是功利主义?它在现代社会中的应用如何? | 功利主义是一种伦理学观点,认为行为的正确性取决于其能够产生最大的幸福或最小的痛苦。它强调了个人和社会应该追求最大化幸福的原则。
在现代社会中,功利主义的应用可以体现在政策制定、决策过程和道德判断等方面。例如:
1. 政策制定:政府在制定政策时,可能会考虑其对整个社会幸福的影响。他们可能会采取措施来提高公共卫生、教育和经济发展等方面的幸福指数。
2. 决策过程:在商业领域,企业可能会考虑其决策对消费者和员工的幸福产生的影响。他们可能会采取措施来提高客户满意度、员工福利和社会责任等方面的幸福指数。
3. 道德判断:个人在做出道德决策时,可能会考虑其对他人幸福的影响。他们可能会采取行动来帮助他人、减少痛苦或提供支持等方面的幸福指数。
总之,功利主义在现代社会中的应用是通过追求最大化幸福的原则来影响政策制定、决策过程和道德判断等方面的行为。 | 功利主义是一种伦理学理论,认为行为的正确性应该根据其对个体或整个社会的利益最大化来衡量。换句话说,一个行为被认为是正确的,如果它能够带来最大的利益,而另一个行为则被认为是错误的,因为它带来的利益较小。这种观点强调了“最大幸福原则”,即追求个人和群体的最大幸福感。
在现代社会中,功利主义的应用非常广泛。以下是一些例子:
1. 政府决策制定:政府官员经常使用功利主义来评估政策的效果。他们会考虑一个政策的潜在利益,并决定是否实施该政策以最大程度地提高公众福祉和福利水平。例如,政府可能会通过提供医疗保险或教育补贴等措施来改善人们的生活质量。
2. 商业决策制定:企业也经常使用功利主义来评估其行动的效果。他们会考虑一个决策是否会带来最大的经济利益,并决定是否实施该决策以实现最大化利润的目标。例如,一家公司可能选择投资研发新技术或扩大市场份额来提高盈利能力。
3. 个人行为决策:个体也会根据功利主义的思想来做出自己的行为决策。人们可能会权衡各种行动的利弊,然后选择最能带来最大利益的行为。例如,一个人在购物时会比较不同商品的价格和质量,并决定购买哪个产品以获得最大的价值。
总之,功利主义是一种关注结果、追求最大化利益的伦理观点,它在现代社会中被广泛应用于政府决策制定、商业决策以及个人行为决策等方面。 |
+| 11 | 请解释如何使用卡方检验(Chi-square test)来分析两个分类变量之间的独立性。 | 卡方检验是一种统计方法,用于检验两个分类变量之间是否独立。它通过比较观测值与期望值之间的差异来判断变量之间是否存在关联。
以下是使用卡方检验分析两个分类变量之间独立性的步骤:
1. 收集数据:首先需要收集包含两个分类变量的数据。例如,可以有一个样本数据集,其中包括年龄(成人或儿童)和性别(男性或女性)两个分类变量。
2. 构建交叉表:将收集到的数据组织成一个交叉表格,其中一列为一个变量,另一列为另一个变量。在这个例子中,可以创建一个年龄和性别的交叉表格。
3. 计算观测频数:对于每个单元格,计算实际观测到的频数。在这个例子中,可以计算成人男性、成人女性、儿童男性和儿童女性的观测频数。
4. 计算期望频数:根据样本总数和每个单元格的观测频数,计算期望频数。期望频数是指如果两个变量独立,则应该观察到的频数。可以使用公式:期望频数 = (行总频数 * 列总频数) / 样本总数。
5. 计算卡方值:对于每个单元格,计算观测频数与期望频数之间的差异的平方,然后除以期望频数。将所有单元格的结果相加得到卡方值。
6. 判断显著性:使用卡方分布表或计算机软件来查找与样本大小和自由度相对应的临界值。如果卡方值大于临界值,则可以拒绝独立性假设,认为两个变量之间存在关联;否则,接受独立性假设,认为两个变量之间不存在关联。
7. 解释结果:根据卡方检验的结果,可以得出两个分类变量是否相互独立的结论。如果拒绝独立性假设,则说明两个变量之间存在关联;如果接受独立性假设,则说明两个变量之间不存在关联。
请注意,卡方检验只能用于分类变量之间的关联分析,而不适用于连续变量。此外,卡方检验对于样本大小较小时可能会出现偏差,因此需要谨慎使用。 | 卡方检验是一种用于比较观察值与期望值之间差异的统计方法,常用于评估两组数据是否具有显著差异或相关性的统计工具。在应用于分析两个分类变量之间的独立性时,可以使用以下步骤进行操作:
1. 确定类别和频率分布:首先需要明确所要分析的两个分类变量及其对应的观测值(即样本数量)。然后计算每个类别的频率,也就是观察到该类别出现的次数与总样本数的比例。
2. 构建预期频率矩阵:根据已知的总体数据或假设模型,可以预测出各个类别在整个总体中所占的概率。将这些概率乘以相应的观测值(即样本数量)得到期望频率,然后将其排列成一个方阵。
3. 计算卡方统计量:通过对观察到和预期的频率进行比较,计算出卡方统计量(也称为卡方检验的度量)。该统计量表示两个分类变量之间差异的大小,一般使用卡方值来衡量。
4. 判断显著性水平:根据设定的显著性水平(通常为0.05或0.01)和样本大小确定是否拒绝原假设(即两组数据之间不存在相关性的假设)。如果卡方统计量超过临界值,则可以拒绝原假设并认为存在独立性问题;反之,则无法拒绝原假设。
需要注意的是,在进行卡方检验时需要满足一定的条件才能得出可靠的结果。例如,样本大小应该足够大,且观测数据应该符合正态分布或近似正态分布的情况。此外,还需要考虑对缺失值和异常值的处理方法以及选择合适的统计显著性水平等。 |
+| 12 | 写一个Python函数,输入是一个整数列表,输出是这个列表中所有偶数的和。 | 当然可以!下面是一个实现该功能的Python函数:
```python
def sum_of_even_numbers(numbers):
even_sum = 0
for num in numbers:
if num % 2 == 0:
even_sum += num
return even_sum
```
你可以使用这个函数来计算一个整数列表中所有偶数的和。例如:
```python
numbers = [1, 2, 3, 4, 5, 6]
even_sum = sum_of_even_numbers(numbers)
print("Sum of even numbers:", even_sum)
```
输出结果为:
```
Sum of even numbers: 12
```
这个函数遍历整数列表中的每个元素,如果是偶数,则将其加入到一个变量 `even_sum` 中。最后返回 `even_sum` 作为结果。 | 可以使用以下代码来实现:
```python
def sum_even(nums):
even_sum = 0
for num in nums:
if num % 2 == 0:
even_sum += num
return even_sum
```
这个函数接受一个整数列表 `nums`,然后遍历列表中的每个元素。如果当前元素是偶数,则将其加入到`even_sum`变量中并累加起来;否则,继续迭代下一个元素。最后返回`even_sum`变量的值,即所有偶数的和。
示例:
```python
nums = [1, 2, 3, 4, 5]
print(sum_even(nums)) # 输出: 6
``` |
+| 13 | 根据牛顿第二定律(F=ma),如果一个物体的质量是5公斤,且受到20牛顿的力,它的加速度是多少? | 根据牛顿第二定律(F = ma),物体所受的合外力等于其质量乘以加速度。因此,可以通过将给定的力和质量代入公式来计算加速度。
在这种情况下,我们有:
- 质量 m = 5 kg
- 受到的力 F = 20 N
根据牛顿第二定律,可以得出以下方程式:
F = ma
20 N = (5 kg) * a
将给定的值代入方程式中,解出加速度 a:
a = F / m
a = 20 N / 5 kg
a = 4 m/s²
因此,这个物体的加速度为 4 m/s²。 | 根据牛顿第二定律,可以计算出这个物体的加速度:
F = ma
a = F / m
将给定的数据代入公式中得到:
a = 20 / 5 = 4m/s^2
因此,该物体的加速度是4米每秒平方。 |
+| 14 | 平衡以下化学反应方程式:C3H8 + O2 → CO2 + H2O。 | 要平衡化学反应方程式,需要确保在反应前后的原子数量相等。在这个例子中,我们可以通过添加系数来平衡方程式。
首先,我们可以看到 C3H8 和 O2 是反应物,CO2 和 H2O 是产物。我们需要确保在反应前后,碳(C)、氢(H)和氧(O)的原子数量相等。
1. 平衡碳(C)原子数量:
- 反应物中有 3 个碳原子,因此我们需要添加一个系数来平衡 CO2 中的碳原子数量。
- 将 CO2 的系数改为 3,方程式变为:C3H8 + O2 → 3CO2 + H2O。
2. 平衡氢(H)原子数量:
- 反应物中有 8 个氢原子,因此我们需要添加一个系数来平衡 H2O 中的氢原子数量。
- 将 H2O 的系数改为 4,方程式变为:C3H8 + O2 → 3CO2 + 4H2O。
3. 平衡氧(O)原子数量:
- 反应物中有 2 个氧原子,因此我们需要添加一个系数来平衡 O2 中的氧原子数量。
- 将 O2 的系数改为 5,方程式变为:C3H8 + 5O2 → 3CO2 + 4H2O。
现在,方程式已经平衡了。我们可以通过计算反应前后各原子的总数来验证方程式是否平衡。
- 反应前:C3H8 + O2
- C原子数量:3
- H原子数量:8
- O原子数量:2
- 反应后:3CO2 + 4H2O
- C原子数量:3 × 1 = 3
- H原子数量:4 × 2 = 8
- O原子数量:3 × 2 + 4 × 1 = 10
可以看到,反应前后各原子的总数相等,因此方程式已经平衡。 | 要平衡这个化学反应方程式,我们需要根据化学计量关系来确定每个物质的摩尔数和系数。
首先,我们可以通过观察方程式中各物种在反应前后的原子数目来判断它们是否满足化学计量原则(即每种元素参与反应时所用的数量相等):
1. C3H8 中含有 6个碳、24个氢,O2 含有 2个氧。因此,C3H8 + O2 中每个C原子与一个O原子结合了 6/2 = 3 次,每个H原子与一个O原子结合了 24/2 = 12 次。
2. CO2 中含有 2个碳、2个氧,H2O 中含有 1个氢和1个氧。因此,CO2 + H2O中每个C原子与一个O原子结合了 2/2 - 3 = -1 次,每个O原子分别参与了 2/2 * 6 = 3 次反应。
根据上述计算结果,我们可以得出方程式的平衡条件:
- C3H8 + 3O2 → CO2 + H2O
这个方程式满足化学计量原则,因为在反应前后各物种所用的原子数相等。接下来,我们需要确定每个物质的摩尔数和系数,以使方程式达到平衡状态。
为了平衡这个方程式,我们可以根据反应前后的物质量来进行调整:
- C3H8 摩尔质量为46.07g/mol,所以在反应中使用1 mol C3H8需要消耗46.07 g的C3H8。
- O2 摩尔质量为32.00 g/mol,因此在反应中使用1 mol O2需要消耗32.00 g的O2。
通过计算,我们可以得到:
平衡方程式:
C3H8 + 7/4 * 32.00 = CO2 + H2O
或者更简写为:
C3H8 + 19.25 = CO2 + H2O
这个方程式表示在反应中使用1 mol C3H8需要消耗19.25 g的O2,并且与CO2和H2O中的摩尔数相等。因此,该平衡方程式满足化学计量原则并达到了平衡状态。 |
+| 15 | 解释内部收益率(IRR)的计算方法,并举例说明如何用它评估一项投资的盈利性。 | 内部收益率(IRR)是一种衡量投资项目盈利性的指标。它表示在某个时间点上,投资项目的净现值为零时的折现率。简单来说,IRR就是投资项目的年化收益率。
计算IRR的方法如下:
1. 首先,确定投资项目的现金流量,包括投资初期的现金支出和未来的现金收入。
2. 然后,将这些现金流量折现到投资项目开始时的时间点上。可以使用不同的折现率进行计算,以找到最佳折现率。
3. 当所有现金流量折现到投资项目开始时的时间点后,将其净现值为零时的折现率作为IRR。
举例说明如何用IRR评估一项投资的盈利性:
假设有一个投资项目,需要支付10万元的初始投资,并在未来3年内获得以下现金流量:
- 第1年:5万元
- 第2年:8万元
- 第3年:12万元
我们可以使用不同的折现率进行计算,找到最佳折现率。假设我们使用了20%、30%和40%三种折现率进行计算。
首先,我们将这些现金流量折现到投资项目开始时的时间点上:
- 第1年:5万元 * (1+20%) = 6万元
- 第2年:8万元 * (1+20%)^2 = 11.2万元
- 第3年:12万元 * (1+20%)^3 = 19.44万元
现在,我们将这些折现后的现金流量净现值为零时的折现率作为IRR。假设我们找到了一个折现率使得投资项目的净现值为零,那么这个折现率就是IRR。
通过计算,我们可以发现当折现率为30%时,投资项目的净现值为零。因此,IRR为30%。
根据IRR的结果,我们可以评估这个投资项目的盈利性。如果市场上有其他类似的投资机会,我们可以将它们与这个投资项目进行比较,选择具有更高IRR的投资项目。
需要注意的是,IRR只是一种衡量盈利性的指标,并不能完全代表一个投资项目的风险和收益。在进行实际投资决策时,还应该考虑其他因素,如市场环境、竞争情况等。 | 内部收益率(Internal Rate of Return,简称为IRR)是一种用于评估一个项目或投资收益的方法。它是通过确定一个折现率使现金流量净额等于零来计算的投资回报率。
下面是一些基本概念和计算方法:
1. 现金流量预测(Cash Flow Forecast):需要对一项投资的未来现金流进行预测,包括收入、支出和其他费用。这些现金流可以是一次性或定期支付。
2. 折现率(Discount Rate):这是用来将未来的现金流转换为当前价值的一个利率。通常用于估算项目的风险和不确定性。折现率越高,表示对风险更敏感的投资回报率也更高。
3. NPV(Net Present Value,简称NPV):是通过将未来现金流的现值相加来计算投资回报的方法。它考虑了时间的价值,并能够比较不同项目或投资机会之间的盈利能力。
4. IRR:它是通过确定折现率使净现金流量等于零来计算的投资回报率。当IRR大于预期收益率时,该项投资被认为是有利可图的;反之则说明这个项目不值得进行。
举个例子来说明如何使用内部收益率评估一项投资的盈利性:
假设你正在考虑购买一台新车,需要支付20,000美元的价格和每年3,000美元的维护费用。然而,这辆车预计将为您带来15,000美元的额外收入(包括租赁、共享经济等)。为了评估这项投资是否值得进行,我们可以使用内部收益率计算方法:
1. 预测现金流量:新车购买价格为20,000美元;每年3,000美元的维护费用和预计获得的15,000美元收入。
2. 折现率:假设我们对这个投资有较高的风险敏感,因此选择一个高折扣利率来估算未来的现金流量。例如,设定为8%。
3. NPV计算:使用未来现金流量预测(20,000 - 3,000)/ (1 + .08)^n = 5,634美元(以第n年后的现值来表示)。将这个结果与购买价格相减,即净现值为-14,366美元。
4. IRR计算:使用折现率找到使净现金流量等于零的利率。在本例中,这将是0.08(或8%)。
通过以上步骤,我们可以得出内部收益率为8%,即这个项目的投资回报率是8%。这意味着购买新车是一个有利可图的投资,因为IRR高于预期收益率。 |
+| 16 | 给出一段简单的凯撒密码文本,并提供解密方法。 | 好的,以下是一段简单的凯撒密码文本:
"Khoor zruog fvpx hc gur ynml qbt"
解密方法如下:
1. 将每个字母向后移动3位,即将A变为D,B变为E,C变为F等。
2. 对于大写字母,将其转换为小写字母。
3. 对于空格和标点符号,保持不变。
解密后的文本是:"Hello world this is a simple Caesar cipher text" | 凯撒密码是一种将明文转换成密文的方法,其中每个字母被移动一定距离(称为“轮数”)以实现加密和解密。以下是一个简单的示例:
明文: hello world
密文: khoor zruog
解密方法如下:
1. 确定凯撒密码的轮数。在这个例子中,轮数是3,因为每个字母被移动了3个位置。
2. 将密文中的字母逐一与明文中对应,并加上轮数(即3)来得到对应的明文字母。例如,第一个字母"khoor"在明文中对应于第5个字母"e",因此需要将其向后移动3个位置,得到明文中的第四个字母"h"。
密文中的字母 明文中的字母
------------ -----------
khoor e
zruog o
3. 继续对每个字母进行解密直到整个文本被解码为原始形式。
密文中的字母 明文中的字母
------------ -----------
khoor h
zruog l
因此,明文"hello world"经过凯撒密码加密后变成了密文"khoor zruog",解密方法为将每个字母向前移动3个位置。 |
+| 17 | 解释什么是斐波那契数列,并编写一个生成前10个斐波那契数的算法。 | 斐波那契数列是一种数字序列,其中每个数字都是前两个数字之和。这个序列以数学家莱昂纳多·斐波那契的名字命名,他在13世纪提出了这个数列。
生成前10个斐波那契数的算法可以使用递归或迭代方式实现。下面是一个使用迭代方式生成斐波那契数的示例代码:
```python
def fibonacci(n):
if n <= 1:
return n
else:
a, b = 0, 1
for i in range(2, n+1):
c = a + b
a, b = b, c
return b
# 生成前10个斐波那契数
for i in range(10):
print(fibonacci(i))
```
这段代码定义了一个名为`fibonacci()`的函数,它接受一个参数`n`表示要生成的斐波那契数的位置。如果`n`小于等于1,则直接返回`n`;否则使用迭代方式计算前两个斐波那契数的和,并将结果存储在变量`c`中。然后更新变量`a`和`b`的值,以便下一次循环可以继续计算下一个斐波那契数。最后返回第`n`个斐波那契数。
在主程序中,我们使用`for`循环生成前10个斐波那契数,并将它们打印出来。 | 斐波那契数列是指由两个初始数字开始,后面每一项都是前面两项之和的等差数列。例如:0、1、1、2、3、5、8、13、21……
下面是一个生成前10个斐波那契数的算法:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return (fibonacci(n-1) + fibonacci(n-2))
for i in range(10):
print(fibonacci(i))
```
该算法使用了递归的方式来计算斐波那契数列。首先判断输入的参数是否小于等于1,如果是则直接返回相应的值;否则,根据前两个数字之和进行计算并递归来调用自身函数。最后使用for循环输出前10个斐波那契数。 |
+| 18 | 根据给定的经纬度坐标,计算两点之间的大圆距离。 | 要计算两个经纬度坐标之间的大圆距离,可以使用 Haversine 公式。Haversine 公式是一种用于计算地球上两点之间大圆距离的方法。
首先,我们需要将给定的经纬度坐标转换为弧度值。地球上的经度和纬度通常以度数表示,但计算大圆距离时需要使用弧度值。
假设有两个经纬度坐标 A 和 B,分别为 (lat1, lon1) 和 (lat2, lon2),其中 lat 表示纬度,lon 表示经度。
首先将经纬度转换为弧度值:
```python
from math import radians, sin, cos, sqrt, atan2
def haversine(lat1, lon1, lat2, lon2):
# 将经纬度转换为弧度值
lat1 = radians(lat1)
lon1 = radians(lon1)
lat2 = radians(lat2)
lon2 = radians(lon2)
```
然后,使用 Haversine 公式计算大圆距离:
```python
def haversine(lat1, lon1, lat2, lon2):
# 将经纬度转换为弧度值
lat1 = radians(lat1)
lon1 = radians(lon1)
lat2 = radians(lat2)
lon2 = radians(lon2)
# Haversine 公式
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * atan2(sqrt(a), sqrt(1-a))
distance = 6371 * c # 地球半径为 6371 公里
return distance
```
最后,调用函数 `haversine` 并传入经纬度坐标 A 和 B:
```python
distance = haversine(lat1, lon1, lat2, lon2)
print("大圆距离为:", distance, "公里")
```
这样就可以计算出两个经纬度坐标之间的大圆距离。 | 要计算两个点之间大圆的距离,可以使用以下公式:
```
distance = 2 * asin(sqrt((x1 - x2)**2 + (y1 - y2)**2))
```
其中`x1`和`x2`是第一个点的经度坐标,`y1`和`y2`是第二个点的纬度坐标。计算结果为大圆距离(单位通常是千米)。 |
+| 19 | 解释欧姆定律(V=IR)并举例说明如何应用它来计算电路中的电流。 | 欧姆定律是描述电阻、电压和电流之间关系的基本物理定律,其公式为 V = IR,其中 V 表示电压(单位为伏特),I 表示电流(单位为安培),R 表示电阻(单位为欧姆)。
根据欧姆定律,当电路中的电阻不变时,电压和电流之间存在线性关系,即电压增加一倍,电流也会增加一倍;电压减少一半,电流也会减少一半。
举例说明如何应用欧姆定律来计算电路中的电流:
假设我们有一个简单的电路,其中包含一个电阻和一个电源。电源的电压为 12 伏特,电阻的值为 3 欧姆。根据欧姆定律,可以计算出电路中的电流:
I = V / R
= 12V / 3Ω
= 4A
因此,在这个简单的电路中,电流的大小为 4 安培。
欧姆定律可以用于计算电路中的电流、电压和电阻之间的关系,并且在电子工程领域中有广泛应用。 | 欧姆定律是电学中一条基本的定理,描述了电阻、电压和电流之间的关系:当一个直流电路中的电阻为恒定时,电流与电压成正比,即I = V / R。这个公式可以用以下形式表示:V = IR。
举例来说,假设我们有一个电路系统,其中存在一个电源(电压源),它可以提供12伏特的电压(V)。同时,该电路中有一根电阻为3欧姆的线圈(R)。根据欧姆定律,我们可以计算出通过这个线路的电流大小。
首先,我们将电压和电阻代入公式中:
I = V / R
其中,I是电流的大小,V是电源提供的12伏特的电压,R是3欧姆的电阻。
然后,将这些值代入到公式中进行计算:
I = 12 / 3
简化后得到:
I = 4
因此,通过这个电路系统中的电流的大小为4安培(A)。
在实际应用中,欧姆定律可以用来设计和分析电路系统。例如,可以根据需要确定电阻的值以满足特定的电压要求或计算出所需的电源电压才能提供给指定的电流需求。此外,它还可以用来判断电路中的故障点,因为当一个元件(如电线)损坏时,该元件的电阻会发生变化,从而导致欧姆定律不再成立。 |
+| 20 | 描述如何使用t检验来比较两组独立样本的平均值,并解释何时应该使用它。 | t检验是一种常用的统计方法,用于比较两个独立样本的平均值是否有显著差异。以下是使用t检验的步骤:
1. 收集数据:首先需要收集两组独立样本的数据。每个样本应包含足够多的观测值,以确保结果的可靠性。
2. 计算平均值和标准差:对于每个样本,计算其平均值和标准差。这些值将用于后续的t检验。
3. 假设检验:根据研究问题,建立零假设(H0)和备择假设(Ha)。零假设通常是两个样本平均值相等,而备择假设则是两个样本平均值不等。
4. 计算t统计量:使用以下公式计算t统计量:
t = (x1 - x2) / sqrt(s1^2/n1 + s2^2/n2)
其中,x1和x2分别是两个样本的平均值,s1和s2分别是两个样本的标准差,n1和n2分别是两个样本的观测数。
5. 确定显著性水平:选择一个显著性水平(通常为0.05或0.01)来判断结果是否显著。
6. 查找t分布表:根据样本大小和显著性水平,查找t分布表中相应的临界值。
7. 比较统计量与临界值:将计算得到的t统计量与t分布表中的临界值进行比较。如果t统计量大于或等于临界值,则拒绝零假设,认为两个样本平均值有显著差异;否则,接受零假设,认为两个样本平均值没有显著差异。
t检验适用于以下情况:
- 样本大小较小(通常小于30)或数据符合正态分布的情况;
- 两组样本是独立的,即一个样本的观测值不会影响另一个样本的观测值;
- 研究问题需要比较两个样本的平均值是否有显著差异。
请注意,t检验只能用于比较两个独立样本的平均值,不适用于比较多组样本或非独立样本的情况。在这些情况下,可以使用其他统计方法,如方差分析(ANOVA)或卡方检验。 | T检验是一种常用的统计方法用于确定两个样本之间是否存在显著差异。在进行t检验时,我们假设两个样本均来自于相同的总体分布,并且它们之间的差异是由于偶然性因素引起的。以下是使用t检验来比较两组独立样本的平均值的步骤:
1. 收集数据并计算出每个样本的平均值和标准差(方差)。
2. 根据样本大小进行假设检验。通常情况下,我们假设两个样本均来自于相同的总体分布,并且它们之间的差异是由于偶然性因素引起的。如果样本规模较小,则需要考虑样本容量的影响。
3. 计算t统计量。t统计量用于衡量两个样本的平均值是否显著不同。计算公式为:
t = (x1 - x2) / sqrt(s1^2/n1 + s2^2/n2)
where:
x1 and x2 are the sample means of two groups.
s1^2 and s2^2 are the variance of two groups.
n1 and n2 are the sample sizes of two groups.
4. 根据t统计量的值和临界值进行判断。通常情况下,我们使用显著性水平(例如0.05)来确定是否拒绝原假设。如果t统计量大于临界值,则我们可以拒绝原假设并认为两个样本之间存在显著差异;否则,不能拒绝原假设。
5. 解释结果和得出结论。根据t检验的结果,可以判断是否存在显著差异。如果拒绝原假设,则可以推断出两个样本之间的平均值有显著区别。反之,如果不拒绝原假设,则无法确定两组数据的平均值是否有显著差异。
需要注意的是,t检验适用于独立样本的情况。当存在相关性或依赖关系时,应该使用其他方法进行比较。此外,在计算t统计量和临界值时需要注意样本大小的影响,以及对方差的估计是否准确等因素。 |
diff --git a/pics/banner.png b/pics/banner.png
new file mode 100644
index 0000000..a0eb04c
Binary files /dev/null and b/pics/banner.png differ
diff --git a/pics/chinese-mixtral-ppl.png b/pics/chinese-mixtral-ppl.png
new file mode 100644
index 0000000..9474325
Binary files /dev/null and b/pics/chinese-mixtral-ppl.png differ
diff --git a/pics/mixtral-arch.png b/pics/mixtral-arch.png
new file mode 100644
index 0000000..16b0dc6
Binary files /dev/null and b/pics/mixtral-arch.png differ
diff --git a/scripts/llamacpp/chat.sh b/scripts/llamacpp/chat.sh
new file mode 100755
index 0000000..592a7c0
--- /dev/null
+++ b/scripts/llamacpp/chat.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# script to chat with Chinese-Mixtral-Instruct model
+# usage: ./chat.sh chinese-mixtral-instruct-gguf-model-path your-first-instruction
+
+MODEL_PATH=$1
+FIRST_INSTRUCTION=$2
+
+./main -m "${MODEL_PATH}" \
+-c 4096 -t 6 --temp 0.2 --repeat_penalty 1.1 -ngl 999 \
+--color -i "${HPARAMS}" --in-prefix ' [INST] ' --in-suffix ' [/INST]' \
+-p "[INST] $FIRST_INSTRUCTION [/INST]"
\ No newline at end of file
diff --git a/scripts/merge_mixtral_with_chinese_lora_low_mem.py b/scripts/merge_mixtral_with_chinese_lora_low_mem.py
new file mode 100644
index 0000000..03d3abb
--- /dev/null
+++ b/scripts/merge_mixtral_with_chinese_lora_low_mem.py
@@ -0,0 +1,156 @@
+"""
+Usage:
+python merge_mixtral_with_chinese_lora_low_mem.py \
+ --base_model path/to/Mixtral-8x7B-v0.1 \
+ --lora_model path/to/chinese-Mixtral-8x7B-v0.1-lora \
+ --output_dir path/to/output-dir
+"""
+import argparse
+import json
+import os
+import gc
+import torch
+import peft
+from transformers import LlamaTokenizer
+from transformers.modeling_utils import dtype_byte_size
+from huggingface_hub import snapshot_download
+import re
+import safetensors
+from safetensors.torch import load_file as safe_load_file
+
+
+parser = argparse.ArgumentParser(description='Script to merge Mixtral-8x7B-v0.1 with Chinese-Mixtral-LoRA weights')
+parser.add_argument('--base_model', default=None, required=True,
+ type=str, help="Base model path (basically Mixtral-8x7B-v0.1)")
+parser.add_argument('--lora_model', default=None, required=True,
+ type=str, help="LoRA model path (Chinese-Mixtral-LoRA, Chinese-Mixtral-Instruct-LoRA)")
+parser.add_argument('--output_dir', default='./merged_model',
+ type=str, help="Output path for the merged model")
+parser.add_argument('--verbose', default=False, action='store_true',
+ help="Show detailed debugging messages")
+
+WEIGHTS_NAME = "adapter_model.bin"
+SAFETENSORS_WEIGHTS_NAME = "adapter_model.safetensors"
+
+
+def transpose(weight, fan_in_fan_out):
+ return weight.T if fan_in_fan_out else weight
+
+
+def jsonload(filename):
+ with open(filename, "r") as file:
+ d = json.load(file)
+ return d
+
+
+if __name__=='__main__':
+ args = parser.parse_args()
+ base_model_path = args.base_model
+ lora_model_path = args.lora_model
+ output_dir = args.output_dir
+ os.makedirs(output_dir, exist_ok=True)
+
+ print(f"="*80)
+ print(f"Base model: {base_model_path}")
+ print(f"LoRA model: {lora_model_path}")
+
+ tokenizers_and_loras = []
+ print(f"Loading {lora_model_path}")
+ if not os.path.exists(lora_model_path):
+ print("Cannot find lora model on the disk. Downloading lora model from hub...")
+ lora_model_path = snapshot_download(repo_id=lora_model_path)
+ tokenizer = LlamaTokenizer.from_pretrained(lora_model_path, legacy=True)
+ lora_config = peft.LoraConfig.from_pretrained(lora_model_path)
+ if os.path.exists(os.path.join(lora_model_path, SAFETENSORS_WEIGHTS_NAME)):
+ lora_filename = os.path.join(lora_model_path, SAFETENSORS_WEIGHTS_NAME)
+ use_safetensors = True
+ elif os.path.exists(os.path.join(lora_model_path, WEIGHTS_NAME)):
+ lora_filename = os.path.join(lora_model_path, WEIGHTS_NAME)
+ use_safetensors = False
+ else:
+ raise ValueError(
+ f"Please check that the file {WEIGHTS_NAME} or {SAFETENSORS_WEIGHTS_NAME} is present at {lora_model_path}."
+ )
+ if use_safetensors:
+ lora_state_dict = safe_load_file(lora_filename, device="cpu")
+ else:
+ lora_state_dict = torch.load(lora_filename, map_location='cpu')
+ if 'base_model.model.model.embed_tokens.weight' in lora_state_dict:
+ lora_vocab_size = lora_state_dict['base_model.model.model.embed_tokens.weight'].shape[0]
+ assert lora_vocab_size == len(tokenizer), \
+ (f"The vocab size of the tokenizer {len(tokenizer)} does not match the vocab size of the LoRA weight {lora_vocab_size}!\n")
+ tokenizers_and_loras.append(
+ {
+ "tokenizer" :tokenizer,
+ "state_dict" :lora_state_dict,
+ "config": lora_config,
+ "scaling": lora_config.lora_alpha / lora_config.r,
+ "fan_in_fan_out" : lora_config.fan_in_fan_out,
+ })
+
+ if not os.path.exists(base_model_path):
+ print("Cannot find lora model on the disk. Downloading lora model from hub...")
+ base_model_path = snapshot_download(repo_id=base_model_path)
+ ckpt_filenames = sorted([f for f in os.listdir(base_model_path) if re.match(r'model-(\d+)-of-(\d+).safetensors',f)])
+ if len(ckpt_filenames) == 0:
+ raise FileNotFoundError(f"Cannot find base model checkpoints in ${base_model_path}. Please make sure the checkpoints are saved in the HF format.")
+ total_size = 0
+ for index, filename in enumerate(ckpt_filenames):
+ print(f"Loading ckpt {filename}")
+ if re.match('(.*).safetensors', filename):
+ state_dict = safe_load_file(os.path.join(base_model_path,filename), device="cpu")
+ else:
+ state_dict = torch.load(os.path.join(base_model_path,filename), map_location='cpu')
+ print("Merging...")
+ for k in state_dict:
+ for tl_idx, t_and_l in enumerate(tokenizers_and_loras):
+ saved_key = 'base_model.model.'+k
+ lora_key_a = saved_key.replace('.weight','.lora_A.weight')
+ if saved_key in t_and_l['state_dict']:
+ if args.verbose:
+ print(f"copying {saved_key} from {tl_idx}-th LoRA weight to {k}")
+ state_dict[k] = t_and_l['state_dict'][saved_key].half().clone() # do we need half()?
+ if lora_key_a in t_and_l['state_dict']:
+ lora_key_b = lora_key_a.replace('lora_A.weight','lora_B.weight')
+ if args.verbose:
+ print(f"merging {lora_key_a} and lora_B.weight form {tl_idx}-th LoRA weight to {k}")
+ state_dict[k] += (
+ transpose(
+ t_and_l['state_dict'][lora_key_b].float() @ t_and_l['state_dict'][lora_key_a].float(), t_and_l['fan_in_fan_out']) * t_and_l['scaling']
+ )
+ weight_size = state_dict[k].numel() * dtype_byte_size(state_dict[k].dtype)
+ total_size += weight_size
+
+ print(f"Saving ckpt {filename} to {output_dir} in HF format...")
+ if use_safetensors:
+ safetensors.torch.save_file(
+ state_dict, os.path.join(output_dir, filename), metadata={"format": "pt"}
+ )
+ else:
+ torch.save(state_dict, os.path.join(output_dir, filename))
+ del state_dict
+ gc.collect() # Effectively enforce garbage collection
+
+ print(f"Saving tokenizer")
+ tokenizers_and_loras[-1]['tokenizer'].save_pretrained(output_dir)
+
+ configs = ('config.json', 'generation_config.json', "model.safetensors.index.json")
+ for config in configs:
+ if os.path.exists(os.path.join(lora_model_path, config)):
+ print(f"Saving {config} from {lora_model_path}")
+ with open(os.path.join(lora_model_path, config),'r') as f:
+ obj = json.load(f)
+ else:
+ if os.path.exists(os.path.join(base_model_path, config)):
+ print(f"Saving {config} from {base_model_path}")
+ with open(os.path.join(base_model_path, config),'r') as f:
+ obj = json.load(f)
+ if config == 'config.json':
+ obj['vocab_size'] = len(tokenizers_and_loras[-1]['tokenizer'])
+ if config == "model.safetensors.index.json":
+ obj['metadata']['total_size'] = total_size
+ if os.path.exists(os.path.join(base_model_path, config)):
+ with open(os.path.join(output_dir, config), 'w') as f:
+ json.dump(obj, f, indent=2)
+ print("Done.")
+ print(f"Check output dir: {output_dir}")
\ No newline at end of file