项目介绍:dolly-v2-12b
dolly-v2-12b是由Databricks推出的一个大型语言模型,具备跟随指令执行的能力。这个模型基于EleutherAI的Pythia-12b,经过Databricks的机器学习平台的训练与微调,数据来源为Databricks员工创建的约15,000条指令/响应记录。其应用领域包括头脑风暴、分类、封闭问答、生成、信息提取、开放问答和总结。尽管dolly-v2-12b并不是目前最先进的模型,但它在指令跟随行为方面表现出色。
模型概述
dolly-v2-12b拥有120亿参数,是由Databricks基于Pythia-12b进行微调的因果语言模型。这些微调的数据集来源于Databricks员工生产的自然语言指令,并且以较宽松的许可证(CC-BY-SA)发布。
其他版本还包括:
- dolly-v2-7b:基于Pythia-6.9b,参数接近69亿。
- dolly-v2-3b:基于Pythia-2.8b,参数接近28亿。
使用方法
用户在具备GPU的计算机上使用transformers
库需要确保安装了transformers
和accelerate
库。在Databricks的notebook中,可以运行以下代码:
%pip install "accelerate>=0.16.0,<1" "transformers[torch]>=4.28.1,<5" "torch>=1.13.1,<2"
可以通过pipeline
函数来加载模型,并进行指令文本生成。推荐使用torch.bfloat16
数据类型以减少内存使用。
import torch
from transformers import pipeline
generate_text = pipeline(model="databricks/dolly-v2-12b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto")
然后可以通过管道来回答问题:
res = generate_text("Explain to me the difference between nuclear fission and fusion.")
print(res[0]["generated_text"])
集成LangChain
在LangChain中使用时,需设置return_full_text=True
,以便返回完整文本结果。
import torch
from transformers import pipeline
generate_text = pipeline(model="databricks/dolly-v2-12b", torch_dtype=torch.bfloat16,
trust_remote_code=True, device_map="auto", return_full_text=True)
LangChain可以包括只有指令的提示或带有上下文的提示:
from langchain import PromptTemplate, LLMChain
from langchain.llms import HuggingFacePipeline
# template for an instruction with no input
prompt = PromptTemplate(
input_variables=["instruction"],
template="{instruction}")
# template for an instruction with input
prompt_with_context = PromptTemplate(
input_variables=["instruction", "context"],
template="{instruction}\n\nInput:\n{context}")
hf_pipeline = HuggingFacePipeline(pipeline=generate_text)
llm_chain = LLMChain(llm=hf_pipeline, prompt=prompt)
llm_context_chain = LLMChain(llm=hf_pipeline, prompt=prompt_with_context)
已知限制
性能限制
dolly-v2-12b不是最先进的生成型语言模型,尽管量化基准测试仍在进行中,但并未针对新型模型架构或更大预训练语料库进行竞争设计。其在处理语法复杂提示、编程问题、数学运算、事实错误、时间和日期、开放性问题回答、幻想、列表长度枚举、风格模仿以及幽默感上存在挑战。此外,dolly-v2-12b缺少某些能力,例如良好的格式化信件写作等。
数据集限制
与所有语言模型一样,dolly-v2-12b依赖于其训练语料库的内容与限制。Databricks承诺继续研究和开发有帮助的、诚实的且无害的AI技术,最大化个人和组织的潜力。
性能基准
在EleutherAI LLM评估工具中,dolly-v2-12b的表现不是最优,其在某些评估基准中甚至不如dolly-v1-6b。这可能与基础微调数据集的组成和大小有关,尚需进一步研究以作出更全面的解释。