2023-07-15 16:54:28 +08:00
|
|
|
import os
|
|
|
|
import re
|
|
|
|
from setuptools import setup, find_packages
|
|
|
|
|
|
|
|
|
|
|
|
def get_version():
|
|
|
|
with open(os.path.join("src", "llmtuner", "__init__.py"), "r", encoding="utf-8") as f:
|
|
|
|
file_content = f.read()
|
|
|
|
pattern = r"{0}\W*=\W*\"([^\"]+)\"".format("__version__")
|
|
|
|
version, = re.findall(pattern, file_content)
|
|
|
|
return version
|
|
|
|
|
|
|
|
|
|
|
|
def get_requires():
|
|
|
|
with open("requirements.txt", "r", encoding="utf-8") as f:
|
|
|
|
file_content = f.read()
|
|
|
|
lines = [line.strip() for line in file_content.strip().split("\n") if not line.startswith("#")]
|
|
|
|
return lines
|
|
|
|
|
|
|
|
|
2024-03-08 00:44:51 +08:00
|
|
|
extra_require = {
|
|
|
|
"deepspeed": ["deepspeed==0.13.1"],
|
|
|
|
"metrics": ["nltk", "jieba", "rouge-chinese"],
|
|
|
|
"unsloth": ["unsloth[cu121-ampere-torch220] @ git+https://github.com/unslothai/unsloth.git"],
|
|
|
|
"vllm": ["vllm==0.3.3"],
|
|
|
|
"bitsandbytes": ["bitsandbytes>=0.39.0"],
|
|
|
|
"gptq": ["optimum>=1.16.0", "auto-gptq>=0.5.0"],
|
|
|
|
"awq": ["autoawq"],
|
|
|
|
"aqlm": ["aqlm[gpu,cpu]"],
|
|
|
|
"galore": ["galore_torch @ git+https://github.com/jiaweizzhao/GaLore.git"],
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-07-15 16:54:28 +08:00
|
|
|
def main():
|
|
|
|
|
|
|
|
setup(
|
|
|
|
name="llmtuner",
|
|
|
|
version=get_version(),
|
|
|
|
author="hiyouga",
|
|
|
|
author_email="hiyouga" "@" "buaa.edu.cn",
|
2023-10-13 13:53:43 +08:00
|
|
|
description="Easy-to-use LLM fine-tuning framework",
|
2023-07-15 16:54:28 +08:00
|
|
|
long_description=open("README.md", "r", encoding="utf-8").read(),
|
|
|
|
long_description_content_type="text/markdown",
|
|
|
|
keywords=["LLaMA", "BLOOM", "Falcon", "LLM", "ChatGPT", "transformer", "pytorch", "deep learning"],
|
|
|
|
license="Apache 2.0 License",
|
2023-10-13 13:53:43 +08:00
|
|
|
url="https://github.com/hiyouga/LLaMA-Factory",
|
2023-07-15 16:54:28 +08:00
|
|
|
package_dir={"": "src"},
|
|
|
|
packages=find_packages("src"),
|
|
|
|
python_requires=">=3.8.0",
|
|
|
|
install_requires=get_requires(),
|
2024-03-08 00:44:51 +08:00
|
|
|
extras_require=extra_require,
|
2023-07-15 16:54:28 +08:00
|
|
|
classifiers=[
|
|
|
|
"Development Status :: 3 - Alpha",
|
|
|
|
"Intended Audience :: Developers",
|
|
|
|
"Intended Audience :: Education",
|
|
|
|
"Intended Audience :: Science/Research",
|
|
|
|
"License :: OSI Approved :: Apache Software License",
|
|
|
|
"Operating System :: OS Independent",
|
|
|
|
"Programming Language :: Python :: 3",
|
|
|
|
"Programming Language :: Python :: 3.8",
|
|
|
|
"Programming Language :: Python :: 3.9",
|
|
|
|
"Programming Language :: Python :: 3.10",
|
|
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
|
|
]
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|