ucsahin commited on
Commit
3281a58
·
verified ·
1 Parent(s): 1d75dd9

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +141 -50
README.md CHANGED
@@ -97,24 +97,45 @@ First of all, thanks for your interest if you plan to use this model. I develope
97
 
98
  ## Uses
99
  <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
 
100
 
101
  ### Direct Use
102
 
103
  <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
 
105
- [More Information Needed]
106
 
107
  ### Downstream Use [optional]
108
 
109
  <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
 
 
 
110
 
111
- [More Information Needed]
112
 
113
  ### Out-of-Scope Use
114
 
115
  <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
116
-
117
- [More Information Needed]
 
 
118
 
119
 
120
  ## Türkçe: Kullanım Alanları
@@ -122,13 +143,25 @@ First of all, thanks for your interest if you plan to use this model. I develope
122
  Aşağıda TraVisionLM görsel dil modelinin, hangi görevler için doğrudan ve dolaylı kullanılabileceği durumlar verilmiştir. Ayrıca alan dışı kullanımlar kısmına da göz atmayı unutmayın.
123
 
124
  ### Doğrudan Kullanım Alanları
 
125
  - **Kısa Açıklama**
126
-
 
 
 
 
127
  - **Detaylı Açıklama**
128
 
 
 
 
 
129
  - **Görsel Soru Cevaplama**
130
 
131
-
 
 
 
132
  ### Dolaylı Kullanım Alanları
133
  - (*Video-Text-to-Text*) Model videolarınızla ilgili soru cevap görevi için adapte edilebilir. Mimariye hiçbir değişiklik yapmadan, video kareleri örneklenerek, her bir kare üzerinden modele cevap ürettirilebilir.
134
  - (*Retrieval*) Metne dayalı en uygun görüntü alma görevi için model, herhangi bir değişiklik yapılmadan doğrudan kullanılabilir.
@@ -140,103 +173,161 @@ Aşağıda TraVisionLM görsel dil modelinin, hangi görevler için doğrudan ve
140
  Bu modelin aşağıdaki senaryolar için kullanımı uygun değildir:
141
  - Model, resimlerinizle ilgili basit sorulara cevap verse de, çok turlu kompleks chat senaryoları için uygun değildir. Geçmiş bilgisi tutulmamaktadır, model daha önce sorduğunuz soruları kontekst olarak kullanmamaktadır. Fakat bu görev için, bir chat şablonu hazırlayıp bu doğrultuda modeli kolayca eğitebilirsiniz.
142
  - Model çoklu görsel girdi kabul etmemektedir. Örneğin, iki farklı resmi karşılaştıran sorulara cevap vermeye uygun değildir. Bu özelliği kazandırmak için mimariye değişiklikler yapmak gerekmektedir. Bu tarz bir model için [HuggingFaceM4/idefics2-8b](https://huggingface.co/HuggingFaceM4/idefics2-8b) (sadece ingilizce) modeline bakabilirsiniz.
143
- - Model, karakter ve yazı tanıma (OCR), segmentasyon ve çoklu obje tanıma görevleri için eğitilmemiştir. Bu görevlerde kabul edilebilir başarılar alabilmek için [google/paligemma-3b-pt-224](https://huggingface.co/google/paligemma-3b-pt-224) ve [microsoft/Florence-2-large](https://huggingface.co/microsoft/Florence-2-large) gibi görsel dil modelleri milyarlarca doküman ve resimle eğitilmiştir.
144
 
 
145
 
146
- ## Bias, Risks, and Limitations
147
 
148
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
149
 
150
- [More Information Needed]
151
 
152
- ### Recommendations
 
 
 
 
153
 
154
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
 
 
 
155
 
156
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
 
157
 
158
- ## How to Get Started with the Model
 
 
 
 
159
 
160
- Use the code below to get started with the model.
161
 
162
- [More Information Needed]
163
 
164
- ## Training Details
 
 
165
 
166
- ### Training Data
167
 
168
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
 
 
 
 
169
 
170
- [More Information Needed]
 
 
 
171
 
172
- ### Training Procedure
 
173
 
174
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
 
 
 
 
 
175
 
176
- #### Preprocessing [optional]
177
 
178
- [More Information Needed]
179
 
 
180
 
181
- #### Training Hyperparameters
 
182
 
183
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
 
 
184
 
185
- #### Speeds, Sizes, Times [optional]
186
 
187
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
188
 
189
- [More Information Needed]
 
190
 
191
- ## Evaluation
192
 
193
- <!-- This section describes the evaluation protocols and provides the results. -->
194
 
195
- ### Testing Data, Factors & Metrics
 
196
 
197
- #### Testing Data
198
 
199
- <!-- This should link to a Dataset Card if possible. -->
200
 
201
- [More Information Needed]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
202
 
203
 
204
- [More Information Needed]
205
 
206
- #### Metrics
 
 
207
 
208
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
209
 
210
- [More Information Needed]
211
 
212
- ### Results
213
 
214
- More information will come
215
 
 
216
 
 
217
 
218
- ### Model Architecture and Objective
219
 
220
- [More Information Needed]
221
 
222
  ### Compute Infrastructure
 
 
223
 
224
- [More Information Needed]
225
 
 
226
 
 
227
 
 
228
 
229
- ## Citation
230
 
231
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
232
 
233
- **BibTeX:**
234
 
235
- [More Information Needed]
236
 
237
- **APA:**
238
 
239
- [More Information Needed]
240
 
241
 
242
  ## Model Card Contact
 
97
 
98
  ## Uses
99
  <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
100
+ Below are the scenarios where the TraVisionLM visual language model can be used directly or indirectly for various tasks. Also, don't forget to check out the section on out-of-scope uses.
101
 
102
  ### Direct Use
103
 
104
  <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
105
+ - **Short Captioning**
106
+
107
+ You can give the model task instructions like ```"Açıkla", "Kısaca açıkla", "Görseli özetle", "Çok kısa özetle"``` etc., for this task. The model will generate a short description of the image you provide. Below, the usage code with the Transformer library is shared.
108
+
109
+ *Important reminder:* The model tends to hallucinate less for this task. You can try adjusting the generation parameters to produce the most useful answer for your needs.
110
+
111
+ - **Detailed Captioning**
112
+
113
+ You can give the model task instructions like ```"Detaylı açıkla", "Çok detaylı açıkla", "Görseli detaylı anlat", "Görseli çok detaylı anlat"``` etc., for this task. The model will generate a very detailed description of the image you provide.
114
+
115
+ *Important reminder:* The model tends to hallucinate more for this task. Although it generally produces responses related to the image, it may provide details and information that are not present in the image. You can try adjusting the generation parameters to produce the most useful answer for your needs.
116
+
117
+ - **Visual Question Answering**
118
+
119
+ You can ask the model open-ended questions like ```"Resmin odağında ne var?", "Görselde adam ne yapıyor?", "Kaç zürafa var?", "Görselle ilgili ne söylenir?", "Görseldeki *obje* ne renk?"``` etc., for this task. The model will generate responses that complement your question.
120
 
121
+ *Important reminder:* The model tends to hallucinate more for this task. Although it generally produces responses related to the image and the question, it may provide details and information that are not present in the image. You can try adjusting the generation parameters to produce the most useful answer for your needs.
122
 
123
  ### Downstream Use [optional]
124
 
125
  <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
126
+ - (Video-Text-to-Text) The model can be adapted for a question-answering task related to your videos. By sampling video frames and generating answers for each frame, the model can be used without any changes to the architecture.
127
+ - (Image/Text Retrieval conditioned on Text/Image) For the task of most relevant image retrieval conditioned on text or vice versa, the model can be used directly without any modifications.
128
+ - (Fine-tuning) For all other tasks that support the model's architecture, such as visual classification, the model can be fine-tuned using the Transformers library. For an example, check out [ucsahin/TraVisionLM-Object-Detection-ft](https://huggingface.co/ucsahin/TraVisionLM-Object-Detection-ft).
129
 
130
+ ```As time permits, I plan to share more applications for these indirect uses. Meanwhile, I eagerly await support or collaboration requests from the community ``` 🤝💪
131
 
132
  ### Out-of-Scope Use
133
 
134
  <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
135
+ This model is not suitable for the following scenarios:
136
+ - Although the model can answer simple questions related to your images, it is not suitable for multi-turn complex chat scenarios. Past information is not retained; the model does not use previously asked questions as context. However, you can easily train the model for this task by preparing a chat template accordingly.
137
+ - The model does not accept multiple image inputs. For instance, it is not suitable for answering questions that compare two different images. Modifications to the architecture would be necessary to add this feature. For such a model, you can check [HuggingFaceM4/idefics2-8b](https://huggingface.co/HuggingFaceM4/idefics2-8b) (English only).
138
+ - The model has not been trained for tasks such as character and text recognition (OCR), segmentation, and multi-object detection. To achieve acceptable performance in these tasks, visual language models like [google/paligemma-3b-pt-224](https://huggingface.co/google/paligemma-3b-pt-224) and [microsoft/Florence-2-large](https://huggingface.co/microsoft/Florence-2-large) have been trained on billions of documents and images.
139
 
140
 
141
  ## Türkçe: Kullanım Alanları
 
143
  Aşağıda TraVisionLM görsel dil modelinin, hangi görevler için doğrudan ve dolaylı kullanılabileceği durumlar verilmiştir. Ayrıca alan dışı kullanımlar kısmına da göz atmayı unutmayın.
144
 
145
  ### Doğrudan Kullanım Alanları
146
+
147
  - **Kısa Açıklama**
148
+
149
+ Bu görev için modele ```"Açıkla", "Kısaca açıkla", "Görseli özetle", "Çok kısa özetle"``` ve benzeri görev talimatları verebilirsiniz. Model verdiğiniz resmin kısa bir açıklamasını yapacaktır. Aşağıda modelin Transformer kütüphanesiyle kullanım kodları paylaşılmıştır.
150
+
151
+ *Önemli hatırlatma:* Model bu görev için daha az halüsinasyon görmektedir. Kullanırken üretim parametrelerini değiştirerek işinize en çok yarayacak cevabı ürettirmeyi deneyebilirsiniz.
152
+
153
  - **Detaylı Açıklama**
154
 
155
+ Bu görev için modele ```"Detaylı açıkla", "Çok detaylı açıkla", "Görseli detaylı anlat", "Görseli çok detaylı anlat"``` ve benzeri görev talimatları verebilirsiniz. Model verdiğiniz resmin çok detaylı bir açıklamasını yapacaktır. Aşağıda modelin Transformer kütüphanesiyle kullanım kodları paylaşılmıştır.
156
+
157
+ *Önemli hatırlatma:* Model bu görev için genellikle fazla halüsinasyon görmektedir. Genel olarak resimle alakalı cevaplar üretse de, resimde olmayan detaylar ve bilgiler verebilmektedir. Kullanırken üretim parametrelerini değiştirerek işinize en çok yarayacak cevabı ürettirmeyi deneyebilirsiniz.
158
+
159
  - **Görsel Soru Cevaplama**
160
 
161
+ Bu görev için modele ```"Resmin odağında ne var?", "Görselde adam ne yapıyor?", "Kaç zürafa var?", "Görselle ilgili ne söylenir?", "Görseldeki *obje* ne renk?"``` ve benzeri ucu açık sorular sorabilirsiniz. Model sorunuzu tamamlayacak cevaplar üretecektir. Aşağıda modelin Transformer kütüphanesiyle kullanım kodları paylaşılmıştır.
162
+
163
+ *Önemli hatırlatma:* Model bu görev için genellikle fazla halüsinasyon görebilmektedir. Genel olarak resimle ve sorulan soruyla alakalı cevaplar üretse de, resimde olmayan detaylar ve bilgiler verebilmektedir. Kullanırken üretim parametrelerini değiştirerek işinize en çok yarayacak cevabı ürettirmeyi deneyebilirsiniz.
164
+
165
  ### Dolaylı Kullanım Alanları
166
  - (*Video-Text-to-Text*) Model videolarınızla ilgili soru cevap görevi için adapte edilebilir. Mimariye hiçbir değişiklik yapmadan, video kareleri örneklenerek, her bir kare üzerinden modele cevap ürettirilebilir.
167
  - (*Retrieval*) Metne dayalı en uygun görüntü alma görevi için model, herhangi bir değişiklik yapılmadan doğrudan kullanılabilir.
 
173
  Bu modelin aşağıdaki senaryolar için kullanımı uygun değildir:
174
  - Model, resimlerinizle ilgili basit sorulara cevap verse de, çok turlu kompleks chat senaryoları için uygun değildir. Geçmiş bilgisi tutulmamaktadır, model daha önce sorduğunuz soruları kontekst olarak kullanmamaktadır. Fakat bu görev için, bir chat şablonu hazırlayıp bu doğrultuda modeli kolayca eğitebilirsiniz.
175
  - Model çoklu görsel girdi kabul etmemektedir. Örneğin, iki farklı resmi karşılaştıran sorulara cevap vermeye uygun değildir. Bu özelliği kazandırmak için mimariye değişiklikler yapmak gerekmektedir. Bu tarz bir model için [HuggingFaceM4/idefics2-8b](https://huggingface.co/HuggingFaceM4/idefics2-8b) (sadece ingilizce) modeline bakabilirsiniz.
176
+ - Model, karakter ve yazı tanıma (OCR), segmentasyon ve çoklu obje tespit etme görevleri için eğitilmemiştir. Bu görevlerde kabul edilebilir başarılar alabilmek için [google/paligemma-3b-pt-224](https://huggingface.co/google/paligemma-3b-pt-224) ve [microsoft/Florence-2-large](https://huggingface.co/microsoft/Florence-2-large) gibi görsel dil modelleri milyarlarca doküman ve resimle eğitilmiştir.
177
 
178
+ ---
179
 
180
+ ## How to Get Started with the Model
181
 
182
+ In Transformers, you can load the model and inference as follows:
183
 
184
+ **IMPORTANT NOTE:** TraVisionLM model is not yet integrated into the Transformers library. So you need to set ```trust_remote_code=True``` when loading the model. It will download the ```configuration_travisionlm.py```, ```modeling_travisionlm.py``` and ```processing_travisionlm.py``` files from the repo. You can check out the content of these files under the *Files and Versions* tab and pin the specific versions if you have any concerns regarding malicious code.
185
 
186
+ ```python
187
+ from transformers import AutoModelForCausalLM, AutoProcessor
188
+ import torch
189
+ import requests
190
+ from PIL import Image
191
 
192
+ model = AutoModelForCausalLM.from_pretrained('ucsahin/TraVisionLM-base', trust_remote_code=True, device_map="cuda")
193
+ # you can also load the model in bfloat16 or float16
194
+ # model = AutoModelForCausalLM.from_pretrained('ucsahin/TraVisionLM-base', trust_remote_code=True, torch_dtype=torch.bfloat16, device_map="cuda")
195
+ processor = AutoProcessor.from_pretrained('ucsahin/TraVisionLM-base', trust_remote_code=True)
196
 
197
+ url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg"
198
+ image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
199
 
200
+ prompt = "Açıkla" # short caption
201
+ # prompt = "Detaylı açıkla" # detailed caption
202
+ # prompt = "Araba ne renktir?" # visual qa
203
+ # prompt = "Resmin odak noktası nedir?" # visual qa
204
+ # prompt = "Araba nerede duruyor?" # visual qa
205
 
206
+ inputs = processor(text=prompt, images=image, return_tensors="pt").to("cuda")
207
 
208
+ outputs = model.generate(**inputs, max_new_tokens=512, do_sample=True, temperature=0.6, top_p=0.9, top_k=50, repetition_penalty=1.2)
209
 
210
+ output_text = processor.batch_decode(outputs, skip_special_tokens=True)[0]
211
+ print("Model response: ", output_text)
212
+ ```
213
 
214
+ You can also perform batch inference very easily as follows:
215
 
216
+ ```python
217
+ from transformers import AutoModelForCausalLM, AutoProcessor
218
+ import torch
219
+ import requests
220
+ from PIL import Image
221
 
222
+ model = AutoModelForCausalLM.from_pretrained('ucsahin/TraVisionLM-base', trust_remote_code=True, device_map="cuda")
223
+ # you can also load the model in bfloat16 or float16
224
+ # model = AutoModelForCausalLM.from_pretrained('ucsahin/TraVisionLM-base', trust_remote_code=True, torch_dtype=torch.bfloat16, device_map="cuda")
225
+ processor = AutoProcessor.from_pretrained('ucsahin/TraVisionLM-base', trust_remote_code=True)
226
 
227
+ url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/car.jpg"
228
+ image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
229
 
230
+ prompt_list = [
231
+ 'Açıkla',
232
+ 'Detaylı açıkla',
233
+ 'Araba nerede duruyor?',
234
+ 'Arabanın rengi nedir?',
235
+ ]
236
 
237
+ inputs = processor(text=prompt_list, images=len(prompt_list)*[image], padding="longest", return_tensors="pt").to("cuda")
238
 
239
+ outputs = model.generate(**inputs, max_new_tokens=512, do_sample=True, temperature=0.6, top_p=0.9, top_k=50, repetition_penalty=1.2)
240
 
241
+ output_text_list = processor.batch_decode(outputs, skip_special_tokens=True)
242
 
243
+ for output_text in output_text_list:
244
+ print(f"Model response: {output_text}\n\n\n")
245
 
246
+ """
247
+ Model response: Açıkla
248
+ Bir binanın önünde, sokakta park halindeki mavi bir Volkswagen Beetle.
249
 
 
250
 
 
251
 
252
+ Model response: Detaylı açıkla
253
+ Bu görüntüde, bir taş döşeli sokakta park edilmiş yeşil ve mavi bir Volkswagen Beetle bulunmaktadır. Arka planda iki sarı bina vardır. Araba kameraya doğru bakmaktadır. Görüntü net odaklanmıştır ve renkler canlıdır. Görsel tarzı gerçekçidir.
254
 
 
255
 
 
256
 
257
+ Model response: Araba nerede duruyor?
258
+ Araba, sarı bir binanın yanında sokakta park edilmiş.
259
 
 
260
 
 
261
 
262
+ Model response: Arabanın rengi nedir?
263
+ Araba turkuaz veya limon yeşili renktedir.
264
+ """
265
+ ```
266
+
267
+ ---
268
+
269
+ ## Training Details
270
+
271
+ ### Training Data
272
+
273
+ <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
274
+ I plan to release the multimodal Turkish data used during the training of the model. But, the data is in a very messy format. Until then, in order to get the grasp of the dataset and for contributing to the open-source community, I am releasing the evaluation portion of the dataset at [ucsahin/Turkish-VLM-Mix-Benchmark](https://huggingface.co/datasets/ucsahin/Turkish-VLM-Mix-Benchmark).
275
+
276
+ The dataset consists of predominantly translated versions of the well-known multimodal datasets in English to Turkish. More information on this will be shared in the future.
277
+
278
+ ### Training Procedure
279
+ <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
280
+ The following training hyperparameters are used in feature alignment and task specific training stages respectively:
281
+
282
+ - **Feature Alignment**
283
+
284
+ | Data size | Global Batch Size | Learning Rate | Epochs | Max Length | Weight Decay |
285
+ |--------------|-------------------|---------------|--------|------------|--------------|
286
+ | 500K | 128 | 1e-3 | 1 | 1024 | 0 |
287
 
288
 
289
+ - **Task Specific Training**
290
 
291
+ | Data size | Global Batch Size | Learning Rate | Epochs | Max Length | Weight Decay |
292
+ |--------------|-------------------|---------------|--------|------------|--------------|
293
+ | 1.1M | 128 | 2e-5 | 3 | 1024 | 0 |
294
 
 
295
 
296
+ ## Evaluation
297
 
298
+ This section will be updated after I get some evaluation results on the [ucsahin/Turkish-VLM-Mix-Benchmark](https://huggingface.co/datasets/ucsahin/Turkish-VLM-Mix-Benchmark).
299
 
300
+ ### Testing Data, Factors & Metrics
301
 
302
+ More on this later...
303
 
304
+ #### Testing Data
305
 
306
+ During the training, I used the following dataset [ucsahin/Turkish-VLM-Mix-Benchmark](https://huggingface.co/datasets/ucsahin/Turkish-VLM-Mix-Benchmark) as the evaluation split.
307
 
 
308
 
309
  ### Compute Infrastructure
310
+ <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
311
+ The following compute resources are used in feature alignment and task specific training stages respectively:
312
 
313
+ - **Feature Alignment**
314
 
315
+ 1xA100(40GB), took approximately 4 GPU hours.
316
 
317
+ - **Task Specific Training**
318
 
319
+ 1xH100(80GB), took approximately 18 GPU hours.
320
 
 
321
 
322
+ ## Citation
323
 
324
+ I am releasing TraVisionLM under the Apache 2.0 License. To the best of my knowledge after through research, this should comply with the datasets and unimodal vision and language models used during development.
325
 
326
+ **However, if I receive any feedback indicating otherwise, I will promptly update the licensing information as needed.**
327
 
328
+ If you use the TraVisionLM model in your research, work, or personal projects, please acknowledge this repository. 🙏
329
 
330
+ Finally, I reserve the right to publish this work in an academic setting if it reaches a mature state. In that case, I will provide the appropriate citations here so that any future work can appropriately cite it.
331
 
332
 
333
  ## Model Card Contact