128 篇文章带有标签 “LLM”

SWIFT: Scalable lightWeight Infrastructure for Fine-Tuning

SWIFT 支持近200种LLM和MLLM(多模态大模型)的训练、推理、评测和部署。开发者可以直接将我们的框架应用到自己的Research和生产环境中,实现模型训练评测到应用的完整链路。我们除支持了PEFT提供的轻量训练方案外,也提供了一个完整的Adapters库以支持最新的训练技术,如NEFTune、LoRA+、LLaMA-PRO等,这个适配器库可以脱离训练脚本直接使用在自己的自定流程中。

git clone https://github.com/modelscope/swift.git
cd swift
pip install -e '.[llm]'

['chinese-alpaca-2-13b-16k', 'chinese-alpaca-2-13b', 'chinese-alpaca-2-7b-64k', 'chinese-alpaca-2-7b-16k', 'chinese-alpaca-2-7b', 'chinese-alpaca-2-1_3b', 'chinese-llama-2-13b-16k', 'chinese-llama-2-13b', 'chinese-llama-2-7b-64k&#3

使用大型语言模型进行命名实体识别

question = "山东省济南高新供电中心投诉总数"
<Province>山东省</Province><City>济南市</City><Company>高新供电中心</Company><Indicator>投诉</Indicator>总数
  • 济南增加了
question = "山东省济南市平阴县供电公司投诉总数"
<Province>山东省</Province><City>济南市</City><Company>平阴县供电公司</Company><Indicator>投诉</Indicator>总数
question = "济南市平阴县供电公司投诉总数"
<City>济南市</City><Company>平阴县供电公司</Company><Indicator>投诉</Indicator>总数

Meta Llama 3

No Robots 是由熟练的人类注释者创建的包含 10,000 条指令和演示的高质量数据集。该数据可用于监督微调(SFT),使语言模型更好地遵循指令。 No Robots 是根据 OpenAI 的 InstructGPT 论文中描述的指令数据集进行建模的。

Llama 3 模型在两个拥有 24,000 GPU 的集群上进行了训练,使用的是超过 15 万亿 Token 的新公共在线数据。我们无法得知训练数据具体细节,但可以推测,更大规模且更细致的数据策划是性能提升的重要因素。Llama 3 Instruct 针对对话应用进行了优化,结合了超过 1000 万的人工标注数据,通过监督式微调(SFT)、拒绝采样、邻近策略优化(PPO)和直接策略优化(DPO)进行训练。

负责任使用指南 MLCommons AI Safety AI Safety Benchmarks Announcing MLCommons AI Safety v0.

Anthropic Claude

模型 模型名称 价格(MTok) 能力
Opus claude-3-opus-20240229 Input: 15<br>Output:15<br>Output:75 处理复杂的分析、多步骤的长期任务,以及更高阶的数学和编码任务
Sonnet claude-3-sonnet-20240229 Input: 3<br>Output:3<br>Output:15 适用于高效、高吞吐量的任务
Haiku claude-3-haiku-20240307 Input: 0.25<br>Output:0.25<br>Output:1.25 执行轻量级操作,速度领先行业
  • MTok = million tokens.(百万 Token)
  • 所有 Claude 3 模型都支持视觉和 200,000 个 Token 上下文窗口。

DashScope 模型服务灵积

灵积模型服务建立在“模型即服务”(Model-as-a-Service,MaaS)的理念基础之上。

灵积通过灵活、易用的模型API服务,让各种模态模型的能力,都能方便的为AI开发者所用。通过灵积API,开发者不仅可以直接集成大模型的强大能力,也可以对模型进行训练微调,实现模型定制化。

模型 描述 上下文长度 计量单价
qwen-turbo 通义千问超大型语言模型,支持中文、英文等不同语言输入。 8k 0.008元/1000 tokens
qwen-plus 通义千问超大型语言模型增强版,支持中文、英文等不同语言输入。 32k 0.02元/1000 tokens
qwen-max 通义千问千亿级别超大型语言模型,支持中文、英文等不同语言输入。 8k 0.12元/1000 tokens
qwen-max-longcontext 通义千问千亿级别超大型语言模型,支持中文、英文等不同语言输入。 30k 0.12元/1000 tokens
qwen-72b-chat 通义千问开源 720 亿参数大型语言模型 8k 0.02元/1000 tokens
qwen1.5-72b-chat 通义千问开源 720 亿参数大型语言模型 32k

Together AI - The fastest cloud platform for building and running generative AI

用于构建和运行生成式人工智能的最快云平台

速度非常快

告诉我在旧金山可以做的有趣的事情。
当然,我很乐意帮助您发现旧金山的一些有趣的事情! 以下是一些建议:

1. **探索金门公园:** 这个城市公园比纽约中央公园还要大,提供各种各样的活动。 您可以参观加州科学院,漫步日本茶园,或租一辆自行车绕公园骑行。

2. **乘坐缆车:** 旧金山的缆车系统是国家历史地标。 这不仅是一种有趣的出行方式,而且还可以欣赏城市的美景。

3. **参观渔人码头:** 在这里,您可以在39号码头观看海狮,参观海湾水族馆,或探索各种商店和餐馆。 别忘了尝试一些新鲜的海鲜!

4. **探索教会区:** 这个充满活力的街区以其色彩缤纷的壁画、时尚的酒吧和美味的墨西哥美食而闻名。

5. **在穆尔森林徒步旅行:** 距城市仅一小段车程,您就会发现自己置身于世界上一些最古老、最高的树木之中。

// ...

LLaMA Factory: Easy and Efficient LLM Fine-Tuning

  • pip
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

python -m venv env
source env/bin/activate

pip install -e .[metrics]
  • conda
git clone https://github.com/hiyouga/LLaMA-Factory.git

conda create -n llama_factory python=3.10
conda activate llama_factory

cd LLaMA-Factory
pip install -r requirements.txt

使用 conda 第二次没有安装成功

CUDA_VISIBLE_DEVICES=0 USE_MODELSCOPE_HUB=1 python src/train_web.py
  • CUDA_VISIBLE_DEVICES=0: 指定 GPU
  • USE_MODELSCOPE_HUB=1: 使用魔搭社区的模型和数据集下载

vLLM 部署 Qwen1.5 LLM

下载模型

git clone https://www.modelscope.cn/qwen/Qwen1.5-7B-Chat-GPTQ-Int4.git

启动服务

python -m vllm.entrypoints.openai.api_server \
    --host 0.0.0.0 --port 9000 \
    --model Qwen/Qwen1.5-7B-Chat-GPTQ-Int4 \
    --quantization gptq \
    --tensor-parallel-size 2 \
    --dtype=half \
    --gpu-memory-utilization 0.95
  • 可以使用环境变量 CUDA_VISIBLE_DEVICES=2,3 来指定使用的 GPU。
  • --dtype=half T4 不支持 bfloat16,可以使用 float16。
  • --gpu-memory-utilization 默认为 0.9,这里因为 Qwen 的上下文为 32k,0.9 还不能满足,也可以通过 max-model-len 参数来调整上下文长度。

使用 curl 测试

chat completions curl http://localhost:9000/v1/chat/completions \ -H "Content-Type: application/json" \ -d &

MLX: An array framework for Apple silicon

MLX 是一个为 Apple Silicon 芯片上的机器学习研究设计的 array 框架,由 Apple 机器学习研究团队提供。

  • 熟悉的 API:MLX 拥有一个与 NumPy 紧密对应的 Python API。MLX 还拥有功能齐全的 C++、C 和 Swift API,这些 API 也紧密地反映了 Python API。MLX 拥有更高级别的包,如 mlx.nn 和 mlx.optimizers,它们的 API 紧密跟随 PyTorch,以简化构建更复杂模型的过程。
  • 统一内存:MLX 与其他框架的一个显著区别在于其统一内存模型。MLX 中的数组存在于共享内存中。可以在任何支持的设备类型上执行 MLX 数组的操作,无需数据传输。
  • MLX 的设计受到了像 NumPyPyTorchJaxArrayFire 这样的框架的启发。
  • conda
conda install -c conda-forge mlx
conda install -c conda-forge mlx-lm
pip install sentence_transformers   # Mistral requires
pip install jinja2                  # Mistral requires
pip install tiktoken                # Qwen requires

使用 llama.cpp 构建兼容 OpenAI API 服务

困惑度基于模型对测试集数据的概率,它的值越小,说明模型的性能越好。具体来说,如果一个模型的困惑度为 P,那么当这个模型预测下一个词的时候,它的不确定性(或者说“困惑度”)就相当于在 P 个词中随机选择一个词。

例如,如果一个模型的困惑度为 10,那么这个模型预测下一个词的不确定性就相当于在 10 个词中随机选择一个词。如果另一个模型的困惑度为 5,那么这个模型预测下一个词的不确定性就相当于在 5 个词中随机选择一个词。因此,困惑度越小,模型的性能就越好。

克隆代码

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make LLAMA_CUBLAS=1

--n-gpu-layers 设置 -1 没有效果,设置大一点的数字即可,如:15000

可以从 TheBloke 下载更多不同量化的 GGUF 模型。

  1. 转换 GGUF
python convert-hf-to-gguf.py \
    --outtype f32 \
    --outfile ~/HuggingFace/wangjunjian/gguf/qwen-7b-chat-f32.gguf \
    ~/HuggingFace/Qwen/Qwen-7B-Chat

量化 Q5_K_M .

LLM 的基准测试

  • Ampere, Ada, or Hopper GPUs (e.g., A100, RTX 3090, RTX 4090, H100). Support for Turing GPUs (T4, RTX 2080) is coming soon, please use FlashAttention 1.x for Turing GPUs for now.
  • Datatype fp16 and bf16 (bf16 requires Ampere, Ada, or Hopper GPUs).
  • All head dimensions up to 256. Head dim > 192 backward requires A100/A800 or H100/H800.

Turing GPU T4 不支持,需要使用 FlashAttention 1.x,否则会报错 ❌:

data: {
  "text": "**NETWORK ERROR DUE TO HIGH TRAFFIC. PLEASE REGENERATE OR REFRESH THIS PAGE.**\n\n(FlashAttention only supports Ampere GPUs or newer.)", 
  "error_code": 50001
}

基于 PyCharm 使用 Tabby 和 CodeGPT 插件搭建免费的 GitHub Copilot

  • 启动服务 Controller
python -m fastchat.serve.controller
  • 启动服务 Model Worker
python -m fastchat.serve.model_worker \
  --model-path THUDM/chatglm3-6b --port 21002 \
  --worker-address http://localhost:21002 \
  --model-names chatglm3-6b,gpt-3.5-turbo
  • 启动服务 OpenAI API Server
python -m fastchat.serve.openai_api_server --port 8000

AI 大模型基础服务架构图

<center>
<div class="mermaid">
%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart TB
  subgraph tool[聊天工具]
    direction TB
    chatgpt-next(ChatGPT Next Web)
    langchain-chatchat(Langchain-Chatchat)
    wechat(chatgpt-on-wechat)
  end
  subgraph business-application[业务应用层]
    direction TB
    app1(发电)
    app2(调度)
    app3(输变电)
// ...

AI 大模型

Model Average ARC HellaSwag MMLU TruthfulQA Winogrande GSM8K
mistralai/Mistral-7B-Instruct-v0.2 65.71 63.14 84.88 60.78 68.26 77.19 40.03
01-ai/Yi-34B-Chat 65.32 65.44 84.16 74.9 55.37 80.11 31.92
Qwen/Qwen1.5-14B-Chat 62.37 58.79 82.33 68.52 60.38 73.32 30.86
01-ai/Yi-6B-200K 56.76 53.75 75.57 64.65 41.56 73.64 31.39
Qwen/Qwen1.5-7B-Chat 55.15 55.89 78.56 61.65 53.54 67.72 13.57
01-ai/Yi-6B 54.08 55.55 76.57 64.11 41.96 74.19 12.13
deepseek-ai/deepseek-llm-7b-chat 59.38 55.8 79.38 51.75 47.98 74.82 46.55
internlm/internlm-20b-chat 55.53 55.38 78.58 58.53 43.22 78.77 18.73
deepseek-ai/deepseek-coder-7b-instruct-v1.5 50.89 48.55 72.35 50.45 46.73 66.85 20.39

Langchain‐Chatchat 和 FastChat 结合

fatal: fetch-pack: invalid index-pack output

Cloning into 'Langchain-Chatchat'...
remote: Enumerating objects: 8958, done.
remote: Counting objects: 100% (270/270), done.
remote: Compressing objects: 100% (168/168), done.
error: 6146 bytes of body are still expectediB | 367.00 KiB/s 
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

这个错误可能是由于网络问题或者 Git 服务器问题导致的。当 Git 在克隆仓库时,它需要从服务器下载一些数据。如果在这个过程中连接被中断,或者服务器发送的数据有问题,就可能会出现这个错误。

你可以尝试以下几种解决方法: