Aris-ai
[Bahasa Inggris | 简体中文]
Perkenalan
Ini adalah proyek yang menyediakan layanan model bahasa besar pribadi , yang bertujuan untuk dengan cepat mengakses model besar umum (GPT3.5, GPT4) dan model pribadi (QWEN1.5, ChatGLM3, LLAMA2, Baichuan2, dll.) Layanan, menyediakan antarmuka API terpadu. Mengandalkan kerangka kerja Langchain untuk menyediakan layanan dialog multi-turn (obrolan) dan pengambilan augmented generasi (RAG), nama proyek berasal dari karakter Aris dalam arsip biru, seperti yang ditunjukkan pada gambar di bawah ini
ARIS: Blue Archive 中的角色
Ubah log
[2024-07-13] Kami membuka sumber ARIS-AI-Model-Server, yang mengintegrasikan layanan penyebaran LLM, embedding dan reranker, dan menyediakan antarmuka API OpenAI yang kompatibel untuk memfasilitasi pengguna untuk menggunakan model pribadi.
[2024-06-23] Kami merilis model seri ARIS-14B-CHAT yang SFT dan DPO oleh QWEN1.5-14B-CHAT pada dataset pribadi kami. Harap patuhi perjanjian sumber terbuka Qwen saat menggunakannya.
[2024-06-15] Gunakan neo4j sebagai database untuk menyimpan basis pengetahuan
Tumpukan teknologi
Fine-tuning
- Transformer
- Peft
- Pytorch
- Kecepatan yang dalam
Penyebaran model pribadi
- llama.cpp
- llama-cpp-python
Layanan Model Bahasa Besar
API Backend
- Fastapi
- Sqlalchemy
- Jwt
- Mysql
- Redis
- Neo4j
Web UI
Penyebaran proyek
Implementasi Fungsi
API Terkait
- Pendaftaran Pengguna, Masuk, Manajemen Izin
- Manajemen Dialog, Manajemen Sejarah
- Model (llm, embedding) manajemen, pra -et (sistem) manajemen cepat
- Manajemen database vektor, penyisipan database vektor, dukungan:
- File: pdf, markdown, html, jupyter, txt, python, c ++, java dan file kode lainnya
- Tautan: arxiv, git, URL yang tidak aautentikasi (mendukung perayapan rekursif, merangkak alat otomatis)
Layanan Model Terkait
- Obrolan: Mendukung dialog multi-putaran
- RETRIEVER QA: Mendukung pertanyaan menjawab dengan (RAG) Retrieval Enhanced Generation
Antarmuka web
- Berikan antarmuka untuk mengunggah basis pengetahuan
- Berikan antarmuka dialog
Struktur proyek
.
├── assets
├── confs
│ ├── deployment
│ └── local
├── docker
│ ├── deployment
│ └── local
├── envs
│ ├── deployment
│ └── local
├── kubernetes
├── logs
├── pages
└── src
├── api
│ ├── auth
│ ├── model
│ └── router
│ └── v1
│ ├── model
│ └── oauth2
├── config
├── langchain_aris
├── logger
├── middleware
│ ├── jwt
│ ├── logger
│ ├── mysql
│ │ └── models
│ └── redis
└── webui
Penempatan lokal
Klon Repositori
git clone https://github.com/hcd233/Aris-AI
cd Aris-AI
Buat lingkungan virtual (opsional)
Anda dapat melewatkan langkah ini, tetapi Anda perlu memastikan bahwa lingkungan Python adalah 3.11
conda create -n aris python=3.11.0
conda activate aris
Instal dependensi
pip install poetry
poetry install
Konfigurasikan conf dan env (dihilangkan)
Lihat file template
Mulailah mysql dan redis
docker-compose -f docker/local/docker-compose.yml up -d
Mulai server API
Perhatikan bahwa Anda perlu menentukan lokal/api.env sebagai variabel lingkungan di IDE
Mulai webui
Perhatikan bahwa Anda perlu menentukan lokal/webui.env sebagai variabel lingkungan di IDE
streamlit run aris_webui.py
Akses Swaggerui dan Webui
- SwaggerUi: http: // localhost: $ {API_PORT}/docs
- WebUI: http: // localhost: 8501
Penyebaran Docker
Konfigurasikan conf dan env (seperti di atas)
Lihat file template
Buat volume
docker volume create mysql-data
docker volume create redis-data
docker volume create neo4j-data
Mulai wadahnya
docker-compose -f docker/deployment/docker-compose.yml up -d --no-build
Instruksi Operasi
Operasi Pengguna
- Untuk operasi login, saya hanya melakukan verifikasi nama pengguna dan kata sandi sederhana, dan tidak memberikan fungsi pendaftaran di WebUI. Silakan hubungi sendiri antarmuka API, dan atur status administrator (is_admin = 1) dalam operasi database untuk mengakses model pribadi
- Setelah login, Anda perlu membawa token JWT untuk mengoperasikan kunci rahasia, yang digunakan untuk memanggil layanan model pribadi
Operasi Model
- Hubungi Layanan Model Besar Umum, yang saat ini hanya mendukung model Seri OpenAI (atau agen dengan antarmuka seperti OpenAi). Anda dapat mengaksesnya secara langsung di API. Anda perlu menyimpan informasi seperti basis, kunci, max_tokens di database, dan Anda dapat menyesuaikan prompt sistem
- Hubungi Layanan Model Pribadi, harap sebarkan model sebagai layanan API dengan API seperti OpenAI (Anda dapat menggunakan ARIS-AI-MODEL-Server), dan mengonfigurasinya.
Project Outlook
Sasaran
- Dukungan akses ke lebih banyak model (Azureopenai, Gemini, HuggingFaceEndPoint, llama.cpp)
- Lebih banyak strategi kain (fusion kain, penataan ulang, penarikan multi-jalan, dll.)
- Dukung Multi-Modal Chat & Rag
- Dukungan Mempertahankan Kolam Utama Untuk Model yang Sama untuk mencapai keseimbangan beban
- Agen dukungan dan panggilan alat
- Rilis model pribadi yang disesuaikan
Status Penulis
Karena jadwal kerja saya yang sibuk, kemajuan proyek mungkin relatif lambat, dan saya akan memperbaruinya sesekali. PR dan masalah dipersilakan