栖居在城市的大地上,分享城市中的感想予你,在留言板留下你的足迹,希望你在这里有所收获,祝幸运

技术

计算机相关的技术分享


AudioCraft由三种型号组成:MusicGen、AudioGen和EnCodec。

MusicGen接受过拥有和专门许可的音乐训练,从基于文本的用户输入生成音乐,而接受过公共音效训练的AudioGen则从基于文本的用户输入生成音频。
EnCodec解码器的改进版本,该解码器允许以更少的文件生成更高质量的音乐;
经过预先训练的AudioGen模型,可让您产生环境声音声音效果,如狗吠叫、汽车喇叭声或木地板上的脚步声;
官网地址:audiocraft.metademolab.com
github地址:github.com/facebookresearch/audiocraft

因需要16G的GPU,这里就在 Google Colaboratory 进行创建


# Colab运行代码:
# Adapted from https://github.com/camenduru/MusicGen-colab
%cd /content
!git clone https://github.com/facebookresearch/audiocraft
%cd /content/audiocraft
# DO NOT RESTART THE NOTEBOOK WHEN ASKED TO DO SO, it is not necessary at all!
!pip install -r requirements.txt
# Click on the gradio link that appear (starting with `public URL:`).
!python -m demos.musicgen_app --share
# See also https://colab.research.google.com/drive/1fxGqfg96RBUvGxZ1XXN07s3DthrKUl4-?usp=sharing
# for a Colab demo using the underlying API instead.

体验地址:huggingface.co/spaces/facebook/MusicGen


MusicGen Gradio Demo

安装:


# @title Execute first for installing AudioCraft
# @markdown Execute this cell to install AudioCraft. (**Note:** the `pip install` stage might take a while.)
from pathlib import Path
import subprocess as sp
from shutil import rmtree
import re
import time

def run_log_on_fail(name, *args, **kwargs):
    log = log_folder / (name + ".log")
    print("Running stage", name)
    try:
        sp.run(*args, **kwargs, stdout=open(log, 'w'), stderr=sp.STDOUT, check=True)
    except sp.CalledProcessError:
        print(f"Stage {name} failed, this is NOT expected, see logs hereafter.")
        print(open(log, 'r').read())
        raise
    else:
        return log

def install():
    global log_folder
    ac_folder = Path('/content/audiocraft')
    log_folder = Path('/content/logs')
    log_folder.mkdir(exist_ok=True, parents=True)
    if ac_folder.exists():
        rmtree(ac_folder)
    try:
        run_log_on_fail("git clone", ["git", "clone", "https://github.com/facebookresearch/audiocraft"], cwd=ac_folder.parent)
        run_log_on_fail("pip install", ["pip", "install", "-e", "."], cwd=ac_folder)
        pass
    except sp.CalledProcessError:
        print("INSTALLATION FAILED...")
        return
install()

演示:


#@title Execute then to launch the demo
#@markdown Wait until you see `Running on public URL: ` in the link with a *.gradio.live url. Click on the URL, and enjoy!
!cd /content/audiocraft && python -m demos.musicgen_app --share

GPT + SQL开发:

实现根据语言提问生成你想要的结果,省去亲自写sql查询的过程。

前期背景

LangChain:由语言模型LLMs驱动的应用程序框架,它允许用户围绕大型语言模型快速构建应用程序和管道。
可以直接与 OpenAI 的 ChatGPT 模型以及 Hugging Face 集成。通过 langChain 可快速构建聊天机器人、生成式问答(GQA)、本文摘要等应用场景。

将GPT连接到自己的知识库,形成自己的知识空间。

SQL Chat:github.com/sqlchat/sqlchat
一个基于聊天的 SQL 客户端,使用自然语言与数据库以沟通的方式,实现对数据库的查询、修改、新增、删除等操作。
目标是:辅助数据开发工程师的工作,减少SQL代码编辑的复杂与繁琐的程度,减轻数据开发工程师的工作量,使开发工程师预留更多时间用于相关业务的梳理与沟通。

体验地址:https://www.sqlchat.ai/


功能实现

使用 Docker 自托管


docker run --name sqlchat --platform linux/amd64 -env NEXTAUTH_SECRET=xxx -p 3000:3000 sqlchat/sqlchat

OpenAI 相关变量:

  • NEXT_PUBLIC_ALLOW_SELF_OPENAI_KEY : 设置为 true 如果你允许用户提供自己的 OpenAI API key.
  • OPENAI_API_KEY : OpenAI API Key,通过这里申请。
  • OPENAI_API_ENDPOINT : OpenAI API 端点,默认为 https://api.openai.com

数据库相关变量:

  • NEXT_PUBLIC_DATABASE_LESS : 设置为 true 如果你想让 SQL Chat 运行时不需要数据库。这个会关闭如下功能:

    1. 账户系统。
    2. 用户额度控制。
    3. 支付。
    4. 使用数据收集。
  • DATABASE_URL : 只有在 NEXT_PUBLIC_DATABASE_LESS 为 true 时有效。Postgres 数据库连接串 e.g. postgresql://postgres:YOUR_PASSWORD@localhost:5432/sqlchat?schema=sqlchat .

docker run --name sqlchat --platform linux/amd64 --env NEXTAUTH_SECRET=xxx --env OPENAI_API_KEY=yyy --env OPENAI_API_ENDPOINT=zzz -p 3000:3000 sqlchat/sqlchat

本地开发环境

  1. 安装依赖项

    
    pnpm i
    
  2. 复制示例环境变量文件;

    
    cp .env.example .env
    
  3. 生成 prisma 客户端

    
    pnpm prisma generate
    
  4. 将您的 API 密钥 OpenAI API 端点(可选)添加到新创建的 .env 文件;

配置数据库

  1. 启动 Postgres 实例。对于 mac,您可以使用 StackbBricks, DBngin 或者 Postgres.app
  2. 创建一个数据库:

    
    CREATE DATABASE sqlchat;
    

    .env 文件中, 将连接字符串分配给环境变量 DATABASE_URL DATABASE_DIRECT_URL 。至于需要两个 URL 的原因见此.

  3. 设置数据库 schema

pnpm prisma migrate dev
  1. 初始化数据(可选)

pnpm prisma db seed

使用快捷指令接入ChatGPT


点击:link.talkai.icu/xiaodi 获取快捷指令
接入到iphone手机中,此时就可以使用了,在唤出Siri之后,说:“小涤”,就可以提问聊天了。

修改唤出词:修改快捷指令的名称为自己希望的唤出词

修改角色设定:修改Prompt设定为自己希望的设定

修改回答与对话语:

今天看到一篇文章,用微信聊天记录和 280 篇博客文章,做了我自己的数字克隆AI,这个AI还知道自己是一个模型,还会骂人!!!

文章作者的数字克隆在线聊天:https://ai.greatdk.com

使用和参考的项目:


WechatExporter:BlueMatthew/WechatExporter: Wechat Chat History Exporter 微信聊天记录导出备份程序 (github.com)

chatglm-6b:THUDM/ChatGLM-6B: ChatGLM-6B:开源双语对话语言模型 | An Open Bilingual Dialogue Language Model (github.com)

zero_nlp:yuanzhoulvpi2017/zero_nlp: 中文nlp应用(大模型、数据、模型、训练、推理) (github.com)

chatglm_finetuning:https://github.com/ssbuild/chatglm_finetuning 

MoeChat:Fzoss/MoeChat: 一个比较好看的WEB聊天界面UI (github.com)

Alpaca: A Strong, Replicable Instruction-Following Model:Stanford CRFM

LLAMA:facebookresearch/llama: Inference code for LLaMA models (github.com)

clueai使用教程:

github地址:

Loading...

使用教程:https://www.clueai.cn/doc
使用地址:colab.research.google.com/drive

Colaboratory(简称 Colab),您可在浏览器中编写和执行 Python 代码,并且:无需任何配置,免费使用 GPU,轻松共享。 无论您是一名学生、数据科学家还是 AI 研究员,Colab 都能够帮助您更轻松地完成工作

安装
可以使用 pip命令安装:


pip install --upgrade clueai

也可以通过源码:


python setup.py install

生成参数说明


max_length: 指定生成的文本的token总数量(包括输入的token数量)
min_lenght: 指定生成的文本的最小数量(不包括输入的token数量)
do_sample: 是否采样输出
num_beams: 当使用beam search搜索时需要指定的beam的num,越大效果越好,但是越费时间
temperature: 平滑输出token的概率
top_k: 保留概率最大的前k个进行采样
top_p: 按照概率排序的token,在保留概率累计和为当前值范围内的token进行采样
repetition_penalty: 重复惩罚参数
length_penalty: 长度惩罚参数
no_repeat_ngram_size: 不重复的ngram窗口大小 更多参数和说明参考transformers
ChatYuan功能对话

单轮对话


import clueai
# initialize the Clueai Client with an API Key
cl = clueai.Client('YOUR_API_KEY', check_api_key=True)
prompt= '''用户:介绍一下亚马逊云的历史
小元:'''
# generate a prediction for a prompt 
# 需要返回得分的话,指定return_likelihoods="GENERATION"
prediction = cl.generate(
            model_name='ChatYuan-large',
            prompt=prompt)
            
# print the predicted text          
print('prediction: {}'.format(prediction.generations[0].text))

多轮对话


import clueai
# initialize the Clueai Client with an API Key
cl = clueai.Client('YOUR_API_KEY', check_api_key=True)
prompt= '''用户:新冠什么症状?
小元:新冠是指新型冠状病毒,其症状包括发热、干咳、乏力、嗅味觉减退、呼吸困难等。
用户:可以吃什么药?
小元:根据您提供的病史,目前没有明确的抗新冠病毒的药物,建议您在家进行自我隔离,避免与他人接触,多喝开水,清淡易消化饮食,避免熬夜和过度劳累,适当进行户外活动。
用户:帮我写一个2023年工作规划
小元:'''
# generate a prediction for a prompt 
# 需要返回得分的话,指定return_likelihoods="GENERATION"
prediction = cl.generate(
            model_name='ChatYuan-large',
            prompt=prompt)
            
# print the predicted text          
print('prediction: {}'.format(prediction.generations[0].text))