在 Hugging Face 上搭建 ChatGPT 聊天机器人

import openai
import tiktoken


class Conversation:
    def __init__(self, prompt, model="gpt-3.5-turbo", temperature=0.8, max_tokens=250):
        self.prompt = prompt
        self.model = model
        self.temperature = temperature
        self.max_tokens = max_tokens

        self._init_messages()

    def _init_messages(self):
        self.messages = [{"role": "system", "content": self.prompt}]
// ...

OpenAI API Documentation Chat Completion

主要输入是消息参数。消息必须是一个消息对象数组,其中每个对象都有一个角色("system"、"user"、"assistant")和内容("content")。

通常,对话首先使用 "system" 消息进行格式化,然后是交替的 "user" 和 "assistant" 消息。

"system" 消息有助于设置 "assistant" 的行为。

例如,字符串 "ChatGPT is great!" 被编码为六个 token: ["Chat", "G", "PT", " is", " great", "!"].

要查看 API 调用使用了多少 token ,请检查 API 响应中的 usage 字段(例如,response['usage']['total_tokens'])。

例子 messages = [ {"role": "system

OpenAI API Documentation Embeddings

嵌入是浮点数的向量(列表)。两个向量之间的距离衡量它们的相关性。小距离表示高相关性,大距离表示低相关性。

注意这上下界对任何维度的向量空间中都适用,而且余弦相似性最常用于高维正空间。例如在信息检索中,每个词项被赋予不同的维度,而一个文档由一个向量表示,其各个维度上的值对应于该词项在文档中出现的频率。余弦相似度因此可以给出两篇文档在其主题方面的相似度。

OpenAI 推荐余弦相似度计算距离。距离函数的选择通常无关紧要,但是,余弦相似度计算距离的速度比欧几里得距离快得多,因为它不需要计算平方根。此外,余弦相似度的范围是[-1,1],而欧几里得距离的范围是[0,∞)。因此,余弦相似度的范围更适合于搜索。

好评例子的评分 : 0.036553
差评例子的评分 : -0.026165

{% highlight wjj %} 值 = 评论的embedding与好评embedding的余弦相似度 - 评论embedding与差评embedding的余弦相似度 值 > 0,倾向于好评 值 < 0,倾向于差评 {% endhighlight %}

comment evaluation
0 买的银色版真的很好看,一天就到了,晚上就开始拿起来完系统很丝滑流畅,做工扎实,手感细腻,很精致哦苹果一如既往的好品质
1 降价厉害,保价不合理,不推荐

{% highlight wjj %} distanc

OpenAI API Documentation 快速入门

在给定的 API 请求中处理的令牌数量取决于输入和输出的长度。根据粗略的经验法则,对于英文文本,1 个标记大约为 4 个字符或 0.75 个单词。要记住的一个限制是,您的文本提示和生成的完成组合不能超过模型的最大上下文长度(对于大多数模型,这是 2048 个标记,或大约 1500 个单词)。

I have an orange cat named Butterscotch.

I`` have`` an`` orange`` cat`` named`` But``ters``cot``ch``.

像“cat”这样的常用词是单个标记,而不太常用的词通常被分解成多个标记。例如,“Butterscotch”翻译成四个标记:“But”、“ters”、“cot”和“ch”。许多标记以空格开头,例如“ hello”和“ bye”。

temperature 通常最好为所需输出明确定义的任务设置较低。较高的 temperature 对于需要多样性或创造力的任务可能很有用。

参考 了解标记和概率 有更好图形化展示。

安装 Python 库:

pip install openai

安装后,您可以使用绑定和您的密钥运行以下命令:

ChatGLM-6B 模型基于 P-Tuning v2 微调的自定义数据集

专业 题型 题目内容 题目依据条款 选项 正确答案
变电专业 单选题 雷雨天气,需要巡视室外高压设备时,应穿(  ),并不准靠近避雷器和避雷针。 来自安规 A. 雨鞋,B. 绝缘靴,C. 橡胶鞋,D. 绝缘鞋 B. 绝缘靴
变电专业 单选题 地震、台风、洪水、泥石流等灾害发生后,如需要对设备进行巡视时,应制定必要的安全措施,得到设备运维管理单位批准,并至少两人一组,巡视人员应与(  )之间保持通信联络。 来自安规 A. 分管领导,B. 调控人员,C. 派出部门,D. 运维单位 C. 派出部门
变电专业 单选题 高压设备发生接地时,室内人员应距离故障点(  )m以外。 来自安规 A. 1,B. 2,C. 3,D. 4 D. 4
变电专业 判断题 禁止在只经断路器(开关)断开电源或只经换流器闭锁隔离电源的设备上工作。 来自安规 A. 正确,B. 错误 A. 正确
变电专业 判断题 在电气设备上工作,对难以做到与电源完全断开的检修设备,可以不拆除设备与电源之间的电气连接。 来自安规 A. 正确,B. 错误 B. 错误
变电专业 判断题 表示设备断开和允许进入间隔的信号、经常接入的电压表等,如果指示有电,在排除异常情况前,禁止在设备上工作。 来自安规 A. 正确,B. 错误 A. 正确
变电专业 多选题 线路的停、送电均应按照(  )的指令执行。 来自安规 A. 值班调控人员,B. 专责监护人,C. 线路工作负责人,D. 线路工作许可人 A. 值班调控人员,D. 线路工作许可人
变电专业 多选题 值班调控人员或线路工作许可人应将线路停电检修的工作班组数目、(  )做好记录。 来自安规 A. 工作班成员姓名,B. 工作负责人姓名,C. 工作地点,D. 工作任务 B. 工作负责人姓名,C. 工作地点,D. 工作任务
变电专业 多选题 工作结束时,应得到工作负责人(包括用户)的工作结束报告,确认(  ),方可下令拆除变电站或发电厂内的安全措施,向线路送电。 来自安规 A. 所有工作班组均已竣工,B. 接地线已拆除,C. 作业人员已全部撤离线路,D. 与记录核对无误并做好记录 A. 所有工作班组均已竣工,B. 接地线已拆除,C. 作业人员已全部撤离线路,D. 与记录核对无误并做好记录

文心一言测试

💬 非常抱歉,我之前的回答有误。
* 电脑是一种3C产品。
* 手机也是一种3C产品。
* 铅笔不是一种3C产品。
如您还有其他问题,欢迎继续向我提问。
💬 这是一个主观的评价,可以根据个人的使用体验和需求来进行判断。如果这个手机的功能符合个人的需求,那么这个评价可以是好评;如果这个手机的功能不符合个人的需求,那么这个评价可以是差评。
💬 She did not go to the market.

ChatGPT 还会解释语法的问题

💬 您好,您想要预订哪些房型呢?
💬 Hello, which rooms are available for booking?

命令 alias

zsh 中使用单引号('),不对特殊符号进行解析,使用双引号(")会对特殊符号进行解析,如:$

docker rmi none

alias docker.rmi.none='docker rmi --force $(docker images -q --filter "dangling=true")'

基于 FastAPI 开发 Ultralytics Serving

.vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: FastAPI",
            "type": "python",
            "request": "launch",
            "module": "uvicorn",
            "args": [
                "app.main:app",
                "--reload"
            ],
            "jinja": true,
            "justMyCode": true
        }
    ]
}

人工智能服务 REST API 响应的 JSON 格式

虽然 REST API 需要遵循这些标准,但是仍比遵循规定的协议更容易,如 SOAP(简单对象访问协议),该协议具有 XML 消息传递、内置安全性和事务合规性等具体要求,因此速度较慢、结构繁重。

相比之下,REST 则是一组可按需实施的准则,使 REST API 速度更快、更轻,可扩展性更高,非常适合物联网(IoT)和移动应用开发。

Object Detection [ { "score": 0.

GitHub Copilot - Your AI pair programmer

打开 GitHub Copilot - Your AI pair programmer,可以选择 Copilot for Individuals(Copilot个人版) 进行免费 2 个月的试用,每年 $100 ,可以使用 PayPal 进行支付。

  • 若要配置 GitHub Copilot,请打开 Neovim 并输入以下命令。
:Copilot setup
  • 在 Neovim 配置中或使用 Neovim 命令启用 GitHub Copilot。
:Copilot enable

Roboflow 快速入门

工作区是团队可以协作创建、管理和标记数据集以及训练和部署模型的地方。

项目的菜单项

1️⃣ Source Images

2️⃣ Train/Test Split

3️⃣ Preprocessing

4️⃣ Augmentation

5️⃣ Generate

单击“Export”,可以导出不同格式的数据集。

单击“Start Training”,可以进行训练,能够进行3次免费训练。

基于 Python 的推理示例

pip install roboflow

Ultralytics YOLOv8

  • CPU
docker pull ultralytics/ultralytics:latest-cpu
  • Apple Silicon
docker pull ultralytics/ultralytics:latest-arm64

  • 配置
clearml-init
  • 集成
from clearml import Task
task = Task.init(project_name="my project", task_name="my task")

对检测出来的结果裁剪分类保存

yolo predict data=project/data.yaml model=runs/detect/train/weights/best.pt source=project/images/val/ save_crop=true
  • classes=0 或 classes=[0,2,5] 过滤指定的类别

导出的模型格式

在 MacBook Pro M2 Max 上测试 LLaMA

bash download.sh
模型 大小 量化(4位) 内存
7B 13G 3.9G 4.0G
13B 24G 7.6G 7.8G
30B 61G 19G 19.4G
65B 122G 38G 38.5G

GGUF 是一种二进制格式,旨在快速加载和保存模型。它是 GGML、GGMF 和 GGJT 的后继文件格式,通过包含加载模型所需的所有信息来确保明确性。 它还被设计为可扩展的,以便可以在不破坏兼容性的情况下将新信息添加到模型中。

  • GGML(无版本):基线格式,没有版本控制或对齐。
  • GGMF(版本化):与 GGML 相同,但具有版本化。
  • GGJT:对齐张量以允许与需要对齐的 mmap 一起使用。 v1、v2 和 v3 相同,但后面的版本使用与以前版本不兼容的不同量化方案。

What is GGUF and GGML?

REPO_ID=TheBloke/CodeLlama-7B-GGUF
FILENAME=codellama-7b.Q4_K_M.gguf
huggingface-cli download ${REPO_ID} ${FILENAME} \
    --local-dir . --local-dir-use-symlinks False

❶ 编译 llama.cpp git clone https://github.com/ggerganov/llama.cpp.

在 MacBook Pro M2 Max 上测试 Whisper

转录(X->X)

whisper test.wav --model small

翻译(X->English)

whisper test.wav --model small --task translate

使用 time 命令测试使用资源详情和度量

model user(s) system(s) cpu total(s) 内存
tiny 7.13 6.01 358% 3.664 370M
base 12.21 10.29 362% 6.211 430M
small 39.15 23.90 380% 16.569 1.2G
medium 117.27 68.43 377% 49.172 3.2G
large 184.13 114.85 361% 1:22.73 6.3G
  • tiny
[00:00.000 --> 00:04.000] 荷蘭发布了一份主题为
[00:04.000 --> 00:09.500] 宣布即将对先进半道体知道设备采取的
[00:09.500 --> 00:13.000] 出口管制措施的公告表示
[00:13.000 --> 00:17.000] 坚于技术的发展和地缘政治的背景
[00:17.000 --> 00:20.000] 政府已经得出结论
[00:20.000 --> 00:24.000] 有必要扩大现有的特定半道体
[00:24.000 --> 00:27.000] 知道设备的出口管制

在 CentOS 上安装 EPEL 软件仓库

EPEL(Extra Packages for Enterprise Linux)是为企业级Linux操作系统(如CentOS、Red Hat Enterprise Linux等)提供的一个高质量、稳定的软件仓库,包含了许多不包含在标准软件仓库中的软件包。