SeamlessM4T — Massively Multilingual & Multimodal Machine Translation(大规模多语言和多模式机器翻译)

Seamless Communication

  • ASR: Automatic speech recognition for 96 languages.
  • S2ST: Speech-to-Speech translation from 100 source speech languages into 35 target speech languages.
  • S2TT: Speech-to-text translation from 100 source speech languages into 95 target text languages.
  • T2ST: Text-to-Speech translation from 95 source text languages into 35 target speech languages.
  • T2TT: Text-to-text translation (MT) from 95 source text languages into 95 target text languages.

SeamlessM4T 概述

安装 [Seamless Communication][seamless_communication]

克隆仓库 git clone https://github.

基于 ChatGLM3 8k 和 32k 的文档问答对比

文档

这里使用的文档是:合作方人员出勤及结算管理信息化支撑规则

一、出勤打卡
出勤打卡包括:正常出勤打卡、出差打卡、外出打卡、加班打卡。

1. 正常出勤打卡:指正常的出勤办公打卡。
(1)全天出勤打卡:上班打卡:8点30分之前打卡。下班打卡:17点30分之后打卡。
(2)半天出勤打卡。上午打卡时间段:8点30分之前、12点之后。下午时间段:13点之前,17点30分之后。
(3)打卡(考勤机或企业微信打卡)形式按部门要求为准,最小半天为统计单位。

2. 出差打卡:指出差地出勤办公或在途期间打卡。
(1)固定出差地打卡:打卡时间参照第1条正常出勤上下班打卡;无法定位有效范围的找部门管理员修改工作打卡位置。(具体按照各部门要求执行)
(2)出差在途打卡(使用手机外出打卡)。到车站坐车前打外出打卡一次,到达目的地后打外出打卡一次(往返同理)。下午出差的,上午需打正常出勤卡(上午正常出勤须闭环打卡);上午到达出差地的,下午需打一次外出打卡或上下班打卡。

3. 外出打卡:指外出办事打卡。提外出申请后,可以打外出卡,打外出卡时间需在申请时间内:
(1)半天外出:如外出时间在上午(12点前) 或者下午(12点后),则另外半天需正常出勤打卡。
(2)跨12点外出:如外出跨度期间包含12点,则12点前、12点后分别打外出卡即可记为合格出勤。
// ...

提示词模板 """ {

GPT4All

下载 GPT4All 客户端(macOS)

下载模型

聊天

基于目录构建本地文档集合

本地服务

  1. 启用 API 服务器
  1. 打开服务聊天窗口

查看本地下载的模型 ll /Users/junjian/Library/Application\ Support/nomic.ai/GPT4All/*.gguf -rw-r--r--@ 1 junjian staff 44M 12 3 10:30 /Users/junjian/Library/Application Support/nomic.ai/GPT4All/all-MiniLM-L6-v2-f16.gguf -rw-r--r--@ 1 junjian staff 1.3G 12 3 12:53 /Users/junjian/Library/Application Support/nomic.ai/GPT4All/incomplete-nous-hermes-llama2-13b.Q4_0.gguf -rw-r--r--@ 1 junjian staff 3.8G 12 3 10:09 /Users/junjian/Library/Application Support/nomic.ai/GPT4All/mistral-7b-openorca.Q4_0.gguf -rw-r--r--@ 1 junjian staff 3.

在 Mac 上安装 NGINX

安装

brew update
brew install nginx

启动服务

brew services start nginx
Docroot is: /opt/homebrew/var/www

The default port has been set in /opt/homebrew/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

nginx will load all files in /opt/homebrew/etc/nginx/servers/.

To start nginx now and restart at login:
  brew services start nginx
Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
  • 编辑 /opt/homebrew/etc/nginx/nginx.conf 修改端口号
  • 编辑 /opt/homebrew/var/www/index.html 修改默认页面

停止服务

brew services stop nginx

重启服务 brew services restar

2023 年全国行业职业技能竞赛

该文档详细介绍了 2023年全国行业职业技能竞赛,涵盖了多个技术任务。任务一侧重于语音处理,通过Python代码展示了如何利用腾讯云API进行语音识别和语音合成,包括音频文件的Base64编码转换和请求参数配置,并输出了实际的识别结果。任务二则聚焦于语音模型,阐述了声学模型的初始化、加载预训练模型以及语音识别的整个流程,并提到了模型训练的配置。任务三涉及文本处理,通过requests库抓取网页内容,并利用re、BeautifulSoup和lxml.etree等工具进行网页内容解析和文本提取,同时展示了文本清洗、数据扩充以及使用Stanford CoreNLP进行中文分词、词性标注和命名实体识别。任务四是数据分析与可视化,展示了如何从Excel文件中读取急诊科就诊数据,并计算男女比例、每日就诊人数和各诊室就诊人数,最终通过matplotlib库生成饼状图、柱状图和折线图进行数据可视化。

2023年全国行业职业技能竞赛 第二届全国电子企业职业技能竞赛

任务一

任务1.1

任务1.2

NGINX Reverse Proxy 反向代理

通过 CPU 服务器访问 GPU 服务器

NGINX 配置文件

sudo vim /etc/nginx/sites-available/default

配置反向代理

server {
    listen 8888;
    server_name cpu1;

    location / {
        proxy_pass http://cpu1:8300/;
    }
}

配置 WebSocket 反向代理

server {
    listen 8001;
    server_name cpu1;

    location / {
        proxy_pass http://gpu1:8001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

proxy_http_version 1.1proxy_set_header Upgrade $http_upgradeproxy_set_header Connection "upgrade"这些行是为了支持WebSocket连接。

配置多个反向代理 server { listen 8888; server_name cpu1; location /oneapi { proxy_pass http://cp

GPU 服务器不能访问

13 号 上午 GPU 服务器突然不能访问了,可以通过 CPU 服务器访问 GPU 服务器。这一周一直在查找问题,这里记录一下过程。

traceroute 路由追踪

  • GPU 服务器
traceroute gpu1
traceroute to gpu1 (172.16.33.66), 64 hops max, 52 byte packets
 1  * * *
 2  172.16.136.2 (172.16.136.2)  7.462 ms  3.820 ms  3.014 ms
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
  • CPU 服务器
traceroute cpu1
traceroute to cpu1 (172.16.33.157), 64 hops max, 52 byte packets
 1  * * *
 2  172.16.136.2 (172.16.136.2)  7.827 ms  4.712 ms  3.162 ms
 3  * * *
 4  cpu1 (172.16.33.157)  8.619 ms  4.205 ms  4.982 ms

tcpdump 抓包

在GPU服务器上抓取 22 端口的数据包

FastChat 部署多模型


* [Chatbot Arena](https://chat.lmsys.org/) * [FastChat](https://github.com/lm-sys/FastChat) * [LMSYS BLOG](https://lmsys.org/blog/) * [Use AutoGen for Local LLMs](https://microsoft.github.io/autogen/blog/2023/07/14/Local-LLMs/)

安装

pip

pip install "fschat[model_worker,webui]"

源代码

这种方式安装比较容易调试,适合开发者。

克隆代码

git clone https://github.com/lm-sys/FastChat.git
cd FastChat

创建环境

python -m venv env
source env/bin/activate

安装

LangChain HuggingFaceEmbeddings + FAISS

数据

weather_texts = [
    "😀 今天天气舒适,心情大好。",
    "😀 今天天气晴朗,阳光明媚。",
    "😀 今天天气宜人,适合出门游玩。",
    "😀 今天天气没有下雨,真是太好了。",
    "😀 今天天气比昨天好多了,真是令人欣喜。",
    "😀 今天天气晴空万里,蓝天白云,真是美不胜收。",
    "😀 今天天气温暖如春,空气清新,让人心旷神怡。",
    "😀 今天天气风和日丽,微风徐徐,让人心情舒畅。",
    "😀 今天天气万里无云,阳光灿烂,让人精神振奋。",
    "😀 今天天气秋高气爽,天朗气清,让人心胸开阔。",
    "🥶 今天天气很糟糕。",
    "🥶 今天天气阴沉沉的,让人心情烦躁。",
    "🥶 今天天气下雨了,真是让人沮丧。",
    "🥶 今天天气太热了,出门都觉得热得受不了。",
    "🥶 今天天气太冷了,出门都要穿上厚衣服。",
    "🥶 今天天气乌云密布,风雨欲来,真是让人提心吊胆。",
    "🥶 今天天气寒风刺骨,道路结冰,真是让人寸步难行。",
    "🥶 今天天气闷热潮湿,空气污浊,真是让人喘不过气来。",
    "🥶 今天天气灰蒙蒙的,看不到蓝天白云,真是让人心情沉重。",
    "🥶 今天天气狂风暴雨,树木倒伏,道路封闭,真是让人措手不及。"
]

Private GPT 中文 Embeddings 模型测试

文档

这里使用的文档是:合作方人员出勤及结算管理信息化支撑规则

一、出勤打卡
出勤打卡包括:正常出勤打卡、出差打卡、外出打卡、加班打卡。

1. 正常出勤打卡:指正常的出勤办公打卡。
(1)全天出勤打卡:上班打卡:8点30分之前打卡。下班打卡:17点30分之后打卡。
(2)半天出勤打卡。上午打卡时间段:8点30分之前、12点之后。下午时间段:13点之前,17点30分之后。
(3)打卡(考勤机或企业微信打卡)形式按部门要求为准,最小半天为统计单位。

2. 出差打卡:指出差地出勤办公或在途期间打卡。
(1)固定出差地打卡:打卡时间参照第1条正常出勤上下班打卡;无法定位有效范围的找部门管理员修改工作打卡位置。(具体按照各部门要求执行)
(2)出差在途打卡(使用手机外出打卡)。到车站坐车前打外出打卡一次,到达目的地后打外出打卡一次(往返同理)。下午出差的,上午需打正常出勤卡(上午正常出勤须闭环打卡);上午到达出差地的,下午需打一次外出打卡或上下班打卡。

3. 外出打卡:指外出办事打卡。提外出申请后,可以打外出卡,打外出卡时间需在申请时间内:
(1)半天外出:如外出时间在上午(12点前) 或者下午(12点后),则另外半天需正常出勤打卡。
(2)跨12点外出:如外出跨度期间包含12点,则12点前、12点后分别打外出卡即可记为合格出勤。
// ...

提示词模板 使用以下上下文来回答最后的问题。

将 API 密钥身份验证添加到 FastAPI 应用程序

API_KEY

方法一

from fastapi import Security, HTTPException, status
from fastapi.security.api_key import APIKeyHeader


API_KEY="123456"
API_KEY_NAME = "X-API-KEY"
api_key_header = APIKeyHeader(name=API_KEY_NAME, auto_error=True)

async def get_api_key(api_key: str = Security(api_key_header)):
    if api_key != API_KEY:
        raise HTTPException(
             status_code=status.HTTP_401_UNAUTHORIZED,
             detail="Invalid API Key"
        )


@app.get('/index', dependencies=[Security(get_api_key)])
async def index():
    return {"message": "Hello World"}

APIKeyHeader 的源码

Dockerfile 中 ARG 指令的作用范围

这里主要是了解 Dockerfile 中 ARG 指令的作用范围。

总结

  1. FROM 前定义的参数,只能在 FROM 指令中使用,且能够在多阶段中起作用。
ARG BASE_IMAGE=python:3.10.9
FROM ${BASE_IMAGE} AS builder
...

FROM ${BASE_IMAGE}
...
  1. FROM 后定义的参数,只能作用在本 Stage 阶段。
FROM python:3.10.9 AS builder
ARG APP_HOME=/WALL-E-AI
WORKDIR ${APP_HOME}

FROM python:3.10.9
ARG APP_HOME=/WALL-E-AI
WORKDIR ${APP_HOME}

实验

开源 OCR 引擎基准测试

OCR 引擎

EasyOCR

EasyOCR 支持 80+ 语言。

Abaza = 'abq'
Adyghe = 'ady'
Afrikaans = 'af'
Angika = 'ang'
Arabic = 'ar'
Assamese = 'as'
Avar = 'ava'
Azerbaijani = 'az'
Belarusian = 'be'
Bulgarian = 'bg'
Bihari = 'bh'
Bhojpuri = 'bho'
Bengali = 'bn'
Bosnian = 'bs'
Simplified_Chinese = 'ch_sim'
// ...

安装

pip install torch==2.0.1 torchvision==0.15.2 -i https://download.pytorch.org/whl/cpu
pip install easyocr

代码示例 import easyocr languages = ['ch_sim', 'en'] model = easyocr.

FastAPI 开发 RESTAPI 实践

首页

重定向到 Swagger UI

@app.get("/", include_in_schema=False)
async def index():
    return RedirectResponse('/docs', status_code=303)

使用 route 的 docstring 作为首页内容

@app.get("/", response_class=HTMLResponse, include_in_schema=False)
async def index():
    # 需要过滤的路由
    filted_routes = [
        "/openapi.json",
        "/docs",
        "/docs/oauth2-redirect",
        "/redoc",
        "/static",
        "/"
    ]
    
    routes = []
    for route in app.routes:
        if route.path not in filted_routes:
// ...

Markdown to HTML

安装

pip install markdown

使用

FastAPI : Request File and Form(BaseModel)

两种方法

(file: UploadFile = File(...), mask: Json = Form(default=None))

from pydantic import BaseModel, Json, ValidationError
from fastapi import APIRouter, File, UploadFile, HTTPException, Form, Depends

class Box(BaseModel):
    x: int
    y: int
    w: int
    h: int

router = APIRouter()

@router.post("/test")
async def test(file: UploadFile = File(...), 
               mask: Json = Form(default=None), 
               n: int = Form(default=0)) -> str:
// ...

(file: UploadFile = File(...), mask: Box = Depends(validate_json(Box)))

macOS 能连上 WiFi 但无法上网

问题描述

我的 MacBook Pro M2 Max 能够连接上 WiFi,但是无法上网,我进行了以下尝试:

  1. 路由器(没有问题);
  2. 重启电脑;
  3. 断开 WiFi 重新连接;

解决方案

最后,我在抖音上看到了一个解决方案,我尝试了一下,果然解决了问题。

打开访达,按下Command + Shift + G,输入/Library/Preferences/SystemConfiguration/,除com.apple.Boot.plist文件外,删除其他所有文件,然后重启电脑。

LLM Leaderboard

Leaderboards

LLM

Open LLM Leaderboard

Qwen-7B

ChatGLM2-6B

Embedding 模型

Massive Text Embedding Benchmark (MTEB) Leaderboard

sensenova/piccolo-large-zh

piccolo是一个通用embedding模型(中文), 由来自商汤科技的通用模型组完成训练。piccolo借鉴了E5以及GTE的训练流程,采用了两阶段的训练方式。 在第一阶段中,我们搜集和爬取了4亿的中文文本对(可视为弱监督文本对数据),并采用二元组的softmax对比学习损失来优化模型。 在第二阶段中,我们搜集整理了2000万人工标注的中文文本对(精标数据),并采用带有难负样本的三元组的softmax对比学习损失来帮助模型更好地优化。

BAAI/bge-large-zh

FlagEmbedding 将任意文本映射为低维稠密向量,以用于检索、分类、聚类或语义匹配等任务,并可支持为大模型调用外部知识。

不同的任务

参考资料