kobkrit commited on
Commit
3c73e76
·
verified ·
1 Parent(s): 5fcbf54

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +251 -1
README.md CHANGED
@@ -1,3 +1,253 @@
1
  ---
2
- license: mit
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ license: apache-2.0
3
+ language:
4
+ - th
5
+ - en
6
+ library_name: transformers
7
+ pipeline_tag: text-generation
8
+ tags:
9
+ - openthaigpt
10
+ - llama
11
  ---
12
+
13
+ # 🇹🇭 OpenThaiGPT 7b 1.0.0 4 bits and 8 bits in GUFF Format
14
+ ![OpenThaiGPT](https://1173516064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvvbWvIIe82Iv1yHaDBC5%2Fuploads%2Fb8eiMDaqiEQL6ahbAY0h%2Fimage.png?alt=media&token=6fce78fd-2cca-4c0a-9648-bd5518e644ce)
15
+ [More Info](https://openthaigpt.aieat.or.th/)
16
+
17
+ 🇹🇭 **OpenThaiGPT 7b Version 1.0.0** is an advanced 7-billion-parameter Thai language chat model based on LLaMA v2 released on April 8, 2024. It has been specifically fine-tuned for Thai instructions and enhanced by incorporating over 10,000 of the most commonly used Thai words into the large language model's (LLM) dictionary, significantly boosting its response speed.
18
+
19
+ ## Highlights
20
+ - **Leading-edge Thai language LLM**, setting new benchmarks by achieving the highest average scores across several Thai language exams when compared to all other open-source Thai LLMs.
21
+ - **The First 70b Thai opensource LLM**, achieving the higher score on Thai exams than OpenAI GPT 3.5, Google Gemini, and Claude 3 Haiku.
22
+ - **Support for extended conversations** across multiple turns.
23
+ - Support the use case of **Retrieval Augmented Generation (RAG)** for enriched response generation.
24
+ - **Generation speeds increased by tenfold**, thanks to the addition of 10,000 frequently used Thai words to the model's dictionary.
25
+ - Pretrained upon a foundation of **more than 65 billion Thai language words** and meticulously fine-tuned with over 1 million Thai instruction examples.
26
+ - Capable of understanding and processing **input contexts of up to 4096 Thai words**, allowing for detailed and complex instructions.
27
+
28
+ ## Benchmark by OpenThaiGPT Eval
29
+ ** Please take a look at ``OTG 7b (April 2024)`` for this model's evaluation result.
30
+
31
+ | **Exams** | **OTG 7b (Aug 2023)** | **OTG 13b (Dec 2023)** | <b style="color:blue">OTG 7b (April 2024)</b> | **OTG 13b (April 2024)** | **OTG 70b (April 2024)** | **SeaLLM 7b v1** | **SeaLLM 7b v2** | **SeaLion 7b** | **WanchanGLM 7b** | **Sailor-7b-Chat** | **TyphoonGPT 7b Instruct** | **GPT3.5** | **GPT4** | **Gemini Pro** | **Gemini 1.5** | **Claude 3 Haiku** | **Claude 3 Sonnet** | **Claude 3 Opus** |
32
+ |----------------------------|-----------------------|------------------------|-------------------------|--------------------------|--------------------------|------------------|------------------|----------------|-------------------|--------------------|----------------------------|------------|----------|----------------|----------------|--------------------|---------------------|-------------------|
33
+ | **A-Level** | 17.50% | 34.17% | <b style="color:blue">25.00%</b> | 30.83% | 45.83% | 18.33% | 34.17% | 21.67% | 17.50% | 40.00% | 37.50% | 38.33% | 65.83% | 56.67% | 55.83% | 58.33% | 59.17% | 77.50% |
34
+ | **TGAT** | 24.00% | 22.00% | <b style="color:blue">22.00%</b> | 36.00% | 36.00% | 14.00% | 28.00% | 24.00% | 16.00% | 34.00% | 30.00% | 28.00% | 44.00% | 22.00% | 28.00% | 36.00% | 34.00% | 46.00% |
35
+ | **TPAT1** | 22.50% | 47.50% | <b style="color:blue">42.50%</b> | 27.50% | 62.50% | 22.50% | 27.50% | 22.50% | 17.50% | 40.00% | 47.50% | 45.00% | 52.50% | 52.50% | 50.00% | 52.50% | 50.00% | 62.50% |
36
+ | **thai_investment_consultant_exams** | 8.00% | 28.00% | <b style="color:blue">76.00%</b> | 84.00% | 68.00% | 16.00% | 28.00% | 24.00% | 16.00% | 24.00% | 32.00% | 40.00% | 64.00% | 52.00% | 32.00% | 44.00% | 64.00% | 72.00% |
37
+ | **facebook_beleble_tha_200** | 25.00% | 45.00% | <b style="color:blue">34.50%</b> | 39.50% | 70.00% | 13.50% | 51.00% | 27.00% | 24.50% | 63.00% | 51.50% | 50.00% | 72.50% | 65.00% | 74.00% | 63.50% | 77.00% | 90.00% |
38
+ | **xcopa_th_200** | 45.00% | 56.50% | <b style="color:blue">49.50%</b> | 51.50% | 74.50% | 26.50% | 47.00% | 51.50% | 48.50% | 68.50% | 65.00% | 64.00% | 82.00% | 68.00% | 74.00% | 64.00% | 80.00% | 86.00% |
39
+ | **xnli2.0_th_200** | 33.50% | 34.50% | <b style="color:blue">39.50%</b> | 31.00% | 47.00% | 21.00% | 43.00% | 37.50% | 33.50% | 16.00% | 20.00% | 50.00% | 69.00% | 53.00% | 54.50% | 50.00% | 68.00% | 68.50% |
40
+ | **ONET M3** | 17.85% | 38.86% | <b style="color:blue">34.11%</b> | 39.36% | 56.15% | 15.58% | 23.92% | 21.79% | 19.56% | 21.37% | 28.03% | 37.91% | 49.97% | 55.99% | 57.41% | 52.73% | 40.60% | 63.87% |
41
+ | **ONET M6** | 21.14% | 28.87% | <b style="color:blue">22.53%</b> | 23.32% | 42.85% | 15.09% | 19.48% | 16.96% | 20.67% | 28.64% | 27.46% | 34.44% | 46.29% | 45.53% | 50.23% | 34.79% | 38.49% | 48.56% |
42
+ | **AVERAGE SCORE** | 23.83% | 37.27% | <b style="color:blue;font-size:1.3em">38.40%</b> | 40.33% | 55.87% | 18.06% | 33.56% | 27.44% | 23.75% | 37.28% | 37.67% | 43.07% | 60.68% | 52.30% | 52.89% | 50.65% | 56.81% | 68.32% |
43
+ Thai language multiple choice exams, Test on unseen test sets, Zero-shot learning. Benchmark source code and exams information: https://github.com/OpenThaiGPT/openthaigpt_eval
44
+
45
+ (Updated on: 7 April 2024)
46
+
47
+ ## Licenses
48
+ **Source Code**: License Apache Software License 2.0.<br>
49
+ **Weight**: Research and **Commercial uses**.<br>
50
+
51
+ ## Sponsors
52
+ <img src="https://cdn-uploads.huggingface.co/production/uploads/5fcd9c426d942eaf4d1ebd30/FDC9WYN2iykQbVW1rY4q5.png" width="600px">
53
+
54
+ ## Supports
55
+ - Official website: https://openthaigpt.aieat.or.th
56
+ - Facebook page: https://web.facebook.com/groups/openthaigpt
57
+ - A Discord server for discussion and support [here](https://discord.gg/rUTp6dfVUF)
58
+ - E-mail: [email protected]
59
+
60
+ ## Prompt Format
61
+ Prompt format is based on Llama2 with a small modification (Adding "###" to specify the context part)
62
+ ```
63
+ <s>[INST] <<SYS>
64
+ {system_prompt}
65
+ <</SYS>>
66
+
67
+ {human_turn1}###{context_turn1} [/INST]{assistant_turn1}</s><s>{human_turn2}###{context_turn2} [/INST] ...
68
+ ```
69
+
70
+ ### System prompt:
71
+ ```
72
+ You are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด
73
+ ```
74
+
75
+ ### Examples
76
+
77
+ #### Single Turn Conversation Example
78
+ ```
79
+ <s>[INST] <<SYS>
80
+ You are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด
81
+ <</SYS>>
82
+
83
+ สวัสดีครับ [/INST]
84
+ ```
85
+
86
+ #### Single Turn Conversation with Context (RAG) Example
87
+ ```
88
+ <s>[INST] <<SYS>
89
+ You are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด
90
+ <</SYS>>
91
+
92
+ กรุงเทพมีพื้นที่เท่าไร่###กรุงเทพมหานคร เป็นเมืองหลวง นครและมหานครที่มีประชากรมากที่สุดของประเทศไทย กรุงเทพมหานครมีพื้นที่ทั้งหมด 1,568.737 ตร.กม. มีประชากรตามทะเบียนราษฎรกว่า 8 ล้านคน [/INST]
93
+ ```
94
+
95
+ #### Multi Turn Conversation Example
96
+
97
+ ##### First turn
98
+ ```
99
+ <s>[INST] <<SYS>
100
+ You are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด
101
+ <</SYS>>
102
+
103
+ สวัสดีครับ [/INST]
104
+ ```
105
+
106
+ ##### Second turn
107
+ ```
108
+ <s>[INST] <<SYS>
109
+ You are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด
110
+ <</SYS>>
111
+
112
+ สวัสดีครับ [/INST]สวัสดีค่ะ มีคำถามอะไร ถามได้เลย</s><s>ขอสูตรทำส้มตำหน่อย [/INST]
113
+ ```
114
+
115
+ ##### Third turn
116
+ ```
117
+ <s>[INST] <<SYS>
118
+ You are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด
119
+ <</SYS>>
120
+
121
+ สวัสดีครับ [/INST]สวัสดีค่ะ มีคำถามอะไร ถามได้เลย</s><s>ขอสูตรทำส้มตำหน่อย [/INST]ได้เลยค่ะ ส้มตำเป็นเมนูที่ทำง่ายและอร่อย มาเริ่มกันเลยนะคะ</s><s>เริ่มได้เลย [/INST]
122
+ ```
123
+
124
+ ##### Fourth turn
125
+ ```
126
+ <s>[INST] <<SYS>
127
+ You are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด
128
+ <</SYS>>
129
+
130
+ สวัสดีครับ [/INST]สวัสดีค่ะ มีคำถามอะไร ถามได้เลย</s><s>ขอสูตรทำส้มตำหน่อย [/INST]ได้เลยค่ะ ส้มตำเป็นเมนูที่ทำง่ายและอร่อย มาเริ่มกันเลยนะคะ</s><s>เริ่มได้เลย [/INST]
131
+ ตำไทยเป็นเมนูที่ใครๆ ก็คุ้นเคย ด้วยรสชาติที่กลมกล่อม หวาน เปรี้ยว เค็ม เผ็ด ครบรส วันนี้เราจะมาทำส้มตำด้วยกันค่ะ สิ่งแรกที่ต้องมีคือเครื่องปรุงดังนี้
132
+ - มะละกอดิบ 1 ลูก
133
+ - กุ้งแห้ง 1/2 ถ้วย
134
+ - กระเทียม 3 กลีบ
135
+ - พริกขี้หนู 3 เม็ด
136
+ - น้ำตาลปี๊บ 1 ช้อนโต๊ะ
137
+ - น้ำปลา 2 ช้อนโต๊ะ
138
+ - มะนาว 1 ลูก
139
+ - งาขาวคั่ว 1/4 ถ้วย
140
+
141
+ วิธีทำมีดังนี้ค่ะ
142
+ 1. เริ่มจากล้างมะละกอให้สะอาด แล้วใช้มีดปอกเปลือก เอาไส้ออก หั่นเป็นเส้นบางๆ เตรียมไว้
143
+ 2. ตำกุ้งแห้งให้ละเอียด แล้วตักขึ้นพักไว้
144
+ 3. ใช้ครกหินหรือเครื่องปั่น บดพริกขี้หนูกับกระเทียมให้ละเอียด
145
+ 4. ใส่กุ้งแห้งที่ตำแล้วลงไปผสม ตามด้วยน้ำตาลปี๊บ น้ำปลา มะนาว และเส้นมะละกอ คลุกเคล้าให้เข้ากัน
146
+ 5. ชิมรสให้ได้รสหวาน เปรี้ยว เค็ม เผ็ด จากนั้นตักขึ้นเสิร์ฟพร้อมผักสด อาทิ กะหล่ำปลี ถั่วงอก แครอท ผักบุ้ง</s><s>ขอบคุณครับ [/INST]
147
+ ```
148
+
149
+ #### Multi Turn Conversation with Context (RAG) Example
150
+ ```
151
+ <s>[INST] <<SYS>
152
+ You are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด
153
+ <</SYS>>
154
+
155
+ กรุงเทพมีพื้นที่เท่าไร่###กรุงเทพมหานคร เป็นเมืองหลวง นครและมหานครที่มีประชากรมากที่สุดของประเทศไทย กรุงเทพมหานครมีพื้นที่ทั้งหมด 1,568.737 ตร.กม. มีประชากรตามทะเบียนราษฎรกว่า 8 ล้านคน [/INST]
156
+ กรุงเทพมหานครมีพื้นที่ทั้งหมด 1,568.737 ตร.กม.</s><s>และประชากรล่ะ [/INST]
157
+ ```
158
+
159
+ ## How to use
160
+
161
+ ### Huggingface
162
+ ```python
163
+ from transformers import AutoModelForCausalLM, AutoTokenizer
164
+ import torch
165
+
166
+ # Ensure CUDA is available
167
+ device = 'cuda' if torch.cuda.is_available() else 'cpu'
168
+ print(f"Using device: {device}")
169
+
170
+ # Init Model
171
+ model_path="openthaigpt/openthaigpt-1.0.0-7b-chat"
172
+ tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
173
+ model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True, torch_dtype=torch.float16)
174
+ model.to(device)
175
+
176
+ # Prompt
177
+ prompt = "สวัสดีครับ OpenThaiGPT"
178
+ llama_prompt = f"<s>[INST] <<SYS>>\nYou are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด<</SYS>>\n\n{prompt} [/INST]"
179
+ inputs = tokenizer.encode(llama_prompt, return_tensors="pt")
180
+ inputs = inputs.to(device)
181
+
182
+ # Generate
183
+ outputs = model.generate(inputs, max_length=512, num_return_sequences=1)
184
+ print(tokenizer.decode(outputs[0], skip_special_tokens=True))
185
+ ```
186
+
187
+ ### vLLM
188
+
189
+ 1. Install VLLM (https://github.com/vllm-project/vllm)
190
+
191
+ 2. Run server
192
+ ```bash
193
+ python -m vllm.entrypoints.api_server --model /path/to/model --tensor-parallel-size num_gpus
194
+ ```
195
+ 3. Run inference (CURL example)
196
+ ```bash
197
+ curl --request POST \
198
+ --url http://localhost:8000/generate \
199
+ --header "Content-Type: application/json" \
200
+ --data '{"prompt": "<s>[INST] <<SYS>>\nYou are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด\n<</SYS>>\n\nอยากลดความอ้วนต้องทำอย่างไร [/INST]","use_beam_search": false, "temperature": 0.1, "max_tokens": 512, "top_p": 0.75, "top_k": 40, "frequency_penalty": 0.3 "stop": "</s>"}'
201
+ ```
202
+
203
+ ### LlamaCPP (for GGUF)
204
+
205
+ 1. Build and Install LlamaCPP (LLAMA_CUBLAS=1 is for GPU inference)
206
+ ```bash
207
+ git clone https://github.com/ggerganov/llama.cpp.git \
208
+ && cd llama.cpp \
209
+ && make -j LLAMA_CUBLAS=1 CUDA_DOCKER_ARCH=all
210
+ ```
211
+
212
+ 2. Run server
213
+ ```bash
214
+ ./server -m /path/to/ggml-model-f16.gguf -c 3072 -ngl 81 -ts 1,1 --host 0.0.0.0
215
+ ```
216
+
217
+ 3. Run inference (CURL example)
218
+ ```bash
219
+ curl --location 'http://localhost:8000/completion' \
220
+ --header 'Content-Type: application/json' \
221
+ --data '{
222
+ "prompt":"<s>[INST] <<SYS>>\nYou are a question answering assistant. Answer the question as truthful and helpful as possible คุณคือผู้ช่วยตอบคำถาม จงตอบคำถามอย่างถูกต้องและมีประโยชน์ที่สุด friendly\n\n<<SYS>>\n\nอยากลดความอ้วนต้องทำอย่างไร [/INST]",
223
+ "max_tokens": 512,
224
+ "stop":"</s>"
225
+ }'
226
+ ```
227
+
228
+ ### GPU Memory Requirements
229
+ | **Number of Parameters** | **FP 16 bits** | **8 bits (Quantized)** | **4 bits (Quantized)** | **Example Graphic Card for 4 bits** |
230
+ |------------------|----------------|------------------------|------------------------|---------------------------------------------|
231
+ | **7b** | 24 GB | 12 GB | 6 GB | Nvidia RTX 4060 8GB |
232
+ | **13b** | 48 GB | 24 GB | 12 GB | Nvidia RTX 4070 16GB |
233
+ | **70b** | 192 GB | 96 GB | 48 GB | Nvidia RTX 4090 24GB x 2 cards |
234
+
235
+ ### Authors
236
+ * Kobkrit Viriyayudhakorn ([email protected])
237
+ * Sumeth Yuenyong ([email protected])
238
+ * Thaweewat Rugsujarit ([email protected])
239
+ * Jillaphat Jaroenkantasima ([email protected])
240
+ * Norapat Buppodom ([email protected])
241
+ * Koravich Sangkaew ([email protected])
242
+ * Peerawat Rojratchadakorn ([email protected])
243
+ * Surapon Nonesung ([email protected])
244
+ * Chanon Utupon ([email protected])
245
+ * Sadhis Wongprayoon ([email protected])
246
+ * Nucharee Thongthungwong ([email protected])
247
+ * Chawakorn Phiantham ([email protected])
248
+ * Patteera Triamamornwooth ([email protected])
249
+ * Nattarika Juntarapaoraya ([email protected])
250
+ * Kriangkrai Saetan ([email protected])
251
+ * Pitikorn Khlaisamniang ([email protected])
252
+
253
+ <i>Disclaimer: Provided responses are not guaranteed.</i>